@flyfish-group/file-viewer3 1.0.5 → 1.0.6

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.
Files changed (79) hide show
  1. package/LICENSE +160 -0
  2. package/README.md +40 -15
  3. package/dist/components/CadViewer.js +1 -0
  4. package/dist/components/CodeViewer.js +1 -0
  5. package/dist/components/ImageViewer.js +1 -1950
  6. package/dist/components/MarkdownViewer.js +1 -1469
  7. package/dist/components/OfdViewer.js +1 -0
  8. package/dist/components/PdfView.js +1 -22630
  9. package/dist/components/PptxRender.js +1 -22428
  10. package/dist/components/XlsxTable.js +1 -55468
  11. package/dist/components/_plugin-vue_export-helper.js +1 -0
  12. package/dist/components/asyncToGenerator.js +1 -0
  13. package/dist/components/chunk.js +1 -0
  14. package/dist/components/dist.js +1 -0
  15. package/dist/components/docx-preview.js +1 -5795
  16. package/dist/components/jszip.min.js +1 -0
  17. package/dist/components/objectSpread2.js +1 -0
  18. package/dist/components/ofd.js +1 -0
  19. package/dist/components/use.js +1 -0
  20. package/dist/components/worker-ref.js +1 -21
  21. package/dist/components/wrapAsyncGenerator.js +1 -0
  22. package/dist/file-viewer3.css +2 -0
  23. package/dist/index.mjs +1 -6
  24. package/dist/index.umd.js +1 -313
  25. package/dist/src/components/utils.d.ts +3 -0
  26. package/dist/src/main.d.ts +0 -0
  27. package/dist/src/package/common/type.d.ts +30 -0
  28. package/dist/src/package/common/util.d.ts +5 -0
  29. package/dist/src/package/common/worker-ref.d.ts +12 -0
  30. package/dist/src/package/components/FileViewer/FileViewer.vue.d.ts +8 -0
  31. package/dist/src/package/components/FileViewer/index.d.ts +2 -0
  32. package/dist/src/package/components/FileViewer/util.d.ts +2 -0
  33. package/dist/src/package/index.d.ts +15 -3
  34. package/dist/src/package/use/index.d.ts +2 -0
  35. package/dist/src/package/use/loading.d.ts +33 -0
  36. package/dist/src/package/use/worker.d.ts +24 -0
  37. package/dist/src/package/vendors/cad/CadViewer.vue.d.ts +7 -0
  38. package/dist/src/package/vendors/cad/index.d.ts +7 -0
  39. package/dist/src/package/vendors/image/ImageViewer.vue.d.ts +6 -0
  40. package/dist/src/package/vendors/image/index.d.ts +4 -0
  41. package/dist/src/package/vendors/md/MarkdownViewer.vue.d.ts +6 -0
  42. package/dist/src/package/vendors/md/index.d.ts +4 -0
  43. package/dist/src/package/vendors/mp4/index.d.ts +4 -0
  44. package/dist/src/package/vendors/ofd/OfdViewer.vue.d.ts +6 -0
  45. package/dist/src/package/vendors/ofd/index.d.ts +7 -0
  46. package/dist/src/package/vendors/pdf/PdfView.vue.d.ts +6 -0
  47. package/dist/src/package/vendors/pdf/index.d.ts +1 -0
  48. package/dist/src/package/vendors/pdf/worker/index.d.ts +4 -0
  49. package/dist/src/package/vendors/pptx/PptxRender.vue.d.ts +9 -0
  50. package/dist/src/package/vendors/pptx/index.d.ts +6 -0
  51. package/dist/src/package/vendors/pptx/options.d.ts +39 -0
  52. package/dist/src/package/vendors/pptx/support/chart.d.ts +4 -0
  53. package/dist/src/package/vendors/pptx/worker/index.d.ts +4 -0
  54. package/dist/src/package/vendors/renders.d.ts +3 -0
  55. package/dist/src/package/vendors/text/CodeViewer.vue.d.ts +7 -0
  56. package/dist/src/package/vendors/text/index.d.ts +10 -0
  57. package/dist/src/package/vendors/word/doc.d.ts +5 -0
  58. package/dist/src/package/vendors/word/docx.d.ts +5 -0
  59. package/dist/src/package/vendors/word/index.d.ts +3 -0
  60. package/dist/src/package/vendors/xlsx/XlsxTable.state.d.ts +79 -0
  61. package/dist/src/package/vendors/xlsx/XlsxTable.view.d.ts +22 -0
  62. package/dist/src/package/vendors/xlsx/XlsxTable.vue.d.ts +6 -0
  63. package/dist/src/package/vendors/xlsx/index.d.ts +5 -0
  64. package/dist/src/package/vendors/xlsx/util.d.ts +8 -0
  65. package/dist/src/package/vendors/xlsx/worker/index.d.ts +4 -0
  66. package/dist/src/package/vendors/xlsx/worker/sheetjs/SheetJsModel.d.ts +69 -0
  67. package/dist/src/package/vendors/xlsx/worker/sheetjs/color.d.ts +2 -0
  68. package/dist/src/package/vendors/xlsx/worker/sheetjs/index.d.ts +4 -0
  69. package/dist/src/package/vendors/xlsx/worker/sheetjs/sheet.worker.d.ts +1 -0
  70. package/dist/worker/pdf.worker.js +1 -58
  71. package/dist/worker/pptx.worker.js +1 -21
  72. package/dist/worker/sheet.worker.js +1 -38
  73. package/package.json +50 -42
  74. package/dist/components/_commonjs-dynamic-modules.js +0 -6
  75. package/dist/components/_commonjsHelpers.js +0 -30
  76. package/dist/components/index.js +0 -4914
  77. package/dist/index.d.ts +0 -48
  78. package/dist/style.css +0 -57
  79. package/dist/worker/xlsx.worker.js +0 -62
@@ -0,0 +1 @@
1
+ function a(){const j=['18935147HuoCPH','24foeCtQ','9256TTQBrn','99JpCrjq','1760490Nbofsh','2jiGxTx','374577BXJTbb','36AeylNm','12321540XpooMh','12900eRmTIa','719497BYsltF','2331FkSydi'];a=function(){return j;};return a();}function b(c,d){c=c-0xcc;const e=a();let f=e[c];return f;}(function(c,d){const i=b,f=c();while(!![]){try{const g=-parseInt(i(0xcc))/0x1*(-parseInt(i(0xd3))/0x2)+parseInt(i(0xd4))/0x3*(parseInt(i(0xd5))/0x4)+parseInt(i(0xd2))/0x5+parseInt(i(0xd7))/0x6*(parseInt(i(0xcd))/0x7)+parseInt(i(0xd0))/0x8*(-parseInt(i(0xd1))/0x9)+parseInt(i(0xd6))/0xa+parseInt(i(0xce))/0xb*(-parseInt(i(0xcf))/0xc);if(g===d)break;else f['push'](f['shift']());}catch(h){f['push'](f['shift']());}}}(a,0xa7f4d));var e=(c,d)=>{let f=c['__vccOpts']||c;for(let [g,h]of d)f[g]=h;return f;};export{e as t};
@@ -0,0 +1 @@
1
+ (function(d,f){var s=b,g=d();while(!![]){try{var h=parseInt(s(0x156))/0x1+parseInt(s(0x15c))/0x2*(-parseInt(s(0x157))/0x3)+parseInt(s(0x158))/0x4*(parseInt(s(0x154))/0x5)+-parseInt(s(0x155))/0x6*(parseInt(s(0x15a))/0x7)+parseInt(s(0x159))/0x8*(-parseInt(s(0x15d))/0x9)+parseInt(s(0x152))/0xa*(-parseInt(s(0x153))/0xb)+-parseInt(s(0x15b))/0xc*(-parseInt(s(0x15e))/0xd);if(h===f)break;else g['push'](g['shift']());}catch(i){g['push'](g['shift']());}}}(a,0xae7d9));import{n as c}from'./chunk.js';function t(d,f,g,h,j,k,l){try{var m=d[k](l),p=m['value'];}catch(q){g(q);return;}m['done']?f(p):Promise['resolve'](p)['then'](h,j);}function n(d){return function(){var f=this,g=arguments;return new Promise(function(h,j){var k=d['apply'](f,g);function l(p){var u=b;t(k,h,j,l,m,u(0x151),p);}function m(p){t(k,h,j,l,m,'throw',p);}l(void 0x0);});};}var r=c(()=>{});function a(){var v=['374268yUwtsQ','2NQkFsv','3596598HPBSVY','1144fqsvij','next','10ztJdkF','14409494NvppWC','2265740uoIzwO','5358960OQUzSF','1087780YBRrdB','3225489FdROxG','12sxjDPQ','24NIZAIi','7bhqMJp'];a=function(){return v;};return a();}function b(c,d){c=c-0x151;var e=a();var f=e[c];return f;}export{r as n,n as t};
@@ -0,0 +1 @@
1
+ function b(){var A=['1105758knPKad','280bmJVaZ','getPrototypeOf','130159sAXBPm','3WbgRLs','54855bVwJaS','Calling\x20`require`\x20for\x20\x22','329mHWYjy','2335464twSMLX','1622985ywLRdw','2682664vfitGh','224964wEtLyK','exports'];b=function(){return A;};return b();}var y=f;(function(g,h){var x=f,j=g();while(!![]){try{var k=parseInt(x(0x1d2))/0x1+parseInt(x(0x1cf))/0x2*(parseInt(x(0x1d3))/0x3)+-parseInt(x(0x1d9))/0x4+-parseInt(x(0x1d8))/0x5+-parseInt(x(0x1da))/0x6*(-parseInt(x(0x1d6))/0x7)+-parseInt(x(0x1d7))/0x8+parseInt(x(0x1d4))/0x9*(-parseInt(x(0x1d0))/0xa);if(k===h)break;else j['push'](j['shift']());}catch(m){j['push'](j['shift']());}}}(b,0xf1108));function f(a,c){a=a-0x1cf;var d=b();var e=d[a];return e;}var e=Object['create'],t=Object['defineProperty'],n=Object['getOwnPropertyDescriptor'],r=Object['getOwnPropertyNames'],i=Object[y(0x1d1)],a=Object['prototype']['hasOwnProperty'],o=(g,h)=>()=>(g&&(h=g(g=0x0)),h),s=(g,h)=>()=>(h||(g((h={'exports':{}})['exports'],h),g=null),h[y(0x1db)]),c=(g,h)=>{let j={};for(var k in g)t(j,k,{'get':g[k],'enumerable':!0x0});return h||t(j,Symbol['toStringTag'],{'value':'Module'}),j;},l=(g,h,j,k)=>{if(h&&typeof h=='object'||typeof h=='function'){for(var m=r(h),p=0x0,q=m['length'],v;p<q;p++)v=m[p],!a['call'](g,v)&&v!==j&&t(g,v,{'get':(w=>h[w])['bind'](null,v),'enumerable':!(k=n(h,v))||k['enumerable']});}return g;},u=(g,h,j)=>(j=g==null?{}:e(i(g)),l(h||!g||!g['__esModule']?t(j,'default',{'value':g,'enumerable':!0x0}):j,g)),d=(g=>typeof require<'u'?require:typeof Proxy<'u'?new Proxy(g,{'get':(h,j)=>(typeof require<'u'?require:h)[j]}):g)(function(g){var z=y;if(typeof require<'u')return require['apply'](this,arguments);throw Error(z(0x1d5)+g+'\x22\x20in\x20an\x20environment\x20that\x20doesn\x27t\x20expose\x20the\x20`require`\x20function.\x20See\x20https://rolldown.rs/in-depth/bundling-cjs#require-external-modules\x20for\x20more\x20details.');});export{u as a,d as i,o as n,c as r,s as t};
@@ -0,0 +1 @@
1
+ const b3=a1;(function(a7,a8){const aY=a1,a9=a7();while(!![]){try{const aa=parseInt(aY(0x2b4))/0x1*(-parseInt(aY(0x24b))/0x2)+-parseInt(aY(0x1f1))/0x3+-parseInt(aY(0x1cc))/0x4+-parseInt(aY(0x246))/0x5*(parseInt(aY(0x1ba))/0x6)+parseInt(aY(0x213))/0x7*(-parseInt(aY(0x232))/0x8)+-parseInt(aY(0x1e4))/0x9+-parseInt(aY(0x22d))/0xa*(-parseInt(aY(0x22b))/0xb);if(aa===a8)break;else a9['push'](a9['shift']());}catch(ab){a9['push'](a9['shift']());}}}(a0,0x18cec));import{n as a2,t}from'./asyncToGenerator.js';import{i as a3,n as a4,r as a5,t as a6}from'./objectSpread2.js';function o(a7,a8,a9=0x0,aa=a7['length']-0x1,ab=c){for(;aa>a9;){if(aa-a9>0x258){let ag=aa-a9+0x1,ah=a8-a9+0x1,ai=Math['log'](ag),aj=0.5*Math['exp'](0x2*ai/0x3),ak=0.5*Math['sqrt'](ai*aj*(ag-aj)/ag)*(ah-ag/0x2<0x0?-0x1:0x1);o(a7,a8,Math['max'](a9,Math['floor'](a8-ah*aj/ag+ak)),Math['min'](aa,Math['floor'](a8+(ag-ah)*aj/ag+ak)),ab);}let ac=a7[a8],ad=a9,af=aa;for(s(a7,a9,a8),ab(a7[aa],ac)>0x0&&s(a7,a9,aa);ad<af;){for(s(a7,ad,af),ad++,af--;ab(a7[ad],ac)<0x0;)ad++;for(;ab(a7[af],ac)>0x0;)af--;}ab(a7[a9],ac)===0x0?s(a7,a9,af):(af++,s(a7,af,aa)),af<=a8&&(a9=af+0x1),a8<=af&&(aa=af-0x1);}}function s(a7,a8,a9){let aa=a7[a8];a7[a8]=a7[a9],a7[a9]=aa;}function c(a7,a8){return a7<a8?-0x1:+(a7>a8);}var l=class{constructor(a7=0x9){this['_maxEntries']=Math['max'](0x4,a7),this['_minEntries']=Math['max'](0x2,Math['ceil'](this['_maxEntries']*0.4)),this['clear']();}['all'](){return this['_all'](this['data'],[]);}['search'](a7){const aZ=a1;let a8=this[aZ(0x278)],a9=[];if(!x(a7,a8))return a9;let aa=this['toBBox'],ab=[];for(;a8;){for(let ac=0x0;ac<a8['children']['length'];ac++){let ad=a8[aZ(0x230)][ac],af=a8['leaf']?aa(ad):ad;x(a7,af)&&(a8['leaf']?a9['push'](ad):b(a7,af)?this['_all'](ad,a9):ab['push'](ad));}a8=ab['pop']();}return a9;}['collides'](a7){const b0=a1;let a8=this[b0(0x278)];if(!x(a7,a8))return!0x1;let a9=[];for(;a8;){for(let aa=0x0;aa<a8['children']['length'];aa++){let ab=a8['children'][aa],ac=a8['leaf']?this[b0(0x1d6)](ab):ab;if(x(a7,ac)){if(a8['leaf']||b(a7,ac))return!0x0;a9['push'](ab);}}a8=a9['pop']();}return!0x1;}['load'](a7){const b1=a1;if(!(a7&&a7['length']))return this;if(a7['length']<this['_minEntries']){for(let a9=0x0;a9<a7['length'];a9++)this['insert'](a7[a9]);return this;}let a8=this['_build'](a7['slice'](),0x0,a7[b1(0x1f7)]-0x1,0x0);if(!this['data']['children']['length'])this[b1(0x278)]=a8;else{if(this['data']['height']===a8['height'])this['_splitRoot'](this['data'],a8);else{if(this[b1(0x278)][b1(0x1c8)]<a8['height']){let aa=this['data'];this[b1(0x278)]=a8,a8=aa;}this['_insert'](a8,this['data']['height']-a8[b1(0x1c8)]-0x1,!0x0);}}return this;}['insert'](a7){const b2=a1;return a7&&this['_insert'](a7,this[b2(0x278)][b2(0x1c8)]-0x1),this;}['clear'](){return this['data']=S([]),this;}[b3(0x2ca)](a7,a8){const b4=b3;if(!a7)return this;let a9=this['data'],aa=this['toBBox'](a7),ab=[],ac=[],ad,af,ag;for(;a9||ab['length'];){if(a9||(a9=ab['pop'](),af=ab[ab['length']-0x1],ad=ac['pop'](),ag=!0x0),a9[b4(0x290)]){let ah=u(a7,a9['children'],a8);if(ah!==-0x1)return a9['children']['splice'](ah,0x1),ab['push'](a9),this['_condense'](ab),this;}!ag&&!a9['leaf']&&b(a9,aa)?(ab[b4(0x24d)](a9),ac['push'](ad),ad=0x0,af=a9,a9=a9['children'][0x0]):af?(ad++,a9=af['children'][ad],ag=!0x1):a9=null;}return this;}['toBBox'](a7){return a7;}['compareMinX'](a7,a8){const b5=b3;return a7[b5(0x23f)]-a8['minX'];}['compareMinY'](a7,a8){return a7['minY']-a8['minY'];}[b3(0x2b9)](){return this['data'];}['fromJSON'](a7){return this['data']=a7,this;}[b3(0x2b7)](a7,a8){const b6=b3;let a9=[];for(;a7;)a7['leaf']?a8[b6(0x24d)](...a7['children']):a9['push'](...a7['children']),a7=a9['pop']();return a8;}['_build'](a7,a8,a9,aa){const b7=b3;let ab=a9-a8+0x1,ac=this[b7(0x1b1)],ad;if(ab<=ac)return ad=S(a7['slice'](a8,a9+0x1)),d(ad,this['toBBox']),ad;aa||(aa=Math['ceil'](Math['log'](ab)/Math['log'](ac)),ac=Math['ceil'](ab/Math['pow'](ac,aa-0x1))),ad=S([]),ad[b7(0x290)]=!0x1,ad['height']=aa;let af=Math['ceil'](ab/ac),ag=af*Math['ceil'](Math['sqrt'](ac));C(a7,a8,a9,ag,this['compareMinX']);for(let ah=a8;ah<=a9;ah+=ag){let ai=Math['min'](ah+ag-0x1,a9);C(a7,ah,ai,af,this['compareMinY']);for(let aj=ah;aj<=ai;aj+=af){let ak=Math['min'](aj+af-0x1,ai);ad['children'][b7(0x24d)](this['_build'](a7,aj,ak,aa-0x1));}}return d(ad,this['toBBox']),ad;}['_chooseSubtree'](a7,a8,a9,aa){for(;aa['push'](a8),!(a8['leaf']||aa['length']-0x1===a9);){let ab=Infinity,ac=Infinity,ad;for(let af=0x0;af<a8['children']['length'];af++){let ag=a8['children'][af],ah=g(ag),ai=v(a7,ag)-ah;ai<ac?(ac=ai,ab=ah<ab?ah:ab,ad=ag):ai===ac&&ah<ab&&(ab=ah,ad=ag);}a8=ad||a8['children'][0x0];}return a8;}['_insert'](a7,a8,a9){let aa=a9?a7:this['toBBox'](a7),ab=[],ac=this['_chooseSubtree'](aa,this['data'],a8,ab);for(ac['children']['push'](a7),p(ac,aa);a8>=0x0&&ab[a8]['children']['length']>this['_maxEntries'];)this['_split'](ab,a8),a8--;this['_adjustParentBBoxes'](aa,ab,a8);}['_split'](a7,a8){const b8=b3;let a9=a7[a8],aa=a9['children']['length'],ab=this['_minEntries'];this['_chooseSplitAxis'](a9,ab,aa);let ac=this['_chooseSplitIndex'](a9,ab,aa),ad=S(a9['children'][b8(0x28b)](ac,a9[b8(0x230)]['length']-ac));ad['height']=a9['height'],ad['leaf']=a9[b8(0x290)],d(a9,this['toBBox']),d(ad,this[b8(0x1d6)]),a8?a7[a8-0x1]['children']['push'](ad):this['_splitRoot'](a9,ad);}[b3(0x204)](a7,a8){const b9=b3;this['data']=S([a7,a8]),this[b9(0x278)]['height']=a7['height']+0x1,this['data']['leaf']=!0x1,d(this['data'],this['toBBox']);}['_chooseSplitIndex'](a7,a8,a9){const ba=b3;let aa,ab=Infinity,ac=Infinity;for(let ad=a8;ad<=a9-a8;ad++){let af=f(a7,0x0,ad,this['toBBox']),ag=f(a7,ad,a9,this[ba(0x1d6)]),ah=y(af,ag),ai=g(af)+g(ag);ah<ab?(ab=ah,aa=ad,ac=ai<ac?ai:ac):ah===ab&&ai<ac&&(ac=ai,aa=ad);}return aa||a9-a8;}['_chooseSplitAxis'](a7,a8,a9){const bb=b3;let aa=a7['leaf']?this['compareMinX']:m,ab=a7['leaf']?this[bb(0x248)]:h;this['_allDistMargin'](a7,a8,a9,aa)<this[bb(0x27c)](a7,a8,a9,ab)&&a7[bb(0x230)]['sort'](aa);}['_allDistMargin'](a7,a8,a9,aa){const bc=b3;a7[bc(0x230)]['sort'](aa);let ab=this['toBBox'],ac=f(a7,0x0,a8,ab),ad=f(a7,a9-a8,a9,ab),af=_(ac)+_(ad);for(let ag=a8;ag<a9-a8;ag++){let ah=a7['children'][ag];p(ac,a7[bc(0x290)]?ab(ah):ah),af+=_(ac);}for(let ai=a9-a8-0x1;ai>=a8;ai--){let aj=a7['children'][ai];p(ad,a7['leaf']?ab(aj):aj),af+=_(ad);}return af;}['_adjustParentBBoxes'](a7,a8,a9){for(let aa=a9;aa>=0x0;aa--)p(a8[aa],a7);}['_condense'](a7){const bd=b3;for(let a8=a7['length']-0x1,a9;a8>=0x0;a8--)a7[a8][bd(0x230)]['length']===0x0?a8>0x0?(a9=a7[a8-0x1][bd(0x230)],a9['splice'](a9['indexOf'](a7[a8]),0x1)):this['clear']():d(a7[a8],this['toBBox']);}};function u(a7,a8,a9){if(!a9)return a8['indexOf'](a7);for(let aa=0x0;aa<a8['length'];aa++)if(a9(a7,a8[aa]))return aa;return-0x1;}function d(a7,a8){const bf=b3;f(a7,0x0,a7[bf(0x230)]['length'],a8,a7);}function f(a7,a8,a9,aa,ab){const bg=b3;ab||(ab=S(null)),ab['minX']=Infinity,ab[bg(0x1d2)]=Infinity,ab['maxX']=-Infinity,ab['maxY']=-Infinity;for(let ac=a8;ac<a9;ac++){let ad=a7['children'][ac];p(ab,a7['leaf']?aa(ad):ad);}return ab;}function p(a7,a8){const bh=b3;return a7['minX']=Math[bh(0x210)](a7['minX'],a8['minX']),a7['minY']=Math['min'](a7['minY'],a8['minY']),a7['maxX']=Math[bh(0x228)](a7['maxX'],a8['maxX']),a7['maxY']=Math['max'](a7['maxY'],a8[bh(0x245)]),a7;}function m(a7,a8){const bi=b3;return a7[bi(0x23f)]-a8['minX'];}function h(a7,a8){return a7['minY']-a8['minY'];}function g(a7){const bj=b3;return(a7['maxX']-a7['minX'])*(a7['maxY']-a7[bj(0x1d2)]);}function _(a7){const bk=b3;return a7['maxX']-a7['minX']+(a7[bk(0x245)]-a7['minY']);}function v(a7,a8){const bl=b3;return(Math['max'](a8['maxX'],a7[bl(0x2a2)])-Math['min'](a8['minX'],a7[bl(0x23f)]))*(Math[bl(0x228)](a8['maxY'],a7['maxY'])-Math['min'](a8['minY'],a7[bl(0x1d2)]));}function y(a7,a8){const bm=b3;let a9=Math['max'](a7['minX'],a8['minX']),aa=Math['max'](a7[bm(0x1d2)],a8[bm(0x1d2)]),ab=Math['min'](a7['maxX'],a8['maxX']),ac=Math['min'](a7['maxY'],a8[bm(0x245)]);return Math[bm(0x228)](0x0,ab-a9)*Math['max'](0x0,ac-aa);}function b(a7,a8){return a7['minX']<=a8['minX']&&a7['minY']<=a8['minY']&&a8['maxX']<=a7['maxX']&&a8['maxY']<=a7['maxY'];}function x(a7,a8){return a8['minX']<=a7['maxX']&&a8['minY']<=a7['maxY']&&a8['maxX']>=a7['minX']&&a8['maxY']>=a7['minY'];}function S(a7){return{'children':a7,'height':0x1,'leaf':!0x0,'minX':Infinity,'minY':Infinity,'maxX':-Infinity,'maxY':-Infinity};}function C(a7,a8,a9,aa,ab){const bn=b3;let ac=[a8,a9];for(;ac['length'];){if(a9=ac[bn(0x1f4)](),a8=ac[bn(0x1f4)](),a9-a8<=aa)continue;let ad=a8+Math[bn(0x2a0)]((a9-a8)/aa/0x2)*aa;o(a7,ad,a8,a9,ab),ac['push'](a8,ad,ad,a9);}}a4(),a3(),a2();function w(a7){const bo=b3;let a8=a7['replace'](/\r\n?/g,'\x0a'),a9=[],aa=a8['length'],ab=0x0;for(;ab<aa;){for(;ab<aa&&a8['charCodeAt'](ab)===0xa;)ab++;if(ab>=aa)break;let ac=a8['indexOf']('\x0a',ab);ac===-0x1&&(ac=aa);let ad=a8['substring'](ab,ac)['trim']();ab=ac+0x1;let af=parseInt(ad,0xa);if(isNaN(af)){ab<aa&&(ac=a8['indexOf']('\x0a',ab),ac===-0x1&&(ac=aa),ab=ac+0x1);continue;}if(ab>=aa)break;ac=a8['indexOf']('\x0a',ab),ac===-0x1&&(ac=aa);let ag=a8['substring'](ab,ac)['replace'](/\s+$/,'');ab=ac+0x1,a9[bo(0x24d)]({'code':af,'value':ag});}return a9;}function T(a7,a8,a9){const bp=b3;for(;a8<a7['length'];){let aa=a7[a8];if(aa['code']===0x0&&aa['value']==='ENDSEC')return a8+0x1;if(aa['code']===0x9){let ab=aa['value'];switch(a8++,ab){case'$ACADVER':a8<a7['length']&&(a9['acadVersion']=a7[a8]['value'],a8++);break;case'$EXTMIN':if(a8<a7[bp(0x1f7)]){let ac=E(a7,a8);a9['extMin']=ac['point'],a8=ac[bp(0x24f)];}break;case'$EXTMAX':if(a8<a7['length']){let ad=E(a7,a8);a9[bp(0x285)]=ad['point'],a8=ad['nextIndex'];}break;case'$INSUNITS':a8<a7['length']&&(a9['insUnits']=parseInt(a7[a8]['value'],0xa),a8++);break;case'$MEASUREMENT':a8<a7[bp(0x1f7)]&&(a9['measurement']=parseInt(a7[a8]['value'],0xa),a8++);break;case'$LTSCALE':a8<a7['length']&&(a9[bp(0x235)]=parseFloat(a7[a8]['value']),a8++);break;case'$DWGCODEPAGE':a8<a7[bp(0x1f7)]&&(a9['dwgCodePage']=a7[a8][bp(0x2a8)],a8++);break;case'$HANDSEED':a8<a7['length']&&(a9['handleSeed']=a7[a8]['value'],a8++);break;default:for(;a8<a7[bp(0x1f7)]&&a7[a8]['code']!==0x9&&a7[a8]['code']!==0x0;)a9[ab]=a7[a8]['value'],a8++;}}else a8++;}return a8;}function E(a7,a8){const bq=b3;let a9={'x':0x0,'y':0x0,'z':0x0};for(;a8<a7['length'];){let aa=a7[a8]['code'];if(aa===0xa)a9['x']=parseFloat(a7[a8]['value']),a8++;else{if(aa===0x14)a9['y']=parseFloat(a7[a8]['value']),a8++;else{if(aa===0x1e)a9['z']=parseFloat(a7[a8][bq(0x2a8)]),a8++;else break;}}}return{'point':a9,'nextIndex':a8};}function D(a7,a8,a9){const br=b3;for(;a8<a7['length'];){let aa=a7[a8];if(aa['code']===0x0&&aa[br(0x2a8)]===br(0x2d4))return a8+0x1;if(aa['code']===0x0&&aa['value']==='TABLE'){if(a8++,a8>=a7['length'])break;let ab=a7[a8][br(0x2a8)];switch(a8++,ab){case'LAYER':a8=k(a7,a8,a9['layers']);break;case'LTYPE':a8=ee(a7,a8,a9['lineTypes']);break;case'STYLE':a8=te(a7,a8,a9['styles']);break;default:a8=O(a7,a8);break;}}else a8++;}return a8;}function O(a7,a8){const bs=b3;for(;a8<a7['length'];){if(a7[a8]['code']===0x0&&a7[a8]['value']===bs(0x1fb))return a8+0x1;a8++;}return a8;}function k(a7,a8,a9){const bu=b3;for(;a8<a7['length'];){let aa=a7[a8];if(aa['code']===0x0&&aa['value']==='ENDTAB')return a8+0x1;if(aa['code']===0x0&&aa['value']==='LAYER'){a8++;let ab={'name':'0','color':0x7,'lineType':'Continuous','flags':0x0,'lineWeight':-0x3,'isOff':!0x1,'isFrozen':!0x1,'isLocked':!0x1};for(;a8<a7['length']&&a7[a8][bu(0x1b4)]!==0x0;){let ac=a7[a8];switch(ac['code']){case 0x2:ab['name']=ac['value'];break;case 0x6:ab['lineType']=ac['value'];break;case 0x3e:ab['color']=parseInt(ac['value'],0xa);break;case 0x46:ab['flags']=parseInt(ac['value'],0xa);break;case 0x172:ab['lineWeight']=parseInt(ac['value'],0xa);break;case 0x1a4:ab['trueColor']=parseInt(ac[bu(0x2a8)],0xa);break;}a8++;}a9['set'](ab['name'],ab);}else a8++;}return a8;}function ee(a7,a8,a9){const bv=b3;for(;a8<a7['length'];){let aa=a7[a8];if(aa['code']===0x0&&aa[bv(0x2a8)]==='ENDTAB')return a8+0x1;if(aa['code']===0x0&&aa['value']==='LTYPE'){a8++;let ab={'name':'','description':'','pattern':[],'totalLength':0x0};for(;a8<a7['length']&&a7[a8]['code']!==0x0;){let ac=a7[a8];switch(ac['code']){case 0x2:ab['name']=ac[bv(0x2a8)];break;case 0x3:ab['description']=ac['value'];break;case 0x28:ab['totalLength']=parseFloat(ac['value']);break;case 0x31:ab['pattern'][bv(0x24d)](parseFloat(ac['value']));break;}a8++;}ab['name']&&a9['set'](ab['name'],ab);}else a8++;}return a8;}function te(a7,a8,a9){const bw=b3;for(;a8<a7['length'];){let aa=a7[a8];if(aa['code']===0x0&&aa['value']==='ENDTAB')return a8+0x1;if(aa['code']===0x0&&aa['value']==='STYLE'){a8++;let ab={'name':'','fontName':'','bigFontName':'','height':0x0,'widthFactor':0x1,'obliqueAngle':0x0};for(;a8<a7['length']&&a7[a8]['code']!==0x0;){let ac=a7[a8];switch(ac['code']){case 0x2:ab['name']=ac[bw(0x2a8)];break;case 0x3:ab[bw(0x20f)]=ac[bw(0x2a8)];break;case 0x4:ab[bw(0x29f)]=ac[bw(0x2a8)];break;case 0x28:ab[bw(0x1c8)]=parseFloat(ac['value']);break;case 0x29:ab['widthFactor']=parseFloat(ac[bw(0x2a8)]);break;case 0x32:ab['obliqueAngle']=parseFloat(ac[bw(0x2a8)]);break;}a8++;}ab['name']&&a9['set'](ab['name'],ab);}else a8++;}return a8;}function A(a7){const bx=b3;let a8={'type':'','layer':'0','color':0x100,'lineType':'BYLAYER','lineTypeScale':0x1,'lineWeight':-0x1,'visible':!0x0,'extrusion':{'x':0x0,'y':0x0,'z':0x1}};for(let a9 of a7)switch(a9['code']){case 0x5:a8['handle']=a9['value'];break;case 0x8:a8['layer']=a9['value'];break;case 0x6:a8['lineType']=a9['value'];break;case 0x30:a8[bx(0x1d5)]=parseFloat(a9['value']);break;case 0x3c:a8['visible']=a9['value']==='0'||a9['value']==='';break;case 0x3e:a8[bx(0x1e1)]=parseInt(a9[bx(0x2a8)],0xa);break;case 0x172:a8['lineWeight']=parseInt(a9['value'],0xa);break;case 0x1a4:a8['trueColor']=parseInt(a9['value'],0xa);break;case 0xd2:a8['extrusion']['x']=parseFloat(a9['value']);break;case 0xdc:a8[bx(0x1c5)]['y']=parseFloat(a9['value']);break;case 0xe6:a8['extrusion']['z']=parseFloat(a9['value']);break;}return a8;}function ne(a7){const by=b3;let a8=a6(a6({},A(a7)),{},{'type':'LINE','start':{'x':0x0,'y':0x0,'z':0x0},'end':{'x':0x0,'y':0x0,'z':0x0}});for(let a9 of a7)switch(a9['code']){case 0xa:a8['start']['x']=parseFloat(a9['value']);break;case 0x14:a8[by(0x2b2)]['y']=parseFloat(a9['value']);break;case 0x1e:a8['start']['z']=parseFloat(a9['value']);break;case 0xb:a8['end']['x']=parseFloat(a9['value']);break;case 0x15:a8['end']['y']=parseFloat(a9['value']);break;case 0x1f:a8['end']['z']=parseFloat(a9['value']);break;}return a8;}function re(a7){const bz=b3;let a8=a6(a6({},A(a7)),{},{'type':'CIRCLE','center':{'x':0x0,'y':0x0,'z':0x0},'radius':0x0});for(let a9 of a7)switch(a9['code']){case 0xa:a8['center']['x']=parseFloat(a9['value']);break;case 0x14:a8['center']['y']=parseFloat(a9[bz(0x2a8)]);break;case 0x1e:a8['center']['z']=parseFloat(a9['value']);break;case 0x28:a8['radius']=parseFloat(a9['value']);break;}return a8;}function ie(a7){const bA=b3;let a8=a6(a6({},A(a7)),{},{'type':'ARC','center':{'x':0x0,'y':0x0,'z':0x0},'radius':0x0,'startAngle':0x0,'endAngle':0x168});for(let a9 of a7)switch(a9['code']){case 0xa:a8[bA(0x1bb)]['x']=parseFloat(a9['value']);break;case 0x14:a8['center']['y']=parseFloat(a9[bA(0x2a8)]);break;case 0x1e:a8[bA(0x1bb)]['z']=parseFloat(a9['value']);break;case 0x28:a8['radius']=parseFloat(a9['value']);break;case 0x32:a8['startAngle']=parseFloat(a9['value']);break;case 0x33:a8['endAngle']=parseFloat(a9['value']);break;}return a8;}function ae(a7){const bB=b3;let a8=a6(a6({},A(a7)),{},{'type':'LWPOLYLINE','vertices':[],'closed':!0x1,'constantWidth':0x0,'elevation':0x0}),a9=null;for(let aa of a7)switch(aa[bB(0x1b4)]){case 0x46:a8['closed']=(parseInt(aa['value'],0xa)&0x1)!=0x0;break;case 0x26:a8['elevation']=parseFloat(aa['value']);break;case 0x2b:a8['constantWidth']=parseFloat(aa['value']);break;case 0xa:a9&&a8['vertices'][bB(0x24d)](a9),a9={'x':parseFloat(aa['value']),'y':0x0,'bulge':0x0,'startWidth':0x0,'endWidth':0x0};break;case 0x14:a9&&(a9['y']=parseFloat(aa[bB(0x2a8)]));break;case 0x28:a9&&(a9[bB(0x298)]=parseFloat(aa['value']));break;case 0x29:a9&&(a9['endWidth']=parseFloat(aa['value']));break;case 0x2a:a9&&(a9[bB(0x1c0)]=parseFloat(aa['value']));break;}return a9&&a8['vertices']['push'](a9),a8;}function oe(a7){const bC=b3;let a8=a6(a6({},A(a7)),{},{'type':bC(0x294),'vertices':[],'closed':!0x1,'is3d':!0x1});for(let a9 of a7)switch(a9['code']){case 0x46:{let aa=parseInt(a9['value'],0xa);a8['closed']=(aa&0x1)!=0x0,a8['is3d']=(aa&0x8)!=0x0;break;}}return a8;}function se(a7){const bD=b3;let a8=a6(a6({},A(a7)),{},{'type':'ELLIPSE','center':{'x':0x0,'y':0x0,'z':0x0},'majorAxis':{'x':0x1,'y':0x0,'z':0x0},'minorRatio':0x1,'startParam':0x0,'endParam':Math['PI']*0x2});for(let a9 of a7)switch(a9[bD(0x1b4)]){case 0xa:a8[bD(0x1bb)]['x']=parseFloat(a9['value']);break;case 0x14:a8['center']['y']=parseFloat(a9['value']);break;case 0x1e:a8['center']['z']=parseFloat(a9['value']);break;case 0xb:a8['majorAxis']['x']=parseFloat(a9['value']);break;case 0x15:a8['majorAxis']['y']=parseFloat(a9['value']);break;case 0x1f:a8[bD(0x22e)]['z']=parseFloat(a9['value']);break;case 0x28:a8['minorRatio']=parseFloat(a9['value']);break;case 0x29:a8['startParam']=parseFloat(a9['value']);break;case 0x2a:a8[bD(0x2c0)]=parseFloat(a9[bD(0x2a8)]);break;}return a8;}function ce(a7){const bE=b3;let a8=a6(a6({},A(a7)),{},{'type':bE(0x286),'degree':0x3,'flags':0x0,'knots':[],'controlPoints':[],'fitPoints':[],'weights':[]}),a9=null,aa=null;for(let ab of a7)switch(ab['code']){case 0x46:a8[bE(0x253)]=parseInt(ab['value'],0xa);break;case 0x47:a8['degree']=parseInt(ab['value'],0xa);break;case 0x28:a8['knots']['push'](parseFloat(ab['value']));break;case 0x29:a8['weights'][bE(0x24d)](parseFloat(ab['value']));break;case 0xa:a9&&a8['controlPoints']['push'](a9),a9={'x':parseFloat(ab['value']),'y':0x0,'z':0x0};break;case 0x14:a9&&(a9['y']=parseFloat(ab['value']));break;case 0x1e:a9&&(a9['z']=parseFloat(ab['value']));break;case 0xb:aa&&a8[bE(0x207)][bE(0x24d)](aa),aa={'x':parseFloat(ab[bE(0x2a8)]),'y':0x0,'z':0x0};break;case 0x15:aa&&(aa['y']=parseFloat(ab['value']));break;case 0x1f:aa&&(aa['z']=parseFloat(ab['value']));break;case 0xc:a8[bE(0x2cb)]||(a8[bE(0x2cb)]={'x':0x0,'y':0x0,'z':0x0}),a8['startTangent']['x']=parseFloat(ab['value']);break;case 0x16:a8['startTangent']&&(a8['startTangent']['y']=parseFloat(ab['value']));break;case 0x20:a8['startTangent']&&(a8['startTangent']['z']=parseFloat(ab[bE(0x2a8)]));break;case 0xd:a8[bE(0x28a)]||(a8['endTangent']={'x':0x0,'y':0x0,'z':0x0}),a8[bE(0x28a)]['x']=parseFloat(ab[bE(0x2a8)]);break;case 0x17:a8['endTangent']&&(a8['endTangent']['y']=parseFloat(ab['value']));break;case 0x21:a8['endTangent']&&(a8['endTangent']['z']=parseFloat(ab['value']));break;}return a9&&a8['controlPoints']['push'](a9),aa&&a8['fitPoints']['push'](aa),a8;}function le(a7){const bF=b3;let a8=a6(a6({},A(a7)),{},{'type':bF(0x25c),'text':'','insertionPoint':{'x':0x0,'y':0x0,'z':0x0},'height':0x1,'rotation':0x0,'widthFactor':0x1,'obliqueAngle':0x0,'style':bF(0x209),'hAlign':0x0,'vAlign':0x0,'generationFlags':0x0});for(let a9 of a7)switch(a9[bF(0x1b4)]){case 0x1:a8[bF(0x293)]=a9['value'];break;case 0xa:a8['insertionPoint']['x']=parseFloat(a9['value']);break;case 0x14:a8['insertionPoint']['y']=parseFloat(a9['value']);break;case 0x1e:a8[bF(0x2bd)]['z']=parseFloat(a9['value']);break;case 0xb:a8['alignmentPoint']||(a8['alignmentPoint']={'x':0x0,'y':0x0,'z':0x0}),a8['alignmentPoint']['x']=parseFloat(a9[bF(0x2a8)]);break;case 0x15:a8['alignmentPoint']||(a8['alignmentPoint']={'x':0x0,'y':0x0,'z':0x0}),a8['alignmentPoint']['y']=parseFloat(a9['value']);break;case 0x1f:a8['alignmentPoint']||(a8['alignmentPoint']={'x':0x0,'y':0x0,'z':0x0}),a8['alignmentPoint']['z']=parseFloat(a9['value']);break;case 0x28:a8['height']=parseFloat(a9[bF(0x2a8)]);break;case 0x29:a8['widthFactor']=parseFloat(a9['value']);break;case 0x32:a8[bF(0x2d0)]=parseFloat(a9[bF(0x2a8)]);break;case 0x33:a8['obliqueAngle']=parseFloat(a9['value']);break;case 0x7:a8['style']=a9['value'];break;case 0x47:a8[bF(0x2c4)]=parseInt(a9['value'],0xa);break;case 0x48:a8['hAlign']=parseInt(a9[bF(0x2a8)],0xa);break;case 0x49:a8['vAlign']=parseInt(a9['value'],0xa);break;}return a8;}function ue(a7){const bG=b3;let a8=a6(a6({},A(a7)),{},{'type':'MTEXT','text':'','insertionPoint':{'x':0x0,'y':0x0,'z':0x0},'height':0x1,'width':0x0,'attachmentPoint':0x1,'drawingDirection':0x1,'rotation':0x0,'lineSpacingStyle':0x1,'lineSpacingFactor':0x1,'style':'STANDARD','bgFill':0x0,'bgFillScale':1.5}),a9=[];for(let aa of a7)switch(aa['code']){case 0x1:a9['push'](aa['value']);break;case 0x3:a9['push'](aa['value']);break;case 0x7:a8['style']=aa['value'];break;case 0xa:a8[bG(0x2bd)]['x']=parseFloat(aa['value']);break;case 0x14:a8['insertionPoint']['y']=parseFloat(aa['value']);break;case 0x1e:a8['insertionPoint']['z']=parseFloat(aa['value']);break;case 0xb:a8['textDirection']||(a8['textDirection']={'x':0x0,'y':0x0,'z':0x0}),a8['textDirection']['x']=parseFloat(aa['value']);break;case 0x15:a8[bG(0x21d)]||(a8['textDirection']={'x':0x0,'y':0x0,'z':0x0}),a8[bG(0x21d)]['y']=parseFloat(aa['value']);break;case 0x1f:a8['textDirection']||(a8[bG(0x21d)]={'x':0x0,'y':0x0,'z':0x0}),a8[bG(0x21d)]['z']=parseFloat(aa['value']);break;case 0x28:a8[bG(0x1c8)]=parseFloat(aa[bG(0x2a8)]);break;case 0x29:a8[bG(0x23b)]=parseFloat(aa[bG(0x2a8)]);break;case 0x2c:a8['lineSpacingFactor']=parseFloat(aa['value']);break;case 0x32:a8['rotation']=parseFloat(aa['value']);break;case 0x47:a8[bG(0x215)]=parseInt(aa['value'],0xa);break;case 0x48:a8['drawingDirection']=parseInt(aa['value'],0xa);break;case 0x49:a8['lineSpacingStyle']=parseInt(aa['value'],0xa);break;case 0x5a:a8[bG(0x236)]=parseInt(aa['value'],0xa);break;}return a8['text']=a9['join'](''),a8;}function de(a7){const bH=b3;let a8=a6(a6({},A(a7)),{},{'type':'INSERT','blockName':'','insertionPoint':{'x':0x0,'y':0x0,'z':0x0},'scaleX':0x1,'scaleY':0x1,'scaleZ':0x1,'rotation':0x0,'columnCount':0x1,'rowCount':0x1,'columnSpacing':0x0,'rowSpacing':0x0,'attribs':[]});for(let a9 of a7)switch(a9['code']){case 0x2:a8[bH(0x2c3)]=a9[bH(0x2a8)];break;case 0xa:a8['insertionPoint']['x']=parseFloat(a9['value']);break;case 0x14:a8['insertionPoint']['y']=parseFloat(a9['value']);break;case 0x1e:a8['insertionPoint']['z']=parseFloat(a9['value']);break;case 0x29:a8['scaleX']=parseFloat(a9['value']);break;case 0x2a:a8['scaleY']=parseFloat(a9['value']);break;case 0x2b:a8[bH(0x250)]=parseFloat(a9['value']);break;case 0x2c:a8['columnSpacing']=parseFloat(a9[bH(0x2a8)]);break;case 0x2d:a8[bH(0x200)]=parseFloat(a9['value']);break;case 0x32:a8['rotation']=parseFloat(a9['value']);break;case 0x46:a8['columnCount']=parseInt(a9[bH(0x2a8)],0xa)||0x1;break;case 0x47:a8['rowCount']=parseInt(a9['value'],0xa)||0x1;break;}return a8;}function fe(a7){const bI=b3;let a8=a6(a6({},A(a7)),{},{'type':'DIMENSION','blockName':'','dimStyle':'STANDARD','dimType':0x0,'defPoint':{'x':0x0,'y':0x0,'z':0x0},'textMidpoint':{'x':0x0,'y':0x0,'z':0x0},'textOverride':'','rotation':0x0,'textRotation':0x0,'leaderLength':0x0});for(let a9 of a7)switch(a9['code']){case 0x1:a8['textOverride']=a9['value'];break;case 0x2:a8['blockName']=a9['value'];break;case 0x3:a8['dimStyle']=a9['value'];break;case 0xa:a8['defPoint']['x']=parseFloat(a9['value']);break;case 0x14:a8['defPoint']['y']=parseFloat(a9['value']);break;case 0x1e:a8['defPoint']['z']=parseFloat(a9['value']);break;case 0xb:a8[bI(0x252)]['x']=parseFloat(a9['value']);break;case 0x15:a8['textMidpoint']['y']=parseFloat(a9['value']);break;case 0x1f:a8['textMidpoint']['z']=parseFloat(a9['value']);break;case 0xd:a8['defPoint2']||(a8['defPoint2']={'x':0x0,'y':0x0,'z':0x0}),a8[bI(0x22f)]['x']=parseFloat(a9['value']);break;case 0x17:a8['defPoint2']||(a8['defPoint2']={'x':0x0,'y':0x0,'z':0x0}),a8['defPoint2']['y']=parseFloat(a9['value']);break;case 0x21:a8['defPoint2']||(a8['defPoint2']={'x':0x0,'y':0x0,'z':0x0}),a8[bI(0x22f)]['z']=parseFloat(a9['value']);break;case 0xe:a8['defPoint3']||(a8['defPoint3']={'x':0x0,'y':0x0,'z':0x0}),a8['defPoint3']['x']=parseFloat(a9['value']);break;case 0x18:a8['defPoint3']||(a8['defPoint3']={'x':0x0,'y':0x0,'z':0x0}),a8['defPoint3']['y']=parseFloat(a9['value']);break;case 0x22:a8['defPoint3']||(a8[bI(0x1de)]={'x':0x0,'y':0x0,'z':0x0}),a8['defPoint3']['z']=parseFloat(a9['value']);break;case 0xf:a8['defPoint4']||(a8[bI(0x2aa)]={'x':0x0,'y':0x0,'z':0x0}),a8['defPoint4']['x']=parseFloat(a9['value']);break;case 0x19:a8[bI(0x2aa)]||(a8[bI(0x2aa)]={'x':0x0,'y':0x0,'z':0x0}),a8[bI(0x2aa)]['y']=parseFloat(a9['value']);break;case 0x23:a8['defPoint4']||(a8['defPoint4']={'x':0x0,'y':0x0,'z':0x0}),a8[bI(0x2aa)]['z']=parseFloat(a9['value']);break;case 0x10:a8['defPoint5']||(a8[bI(0x1fd)]={'x':0x0,'y':0x0,'z':0x0}),a8['defPoint5']['x']=parseFloat(a9['value']);break;case 0x1a:a8['defPoint5']||(a8['defPoint5']={'x':0x0,'y':0x0,'z':0x0}),a8['defPoint5']['y']=parseFloat(a9['value']);break;case 0x24:a8['defPoint5']||(a8['defPoint5']={'x':0x0,'y':0x0,'z':0x0}),a8['defPoint5']['z']=parseFloat(a9['value']);break;case 0x28:a8[bI(0x2b6)]=parseFloat(a9['value']);break;case 0x32:a8['rotation']=parseFloat(a9['value']);break;case 0x35:a8[bI(0x29b)]=parseFloat(a9['value']);break;case 0x46:a8[bI(0x1c2)]=parseInt(a9['value'],0xa);break;}return a8;}function pe(a7){const bJ=b3;let a8=a6(a6({},A(a7)),{},{'type':'HATCH','patternName':'','solidFill':!0x0,'associative':!0x1,'hatchStyle':0x0,'patternType':0x1,'patternAngle':0x0,'patternScale':0x1,'boundaryPaths':[]}),a9=0x0;for(;a9<a7[bJ(0x1f7)];){let aa=a7[a9];switch(aa['code']){case 0x2:a8['patternName']=aa['value'];break;case 0x29:a8[bJ(0x227)]=parseFloat(aa[bJ(0x2a8)]);break;case 0x34:a8['patternAngle']=parseFloat(aa['value']);break;case 0x46:a8['solidFill']=aa['value']==='1';break;case 0x47:a8['associative']=aa['value']==='1';break;case 0x4b:a8['hatchStyle']=parseInt(aa['value'],0xa);break;case 0x4c:a8['patternType']=parseInt(aa[bJ(0x2a8)],0xa);break;case 0x5b:{let ab=parseInt(aa['value'],0xa);a9++;for(let ac=0x0;ac<ab&&a9<a7['length'];ac++){let ad=me(a7,a9);a8[bJ(0x1b5)]['push'](ad['path']),a9=ad['nextIndex'];}continue;}}a9++;}return a8;}function me(a7,a8){let a9=0x0;return a8<a7['length']&&a7[a8]['code']===0x5c&&(a9=parseInt(a7[a8]['value'],0xa),a8++),a9&0x2?he(a7,a8,a9):ge(a7,a8,a9);}function he(a7,a8,a9){const bK=b3;let aa={'type':bK(0x1be),'vertices':[],'bulges':[],'flags':a9},ab=!0x1;a8<a7['length']&&a7[a8][bK(0x1b4)]===0x48&&(ab=a7[a8][bK(0x2a8)]==='1',a8++),a8<a7['length']&&a7[a8][bK(0x1b4)]===0x49&&(aa[bK(0x237)]=a7[a8][bK(0x2a8)]==='1',a8++);let ac=0x0;a8<a7['length']&&a7[a8][bK(0x1b4)]===0x5d&&(ac=parseInt(a7[a8]['value'],0xa),a8++);for(let ad=0x0;ad<ac&&a8<a7['length'];ad++){let af={'x':0x0,'y':0x0};a7[a8]['code']===0xa&&(af['x']=parseFloat(a7[a8]['value']),a8++),a8<a7[bK(0x1f7)]&&a7[a8]['code']===0x14&&(af['y']=parseFloat(a7[a8]['value']),a8++),aa['vertices']['push'](af),ab&&a8<a7['length']&&a7[a8]['code']===0x2a?(aa['bulges']['push'](parseFloat(a7[a8]['value'])),a8++):ab&&aa['bulges']['push'](0x0);}for(;a8<a7['length']&&(a7[a8]['code']===0x61||a7[a8]['code']===0x14a);)if(a7[a8]['code']===0x61){let ag=parseInt(a7[a8]['value'],0xa);a8++;for(let ah=0x0;ah<ag&&a8<a7['length']&&a7[a8]['code']===0x14a;ah++)a8++;}else a8++;return{'path':aa,'nextIndex':a8};}function ge(a7,a8,a9){const bL=b3;let aa={'type':bL(0x1ed),'edges':[],'flags':a9},ab=0x0;a8<a7['length']&&a7[a8]['code']===0x5d&&(ab=parseInt(a7[a8][bL(0x2a8)],0xa),a8++);for(let ac=0x0;ac<ab&&a8<a7['length']&&a7[a8]['code']===0x48;ac++){let ad=parseInt(a7[a8]['value'],0xa);switch(a8++,ad){case 0x1:{let af={'type':bL(0x280),'start':{'x':0x0,'y':0x0},'end':{'x':0x0,'y':0x0}};a8<a7['length']&&a7[a8][bL(0x1b4)]===0xa&&(af['start']['x']=parseFloat(a7[a8]['value']),a8++),a8<a7['length']&&a7[a8]['code']===0x14&&(af['start']['y']=parseFloat(a7[a8][bL(0x2a8)]),a8++),a8<a7['length']&&a7[a8]['code']===0xb&&(af[bL(0x28e)]['x']=parseFloat(a7[a8][bL(0x2a8)]),a8++),a8<a7['length']&&a7[a8][bL(0x1b4)]===0x15&&(af['end']['y']=parseFloat(a7[a8]['value']),a8++),aa['edges']['push'](af);break;}case 0x2:{let ag={'type':'arc','center':{'x':0x0,'y':0x0},'radius':0x0,'startAngle':0x0,'endAngle':0x168,'ccw':!0x0};a8<a7['length']&&a7[a8][bL(0x1b4)]===0xa&&(ag['center']['x']=parseFloat(a7[a8][bL(0x2a8)]),a8++),a8<a7[bL(0x1f7)]&&a7[a8]['code']===0x14&&(ag['center']['y']=parseFloat(a7[a8]['value']),a8++),a8<a7[bL(0x1f7)]&&a7[a8]['code']===0x28&&(ag['radius']=parseFloat(a7[a8]['value']),a8++),a8<a7['length']&&a7[a8]['code']===0x32&&(ag['startAngle']=parseFloat(a7[a8]['value']),a8++),a8<a7[bL(0x1f7)]&&a7[a8]['code']===0x33&&(ag['endAngle']=parseFloat(a7[a8]['value']),a8++),a8<a7[bL(0x1f7)]&&a7[a8]['code']===0x49&&(ag['ccw']=a7[a8]['value']==='1',a8++),aa['edges'][bL(0x24d)](ag);break;}case 0x3:{let ah={'type':'ellipse','center':{'x':0x0,'y':0x0},'majorAxis':{'x':0x1,'y':0x0},'minorRatio':0x1,'startAngle':0x0,'endAngle':Math['PI']*0x2,'ccw':!0x0};a8<a7['length']&&a7[a8][bL(0x1b4)]===0xa&&(ah['center']['x']=parseFloat(a7[a8]['value']),a8++),a8<a7['length']&&a7[a8][bL(0x1b4)]===0x14&&(ah['center']['y']=parseFloat(a7[a8]['value']),a8++),a8<a7['length']&&a7[a8]['code']===0xb&&(ah['majorAxis']['x']=parseFloat(a7[a8]['value']),a8++),a8<a7['length']&&a7[a8]['code']===0x15&&(ah['majorAxis']['y']=parseFloat(a7[a8]['value']),a8++),a8<a7['length']&&a7[a8][bL(0x1b4)]===0x28&&(ah['minorRatio']=parseFloat(a7[a8]['value']),a8++),a8<a7['length']&&a7[a8]['code']===0x32&&(ah['startAngle']=parseFloat(a7[a8]['value']),a8++),a8<a7['length']&&a7[a8][bL(0x1b4)]===0x33&&(ah['endAngle']=parseFloat(a7[a8][bL(0x2a8)]),a8++),a8<a7['length']&&a7[a8]['code']===0x49&&(ah['ccw']=a7[a8]['value']==='1',a8++),aa['edges']['push'](ah);break;}case 0x4:{let ai=0x3,aj=[],ak=[];a8<a7['length']&&a7[a8]['code']===0x5e&&(ai=parseInt(a7[a8]['value'],0xa),a8++),a8<a7['length']&&a7[a8]['code']===0x49&&a8++,a8<a7['length']&&a7[a8]['code']===0x4a&&a8++;let al=0x0;a8<a7['length']&&a7[a8]['code']===0x5f&&(al=parseInt(a7[a8][bL(0x2a8)],0xa),a8++);let am=0x0;a8<a7['length']&&a7[a8]['code']===0x60&&(am=parseInt(a7[a8][bL(0x2a8)],0xa),a8++);for(let an=0x0;an<al&&a8<a7[bL(0x1f7)]&&a7[a8]['code']===0x28;an++)aj['push'](parseFloat(a7[a8]['value'])),a8++;for(let ao=0x0;ao<am&&a8<a7['length'];ao++){let ap={'x':0x0,'y':0x0};a7[a8]['code']===0xa&&(ap['x']=parseFloat(a7[a8]['value']),a8++),a8<a7['length']&&a7[a8][bL(0x1b4)]===0x14&&(ap['y']=parseFloat(a7[a8][bL(0x2a8)]),a8++),ak['push'](ap);}aa['edges']['push']({'type':'spline','degree':ai,'knots':aj,'controlPoints':ak});break;}}}for(;a8<a7['length']&&(a7[a8]['code']===0x61||a7[a8]['code']===0x14a);)if(a7[a8]['code']===0x61){let aq=parseInt(a7[a8]['value'],0xa);a8++;for(let ar=0x0;ar<aq&&a8<a7['length']&&a7[a8][bL(0x1b4)]===0x14a;ar++)a8++;}else a8++;return{'path':aa,'nextIndex':a8};}function _e(a7){const bM=b3;let a8=a6(a6({},A(a7)),{},{'type':'POINT','position':{'x':0x0,'y':0x0,'z':0x0}});for(let a9 of a7)switch(a9['code']){case 0xa:a8['position']['x']=parseFloat(a9['value']);break;case 0x14:a8['position']['y']=parseFloat(a9[bM(0x2a8)]);break;case 0x1e:a8['position']['z']=parseFloat(a9[bM(0x2a8)]);break;}return a8;}function j(a7,a8,a9){const bN=b3;for(;a8<a7['length'];){let aa=a7[a8];if(aa['code']!==0x0){a8++;continue;}let ab=aa['value'];if(ab==='ENDSEC'||ab===bN(0x288))return a8+0x1;a8++;let ac=[];for(;a8<a7['length']&&a7[a8]['code']!==0x0;)ac['push'](a7[a8]),a8++;switch(ab){case'LINE':a9[bN(0x24d)](ne(ac));break;case bN(0x2bf):a9['push'](re(ac));break;case'ARC':a9['push'](ie(ac));break;case'LWPOLYLINE':a9['push'](ae(ac));break;case'ELLIPSE':a9['push'](se(ac));break;case'SPLINE':a9['push'](ce(ac));break;case'TEXT':a9['push'](le(ac));break;case'MTEXT':a9['push'](ue(ac));break;case'INSERT':{let ad=de(ac);ac[bN(0x2b8)](af=>af['code']===0x42&&af[bN(0x2a8)]==='1')&&(a8=ye(a7,a8,ad['attribs'])),a9['push'](ad);break;}case'DIMENSION':a9['push'](fe(ac));break;case'HATCH':a9[bN(0x24d)](pe(ac));break;case'POINT':a9['push'](_e(ac));break;case bN(0x294):{let af=oe(ac);a8=ve(a7,a8,af['vertices']),a9['push'](af);break;}}}return a8;}function ve(a7,a8,a9){const bO=b3;for(;a8<a7['length'];){if(a7[a8]['code']!==0x0){a8++;continue;}let aa=a7[a8]['value'];if(aa==='SEQEND')return a8+0x1;if(aa==='ENDSEC'||aa==='ENDBLK')return a8;if(aa==='VERTEX'){a8++;let ab={'x':0x0,'y':0x0,'bulge':0x0,'startWidth':0x0,'endWidth':0x0};for(;a8<a7['length']&&a7[a8]['code']!==0x0;){let ac=a7[a8];switch(ac['code']){case 0xa:ab['x']=parseFloat(ac['value']);break;case 0x14:ab['y']=parseFloat(ac['value']);break;case 0x2a:ab[bO(0x1c0)]=parseFloat(ac['value']);break;case 0x28:ab['startWidth']=parseFloat(ac[bO(0x2a8)]);break;case 0x29:ab['endWidth']=parseFloat(ac['value']);break;}a8++;}a9[bO(0x24d)](ab);}else{for(a8++;a8<a7['length']&&a7[a8][bO(0x1b4)]!==0x0;)a8++;}}return a8;}function ye(a7,a8,a9){const bP=b3;for(;a8<a7['length'];){if(a7[a8]['code']!==0x0){a8++;continue;}let aa=a7[a8]['value'];if(aa===bP(0x24a))return a8+0x1;if(aa==='ENDSEC'||aa==='ENDBLK')return a8;if(aa==='ATTRIB'){a8++;let ab={'tag':'','text':'','insertionPoint':{'x':0x0,'y':0x0,'z':0x0},'height':0x1,'rotation':0x0,'style':'STANDARD','layer':'0','color':0x100};for(;a8<a7[bP(0x1f7)]&&a7[a8][bP(0x1b4)]!==0x0;){let ac=a7[a8];switch(ac['code']){case 0x1:ab[bP(0x293)]=ac['value'];break;case 0x2:ab['tag']=ac['value'];break;case 0x7:ab[bP(0x1f5)]=ac[bP(0x2a8)];break;case 0x8:ab['layer']=ac[bP(0x2a8)];break;case 0xa:ab['insertionPoint']['x']=parseFloat(ac[bP(0x2a8)]);break;case 0x14:ab['insertionPoint']['y']=parseFloat(ac['value']);break;case 0x1e:ab['insertionPoint']['z']=parseFloat(ac['value']);break;case 0x28:ab['height']=parseFloat(ac['value']);break;case 0x32:ab['rotation']=parseFloat(ac['value']);break;case 0x3e:ab['color']=parseInt(ac['value'],0xa);break;}a8++;}a9['push'](ab);}else{for(a8++;a8<a7['length']&&a7[a8]['code']!==0x0;)a8++;}}return a8;}function be(a7,a8,a9){const bQ=b3;for(;a8<a7[bQ(0x1f7)];){let aa=a7[a8];if(aa['code']===0x0&&aa['value']==='ENDSEC')return a8+0x1;if(aa[bQ(0x1b4)]===0x0&&aa['value']==='BLOCK'){a8++;let ab={'name':'','basePoint':{'x':0x0,'y':0x0,'z':0x0},'entities':[],'flags':0x0};for(;a8<a7['length']&&a7[a8]['code']!==0x0;){let ac=a7[a8];switch(ac['code']){case 0x2:ab['name']=ac['value'];break;case 0x8:break;case 0xa:ab['basePoint']['x']=parseFloat(ac['value']);break;case 0x14:ab['basePoint']['y']=parseFloat(ac[bQ(0x2a8)]);break;case 0x1e:ab['basePoint']['z']=parseFloat(ac['value']);break;case 0x46:ab[bQ(0x253)]=parseInt(ac['value'],0xa);break;}a8++;}a8=j(a7,a8,ab[bQ(0x2ad)]),ab['name']&&!ab['name']['startsWith']('*Model_Space')&&!ab['name']['startsWith']('*Paper_Space')&&a9['set'](ab['name'],ab);}else a8++;}return a8;}var M='AutoCAD\x20Binary\x20DXF',xe={'ANSI_874':'windows-874','ANSI_932':'shift_jis','ANSI_936':'gbk','ANSI_949':'euc-kr','ANSI_950':'big5','ANSI_1250':'windows-1250','ANSI_1251':'windows-1251','ANSI_1252':'windows-1252','ANSI_1253':'windows-1253','ANSI_1254':'windows-1254','ANSI_1255':'windows-1255','ANSI_1256':'windows-1256','ANSI_1257':b3(0x2c7),'ANSI_1258':'windows-1258'},Se='AC1021';function Ce(){return{'acadVersion':'','insUnits':0x0,'measurement':0x0,'ltScale':0x1};}function N(a7){const bR=b3;return a7['replace'](/\\U\+([0-9A-Fa-f]{4})/g,(a8,a9)=>String[bR(0x26b)](parseInt(a9,0x10)));}function we(a7){const bS=b3;var a8;if(typeof a7=='string')return N(a7);let a9=new Uint8Array(a7);if(new TextDecoder('ascii')['decode'](a9['slice'](0x0,M['length']))===M)throw new P(bS(0x282));let aa=new TextDecoder('utf-8')['decode'](a7),ab=aa['match'](/\$ACADVER[\s\S]*?\n\s*1\s*\n\s*(\S+)/),ac=(a8=ab==null?void 0x0:ab[0x1])==null?'':a8;if(ac&&ac<Se){var ad,af;let ag=aa['match'](/\$DWGCODEPAGE[\s\S]*?\n\s*3\s*\n\s*(\S+)/),ah=(af=xe[(ad=ag==null?void 0x0:ag[0x1])==null?'':ad])==null?'windows-1252':af;ah!=='utf-8'&&(aa=new TextDecoder(ah)['decode'](a7));}return N(aa);}function Te(a7,a8){for(;a8<a7['length'];){if(a7[a8]['code']===0x0&&a7[a8]['value']==='ENDSEC')return a8+0x1;a8++;}return a8;}function Ee(a7){a7['layers']['has']('0')||a7['layers']['set']('0',{'name':'0','color':0x7,'lineType':'Continuous','flags':0x0,'lineWeight':-0x3,'isOff':!0x1,'isFrozen':!0x1,'isLocked':!0x1});}function De(a7){const bT=b3;for(let [,a8]of a7['layers'])a8['isOff']=a8['color']<0x0,a8[bT(0x1dd)]&&(a8['color']=Math['abs'](a8['color'])),a8['isFrozen']=(a8[bT(0x253)]&0x1)!=0x0,a8['isLocked']=(a8[bT(0x253)]&0x4)!=0x0;}var P=class extends Error{constructor(a7,a8){const bU=b3;super(a7),this['cause']=a8,this['name']=bU(0x1c4);}};function F(a7){const bV=b3;if(typeof a7=='string'){if(a7['length']===0x0)throw new P('Input\x20is\x20empty.\x20Expected\x20a\x20DXF\x20string\x20or\x20ArrayBuffer.');}else{if(a7 instanceof ArrayBuffer){if(a7[bV(0x1ff)]===0x0)throw new P('Input\x20ArrayBuffer\x20is\x20empty.');}else throw new P('Invalid\x20input\x20type.\x20Expected\x20a\x20string\x20or\x20ArrayBuffer.');}let a8;try{a8=we(a7);}catch(ab){throw ab instanceof P?ab:new P(bV(0x234),ab);}let a9;try{a9=w(a8);}catch(ac){throw new P('Failed\x20to\x20tokenize\x20DXF\x20content.',ac);}if(a9['length']===0x0)throw new P('DXF\x20content\x20produced\x20no\x20tokens.\x20The\x20input\x20may\x20not\x20be\x20a\x20valid\x20DXF\x20file.');let aa={'header':Ce(),'layers':new Map(),'lineTypes':new Map(),'styles':new Map(),'blocks':new Map(),'entities':[]};try{let ad=0x0;for(;ad<a9['length'];){let af=a9[ad];if(af['code']===0x0&&af['value']==='SECTION'){if(ad++,ad>=a9['length'])break;let ag=a9[ad]['value'];switch(ad++,ag){case'HEADER':ad=T(a9,ad,aa['header']);break;case'TABLES':ad=D(a9,ad,aa);break;case'BLOCKS':ad=be(a9,ad,aa['blocks']);break;case'ENTITIES':ad=j(a9,ad,aa['entities']);break;default:ad=Te(a9,ad);break;}}else{if(af['code']===0x0&&af[bV(0x2a8)]==='EOF')break;else ad++;}}}catch(ah){throw new P('Failed\x20to\x20parse\x20DXF\x20sections.',ah);}return Ee(aa),De(aa),aa;}var Oe='#000000.#FF0000.#FFFF00.#00FF00.#00FFFF.#0000FF.#FF00FF.#FFFFFF.#808080.#C0C0C0.#FF0000.#FF7F7F.#A50000.#A55252.#7F0000.#7F3F3F.#4C0000.#4C2626.#260000.#261313.#FF3F00.#FF9F7F.#A52900.#A56752.#7F1F00.#7F4F3F.#4C1300.#4C2F26.#260900.#261713.#FF7F00.#FFBF7F.#A55200.#A57C52.#7F3F00.#7F5F3F.#4C2600.#4C3926.#261300.#261C13.#FFBF00.#FFDF7F.#A57C00.#A59152.#7F5F00.#7F6F3F.#4C3900.#4C4226.#261C00.#262113.#FFFF00.#FFFF7F.#A5A500.#A5A552.#7F7F00.#7F7F3F.#4C4C00.#4C4C26.#262600.#262613.#BFFF00.#DFFF7F.#7CA500.#91A552.#5F7F00.#6F7F3F.#394C00.#424C26.#1C2600.#212613.#7FFF00.#BFFF7F.#52A500.#7CA552.#3F7F00.#5F7F3F.#264C00.#394C26.#132600.#1C2613.#3FFF00.#9FFF7F.#29A500.#67A552.#1F7F00.#4F7F3F.#134C00.#2F4C26.#092600.#172613.#00FF00.#7FFF7F.#00A500.#52A552.#007F00.#3F7F3F.#004C00.#264C26.#002600.#132613.#00FF3F.#7FFF9F.#00A529.#52A567.#007F1F.#3F7F4F.#004C13.#264C2F.#002609.#132617.#00FF7F.#7FFFBF.#00A552.#52A57C.#007F3F.#3F7F5F.#004C26.#264C39.#002613.#13261C.#00FFBF.#7FFFDF.#00A57C.#52A591.#007F5F.#3F7F6F.#004C39.#264C42.#00261C.#132621.#00FFFF.#7FFFFF.#00A5A5.#52A5A5.#007F7F.#3F7F7F.#004C4C.#264C4C.#002626.#132626.#00BFFF.#7FDFFF.#007CA5.#5291A5.#005F7F.#3F6F7F.#00394C.#26424C.#001C26.#132126.#007FFF.#7FBFFF.#0052A5.#527CA5.#003F7F.#3F5F7F.#00264C.#26394C.#001326.#131C26.#003FFF.#7F9FFF.#0029A5.#5267A5.#001F7F.#3F4F7F.#00134C.#262F4C.#000926.#131726.#0000FF.#7F7FFF.#0000A5.#5252A5.#00007F.#3F3F7F.#00004C.#26264C.#000026.#131326.#3F00FF.#9F7FFF.#2900A5.#6752A5.#1F007F.#4F3F7F.#13004C.#2F264C.#090026.#171326.#7F00FF.#BF7FFF.#5200A5.#7C52A5.#3F007F.#5F3F7F.#26004C.#39264C.#130026.#1C1326.#BF00FF.#DF7FFF.#7C00A5.#9152A5.#5F007F.#6F3F7F.#39004C.#42264C.#1C0026.#211326.#FF00FF.#FF7FFF.#A500A5.#A552A5.#7F007F.#7F3F7F.#4C004C.#4C264C.#260026.#261326.#FF00BF.#FF7FDF.#A5007C.#A55291.#7F005F.#7F3F6F.#4C0039.#4C2642.#26001C.#261321.#FF007F.#FF7FBF.#A50052.#A5527C.#7F003F.#7F3F5F.#4C0026.#4C2639.#260013.#26131C.#FF003F.#FF7F9F.#A50029.#A55267.#7F001F.#7F3F4F.#4C0013.#4C262F.#260009.#261317.#333333.#505050.#696969.#828282.#BEBEBE.#FFFFFF'['split']('.');function ke(a7){if(!(a7===0x0||a7===0x100)&&!(a7<0x0||a7>0xff))return Oe[a7];}function Ae(a7,a8){const bW=b3;var a9;return a7===0x7||(a9=Oe[Math['abs'](a7)])==null?a8?'#FFFFFF':bW(0x231):a9;}function je(a7){const bX=b3;let a8=a7>>0x10&0xff,a9=a7>>0x8&0xff,aa=a7&0xff;return'#'+a8['toString'](0x10)[bX(0x264)](0x2,'0')+a9['toString'](0x10)[bX(0x264)](0x2,'0')+aa['toString'](0x10)['padStart'](0x2,'0');}var I={'dark':{'backgroundColor':'#1a1a2e','defaultEntityColor':'#ffffff','selectionColor':'#00ff88','measureColor':'#ffaa00','gridColor':'#333333','crosshairColor':'#555555'},'light':{'backgroundColor':'#ffffff','defaultEntityColor':'#000000','selectionColor':'#0066ff','measureColor':'#ff6600','gridColor':'#dddddd','crosshairColor':'#cccccc'}};function L(a7,a8,a9){const bY=b3;return[a8*a7[bY(0x295)]+a7['offsetX'],-a9*a7['scale']+a7['offsetY']];}function R(a7,a8,a9){const bZ=b3;return[(a8-a7['offsetX'])/a7['scale'],-(a9-a7['offsetY'])/a7[bZ(0x295)]];}function z(a7,a8){const c0=b3;let a9=window['devicePixelRatio']||0x1;a7['setTransform'](a8['scale']*a9,0x0,0x0,-a8['scale']*a9,a8[c0(0x2c9)]*a9,a8['offsetY']*a9);}function B(a7,a8,a9,aa,ab,ac,ad=0.05){let af=ab-a9,ag=ac-aa;if(af<=0x0||ag<=0x0)return{'scale':0x1,'offsetX':a7/0x2,'offsetY':a8/0x2};let ah=a7/af,ai=a8/ag,aj=Math['min'](ah,ai)*(0x1-ad*0x2),ak=(a9+ab)/0x2,al=(aa+ac)/0x2;return{'scale':aj,'offsetX':a7/0x2-ak*aj,'offsetY':a8/0x2+al*aj};}function Me(a7,a8,a9,aa,ab=0.0001,ac=0x186a0){const c1=b3;let ad=Math['max'](ab,Math['min'](ac,a7[c1(0x295)]*aa)),af=ad/a7['scale'];return{'scale':ad,'offsetX':a8-(a8-a7['offsetX'])*af,'offsetY':a9-(a9-a7['offsetY'])*af};}function a1(a,b){a=a-0x1ab;const c=a0();let d=c[a];return d;}var Ne=class{constructor(a7){const c2=b3;a5(this,c2(0x20d),{'scale':0x1,'offsetX':0x0,'offsetY':0x0}),a5(this,c2(0x255),void 0x0),a5(this,'maxScale',void 0x0),this['minScale']=a7['minZoom'],this['maxScale']=a7['maxZoom'];}[b3(0x28c)](){return this['transform'];}['setTransform'](a7){this['transform']=a7;}[b3(0x2ba)](a7,a8){const c3=b3;this['transform']=a6(a6({},this['transform']),{},{'offsetX':this['transform']['offsetX']+a7,'offsetY':this[c3(0x20d)]['offsetY']+a8});}[b3(0x205)](a7,a8,a9){this['transform']=Me(this['transform'],a7,a8,a9,this['minScale'],this['maxScale']);}};function Pe(a7,a8){var a9;return a7===0x7?a8==='dark'?'#ffffff':'#000000':(a9=ke(a7))==null?'#ffffff':a9;}function V(a7,a8,a9,aa){const c4=b3;if(a7['trueColor']!==void 0x0)return c4(0x21b)+(a7['trueColor']>>0x10&0xff)+','+(a7['trueColor']>>0x8&0xff)+','+(a7['trueColor']&0xff)+')';if(a7['color']===0x0)return aa==null?I[a9]['defaultEntityColor']:aa;if(a7[c4(0x1e1)]!==0x100)return Pe(a7['color'],a9);let ab=a8['get'](a7[c4(0x267)]);return ab?ab['trueColor']===void 0x0?Pe(Math['abs'](ab['color']),a9):'rgb('+(ab['trueColor']>>0x10&0xff)+','+(ab['trueColor']>>0x8&0xff)+','+(ab['trueColor']&0xff)+')':I[a9]['defaultEntityColor'];}function Fe(a7,a8){const c5=b3;a7['beginPath'](),a7['moveTo'](a8['start']['x'],a8['start']['y']),a7['lineTo'](a8['end']['x'],a8[c5(0x28e)]['y']),a7['stroke']();}function Ie(a7,a8){a8['radius']<=0x0||(a7['beginPath'](),a7['arc'](a8['center']['x'],a8['center']['y'],a8['radius'],0x0,Math['PI']*0x2),a7['stroke']());}function Le(a7,a8){const c6=b3;if(a8['radius']<=0x0)return;let a9=a8['startAngle']*Math['PI']/0xb4,aa=a8['endAngle']*Math['PI']/0xb4;a7['beginPath'](),a7[c6(0x1ea)](a8['center']['x'],a8['center']['y'],a8['radius'],a9,aa,!0x1),a7['stroke']();}function Re(a7,a8,a9,aa,ab){const c7=b3;let ac=a9-a7,ad=aa-a8,af=Math['sqrt'](ac*ac+ad*ad);if(af<1e-10)return{'cx':a7,'cy':a8,'radius':0x0,'startAngle':0x0,'endAngle':0x0,'anticlockwise':!0x1};let ag=Math['abs'](ab)*af/0x2,ah=(Math['pow'](af/0x2,0x2)+Math['pow'](ag,0x2))/(0x2*ag),ai=(a7+a9)/0x2,aj=(a8+aa)/0x2,ak=-ad/af,al=ac/af,am=ah-ag,an=ab>0x0?0x1:-0x1,ao=ai+an*am*ak,ap=aj+an*am*al;return{'cx':ao,'cy':ap,'radius':ah,'startAngle':Math['atan2'](a8-ap,a7-ao),'endAngle':Math[c7(0x1f0)](aa-ap,a9-ao),'anticlockwise':ab<0x0};}function H(a7,a8,a9,aa,ab,ac){const c8=b3;let ad=Re(a8,a9,aa,ab,ac);if(ad[c8(0x2c8)]<1e-10){a7['lineTo'](aa,ab);return;}a7['arc'](ad['cx'],ad['cy'],ad['radius'],ad[c8(0x1bd)],ad['endAngle'],ad[c8(0x1d0)]);}function ze(a7,a8){const c9=b3;let a9=a8['vertices'];if(a9['length']<0x2)return;a7['beginPath'](),a7[c9(0x268)](a9[0x0]['x'],a9[0x0]['y']);let aa=a8['closed']?a9[c9(0x1f7)]:a9['length']-0x1;for(let ab=0x0;ab<aa;ab++){let ac=a9[ab],ad=a9[(ab+0x1)%a9['length']];Math['abs'](ac['bulge'])<1e-10?a7['lineTo'](ad['x'],ad['y']):H(a7,ac['x'],ac['y'],ad['x'],ad['y'],ac['bulge']);}a7['stroke']();}function Be(a7,a8){const ca=b3;let a9=a8['vertices'];if(a9['length']<0x2)return;a7['beginPath'](),a7['moveTo'](a9[0x0]['x'],a9[0x0]['y']);let aa=a8['closed']?a9[ca(0x1f7)]:a9['length']-0x1;for(let ac=0x0;ac<aa;ac++){var ab;let ad=a9[ac],af=a9[(ac+0x1)%a9['length']],ag=(ab=ad['bulge'])==null?0x0:ab;Math['abs'](ag)<1e-10?a7[ca(0x1f8)](af['x'],af['y']):H(a7,ad['x'],ad['y'],af['x'],af['y'],ag);}a7['stroke']();}function Ve(a7,a8){const cb=b3;let a9=Math['sqrt'](Math[cb(0x1e8)](a8[cb(0x22e)]['x'],0x2)+Math['pow'](a8['majorAxis']['y'],0x2)+Math['pow'](a8[cb(0x22e)]['z'],0x2));if(a9<1e-10||a8[cb(0x1f9)]<=0x0)return;let aa=a9*a8['minorRatio'],ab=Math['atan2'](a8[cb(0x22e)]['y'],a8['majorAxis']['x']);a7[cb(0x1cb)](),a7[cb(0x214)](a8['center']['x'],a8['center']['y'],a9,aa,ab,a8['startParam'],a8['endParam'],!0x1),a7['stroke']();}function He(a7,a8,a9,aa,ab){var ac;let ad=a8['length']-0x1,af=a7;for(;af<ad&&a9[af+0x1]<=aa;)af++;let ag=[],ah=[];for(let ai=0x0;ai<=a7;ai++){let aj=af-a7+ai;ag['push'](a6({},a8[aj])),ah['push'](ab?ab[aj]:0x1);}for(let ak=0x1;ak<=a7;ak++)for(let al=a7;al>=ak;al--){let am=af-a7+al,an=a9[am+a7-ak+0x1]-a9[am];if(Math['abs'](an)<1e-10)continue;let ao=(aa-a9[am])/an,ap=ag[al],aq=ag[al-0x1];if(ab){let ar=ah[al-0x1]*(0x1-ao),as=ah[al]*ao,au=ar+as;if(Math['abs'](au)<1e-10)continue;ap['x']=(aq['x']*ar+ap['x']*as)/au,ap['y']=(aq['y']*ar+ap['y']*as)/au,ap['z']=(aq['z']*ar+ap['z']*as)/au,ah[al]=au;}else ap['x']=(0x1-ao)*aq['x']+ao*ap['x'],ap['y']=(0x1-ao)*aq['y']+ao*ap['y'],ap['z']=(0x1-ao)*aq['z']+ao*ap['z'];}return(ac=ag[a7])==null?{'x':0x0,'y':0x0,'z':0x0}:ac;}function Ue(a7){const cc=b3;if(a7['length']<0x2)return a7['map'](aa=>({'x':aa['x'],'y':aa['y']}));let a8=[],a9=a7['length'];for(let aa=0x0;aa<a9-0x1;aa++){let ab=a7[Math[cc(0x228)](0x0,aa-0x1)],ac=a7[aa],ad=a7[Math['min'](a9-0x1,aa+0x1)],af=a7[Math['min'](a9-0x1,aa+0x2)];for(let ag=0x0;ag<=(aa===a9-0x2?0xa:0x9);ag++){let ah=ag/0xa,ai=ah*ah,aj=ai*ah,ak=0.5*(0x2*ac['x']+(-ab['x']+ad['x'])*ah+(0x2*ab['x']-0x5*ac['x']+0x4*ad['x']-af['x'])*ai+(-ab['x']+0x3*ac['x']-0x3*ad['x']+af['x'])*aj),al=0.5*(0x2*ac['y']+(-ab['y']+ad['y'])*ah+(0x2*ab['y']-0x5*ac['y']+0x4*ad['y']-af['y'])*ai+(-ab['y']+0x3*ac['y']-0x3*ad['y']+af['y'])*aj);a8['push']({'x':ak,'y':al});}}return a8;}function We(a7,a8){const cd=b3;if(a7['degree']===0x1)return a7['controlPoints']['map'](ag=>({'x':ag['x'],'y':ag['y']}));if(a7['controlPoints']['length']===0x0&&a7['fitPoints']['length']>=0x2)return Ue(a7['fitPoints']);if(a7['controlPoints']['length']<a7['degree']+0x1||a7['knots']['length']<a7['controlPoints']['length']+a7[cd(0x2c2)]+0x1)return[];let a9=[],aa=a7[cd(0x284)][a7['degree']],ab=a7[cd(0x284)][a7['knots'][cd(0x1f7)]-a7[cd(0x2c2)]-0x1];if(ab<=aa)return[];let ac=Math['max'](a7['controlPoints']['length']*0xa,Math['ceil']((ab-aa)/a8)),ad=Math['min'](ac,0x1388),af=a7['weights']['length']>0x0?a7[cd(0x1af)]:void 0x0;for(let ag=0x0;ag<=ad;ag++){let ah=aa+(ab-aa)*(ag/ad),ai=He(a7['degree'],a7['controlPoints'],a7['knots'],ah,af);a9['push']({'x':ai['x'],'y':ai['y']});}return a9;}function Ge(a7,a8,a9){const cf=b3;let aa=We(a8,a9);if(!(aa['length']<0x2)){a7['beginPath'](),a7['moveTo'](aa[0x0]['x'],aa[0x0]['y']);for(let ab=0x1;ab<aa['length'];ab++)a7['lineTo'](aa[ab]['x'],aa[ab]['y']);a8['flags']&0x1&&a7['closePath'](),a7[cf(0x29d)]();}}var Ke={'standard':'Arial,\x20sans-serif','arial':'Arial,\x20sans-serif','arial.ttf':'Arial,\x20sans-serif','romans.shx':'\x22Courier\x20New\x22,\x20monospace','simplex.shx':'\x22Courier\x20New\x22,\x20monospace','txt.shx':'monospace','monotxt.shx':'monospace','isocp.shx':'\x22Courier\x20New\x22,\x20monospace','isocpeur.shx':'\x22Courier\x20New\x22,\x20monospace','times.ttf':'\x22Times\x20New\x20Roman\x22,\x20serif','timesnr.ttf':'\x22Times\x20New\x20Roman\x22,\x20serif','gothic.ttf':'\x22Century\x20Gothic\x22,\x20sans-serif'};function qe(a7){const cg=b3;return Ke[a7['toLowerCase']()['trim']()]||cg(0x21c);}function Je(a7,a8,a9){const ch=b3;if(!a8[ch(0x293)]||a8['height']<a9*0x4)return;let aa=a8['hAlign']!==0x0||a8['vAlign']!==0x0,ab=aa&&a8[ch(0x2d1)]?a8[ch(0x2d1)]['x']:a8['insertionPoint']['x'],ac=aa&&a8['alignmentPoint']?a8['alignmentPoint']['y']:a8['insertionPoint']['y'];if(a7['save'](),a7['translate'](ab,ac),a7['scale'](0x1,-0x1),a8['rotation']&&a7['rotate'](-a8['rotation']*Math['PI']/0xb4),a8['widthFactor']!==0x1&&a7['scale'](a8['widthFactor'],0x1),a8['obliqueAngle']){let ah=Math[ch(0x1e9)](a8['obliqueAngle']*Math['PI']/0xb4);a7[ch(0x20d)](0x1,0x0,ah,0x1,0x0,0x0);}let ad=(a8['generationFlags']&0x2)!=0x0,af=(a8[ch(0x2c4)]&0x4)!=0x0;ad&&a7['scale'](-0x1,0x1),af&&a7[ch(0x295)](0x1,-0x1);let ag=qe(a8['style']||ch(0x2b1));switch(a7[ch(0x279)]=a8['height']+'px\x20'+ag,a8['hAlign']){case 0x0:a7['textAlign']='left';break;case 0x1:a7[ch(0x1d3)]='center';break;case 0x2:a7['textAlign']='right';break;case 0x3:a7['textAlign']=ch(0x1ef);break;case 0x4:a7['textAlign']=ch(0x1bb);break;case 0x5:a7['textAlign']='left';break;default:a7['textAlign']='left';}switch(a8['vAlign']){case 0x0:a7['textBaseline']='alphabetic';break;case 0x1:a7['textBaseline']='bottom';break;case 0x2:a7['textBaseline']=ch(0x24c);break;case 0x3:a7['textBaseline']='top';break;default:a7['textBaseline']='alphabetic';}a7[ch(0x269)](a8['text'],0x0,0x0),a7['restore']();}function Ye(a7){return a7['replace'](/\\P/g,'\x0a')['replace'](/\\[fFHWQTCAaLlOoKk][^;]*;/g,'')['replace'](/\\\\/g,'\x5c')['replace'](/\\~/g,'\u00a0')['replace'](/\{/g,'')['replace'](/\}/g,'')['replace'](/\\S[^;]*;/g,'')['trim']();}function Xe(a7,a8,a9){const ci=b3;var aa;if(!a8[ci(0x293)]||a8[ci(0x1c8)]<a9*0x4)return;a7['save'](),a7['translate'](a8['insertionPoint']['x'],a8['insertionPoint']['y']),a7['scale'](0x1,-0x1);let ab=a8['textDirection']?Math['atan2'](a8['textDirection']['y'],a8[ci(0x21d)]['x']):(a8['rotation']||0x0)*Math['PI']/0xb4;ab&&a7['rotate'](-ab);let ac=Ye(a8['text'])['split']('\x0a'),ad=a8['height']*(a8[ci(0x1b8)]||1.4),af=qe(a8['style']||'Standard');a7['font']=a8['height']+'px\x20'+af;let ag=(a8['attachmentPoint']-0x1)%0x3,ah=Math[ci(0x203)]((a8['attachmentPoint']-0x1)/0x3);a7['textAlign']=(aa=['left','center','right'][ag])==null?'left':aa;let ai=0x0,aj=ac['length']*ad;switch(ah){case 0x0:ai=a8[ci(0x1c8)];break;case 0x1:ai=a8['height']-aj/0x2;break;case 0x2:ai=a8[ci(0x1c8)]-aj;break;}for(let ak=0x0;ak<ac['length'];ak++)a7['fillText'](ac[ak],0x0,ai+ak*ad);a7['restore']();}var Ze=0x64;function Qe(a7,a8,a9,aa=0x0){const cj=b3;if(aa>Ze)return null;if(a9[cj(0x25b)](a7))return a9[cj(0x270)](a7);let ab=a8['blocks']['get'](a7);if(!ab)return a9['set'](a7,null),null;a9[cj(0x217)](a7,null);let ac=Infinity,ad=Infinity,af=-Infinity,ag=-Infinity,ah=!0x1;for(let aj of ab[cj(0x2ad)]){let ak;ak=aj['type']==='INSERT'?U(aj,a8,a9,aa+0x1):G(aj),ak&&(ah=!0x0,ac=Math['min'](ac,ak['minX']),ad=Math['min'](ad,ak['minY']),af=Math[cj(0x228)](af,ak['maxX']),ag=Math['max'](ag,ak['maxY']));}let ai=ah?{'minX':ac,'minY':ad,'maxX':af,'maxY':ag}:null;return a9['set'](a7,ai),ai;}function U(a7,a8,a9,aa=0x0){const ck=b3;let ab=Qe(a7[ck(0x2c3)],a8,a9,aa);if(!ab)return null;let ac=a8[ck(0x27e)]['get'](a7[ck(0x2c3)]);if(!ac)return null;let ad=ac['basePoint']['x'],af=ac[ck(0x2ab)]['y'],ag=ab['minX']-ad,ah=ab['minY']-af,ai=ab['maxX']-ad,aj=ab[ck(0x245)]-af,ak=a7['scaleX'],al=a7['scaleY'],am=ag*ak,an=ai*ak,ao=ah*al,ap=aj*al;if(am>an){let aD=am;am=an,an=aD;}if(ao>ap){let aE=ao;ao=ap,ap=aE;}let aq=(a7['rotation']||0x0)*Math['PI']/0xb4;if(Math['abs'](aq)<1e-10){let aF=a7[ck(0x2bd)]['x'],aG=a7[ck(0x2bd)]['y'],aH=am+aF,aI=ao+aG,aJ=an+aF,aK=ap+aG,aL=Math['max'](0x1,a7['columnCount']),aM=Math['max'](0x1,a7['rowCount']);if(aL>0x1||aM>0x1){let aN=(aL-0x1)*a7['columnSpacing'],aO=(aM-0x1)*a7['rowSpacing'];aH=Math['min'](aH,aH+aN),aJ=Math[ck(0x228)](aJ,aJ+aN),aI=Math[ck(0x210)](aI,aI+aO),aK=Math[ck(0x228)](aK,aK+aO);}return{'minX':aH,'minY':aI,'maxX':aJ,'maxY':aK};}let ar=Math[ck(0x216)](aq),as=Math[ck(0x208)](aq),au=[{'x':am,'y':ao},{'x':an,'y':ao},{'x':an,'y':ap},{'x':am,'y':ap}],av=a7[ck(0x2bd)]['x'],aw=a7['insertionPoint']['y'],ax=Infinity,ay=Infinity,az=-Infinity,aA=-Infinity;for(let aP of au){let aQ=aP['x']*ar-aP['y']*as+av,aR=aP['x']*as+aP['y']*ar+aw;ax=Math['min'](ax,aQ),ay=Math['min'](ay,aR),az=Math['max'](az,aQ),aA=Math['max'](aA,aR);}let aB=Math['max'](0x1,a7[ck(0x27d)]),aC=Math['max'](0x1,a7['rowCount']);if(aB>0x1||aC>0x1){let aS=(aB-0x1)*a7['columnSpacing'],aT=(aC-0x1)*a7['rowSpacing'],aU=[{'x':0x0,'y':0x0},{'x':aS,'y':0x0},{'x':aS,'y':aT},{'x':0x0,'y':aT}];for(let aV of aU){let aW=aV['x']*ar-aV['y']*as,aX=aV['x']*as+aV['y']*ar;ax=Math['min'](ax,ax+aW),ay=Math['min'](ay,ay+aX),az=Math['max'](az,az+aW),aA=Math['max'](aA,aA+aX);}}return{'minX':ax,'minY':ay,'maxX':az,'maxY':aA};}function $e(a7,a8){const cl=b3;let a9=Infinity,aa=Infinity,ab=-Infinity,ac=-Infinity,ad=!0x1,af=a8?new Map():void 0x0;for(let ag of a7){let ah=a8&&af?et(ag,a8,af):G(ag);ah&&(ad=!0x0,a9=Math['min'](a9,ah['minX']),aa=Math['min'](aa,ah['minY']),ab=Math['max'](ab,ah['maxX']),ac=Math['max'](ac,ah[cl(0x245)]));}return ad?{'minX':a9,'minY':aa,'maxX':ab,'maxY':ac}:null;}function et(a7,a8,a9){return a7['type']==='INSERT'?U(a7,a8,a9):G(a7);}var W=null;function tt(a7){const cm=b3;let a8=new Map();for(let [a9,aa]of a7['blocks']){let ab=Array(aa['entities'][cm(0x1f7)]);for(let ac=0x0;ac<aa['entities']['length'];ac++)ab[ac]=G(aa['entities'][ac]);a8['set'](a9,ab);}return a8;}function nt(a7){W=a7;}function a0(){const dM=['getBoundingClientRect','bigFontName','ceil','loadedFileSize','maxX','now','visibility','debugEnabled','selectedEntityIndex','runConverters','value','destroyWorker','defPoint4','basePoint','measureTool','entities','measure','midpoint','currentSnap','Standard','start','loadDocument','199210orRUPE','viewer','leaderLength','_all','some','toJSON','pan','bottom-left','layers','insertionPoint','clientX','CIRCLE','endParam','deactivate','degree','blockName','generationFlags','getLayers','emitter','windows-1257','radius','offsetX','remove','startTangent','isSeparator','workerManager','revokeObjectURL','nextId','rotation','alignmentPoint','onTouchStart','point','ENDSEC','onTouchMove','state','camera','handleZoom','clientY','weights','rgba(0,\x200,\x200,\x200.85)','_maxEntries','drawCalls','getTool','code','boundaryPaths','resizeObserver','crosshair','lineSpacingFactor','sign','653958jkjgyG','center','entityBBoxes','startAngle','polyline','byType','bulge','devicePixelRatio','dimType','bottom-right','DxfParseError','extrusion','measureColor','hypot','height','onDocumentLoaded','visibleCache','beginPath','213112uCdGPf','identifier','type','header','anticlockwise','addEventListener','minY','textAlign','POINT','lineTypeScale','toBBox','translate','\x20\x20Frame:\x20','rotate','top-right','debug','onWheel','isOff','defPoint3','destroyed','handleWheel','color','pending','lineWidth','623412XpClWO','ARC','getWorker','computeDocumentBounds','pow','tan','arc','showFps','\x20\x20Pixel:\x20','edges','isPanning','left','atan2','208413vdPaJg','getEntityBBox','removeEventListener','pop','style','preventDefault','length','lineTo','minorRatio','Size:\x20','ENDTAB','canvas','defPoint5','loadedFileName','byteLength','rowSpacing','lastY','pointerup','floor','_splitRoot','zoom','boolean','fitPoints','sin','STANDARD','vertices','INSERT','abs','transform','spatialIndex','fontName','min','controlPoints','defPoint','7IHtKbE','ellipse','attachmentPoint','cos','set','mouseScreenX','Index:\x20','renderStats','rgb(','sans-serif','textDirection','position','stopDebugLoop','Drawn:\x20','emit','theme','options','renderer','File:\x20','Failed\x20to\x20get\x202D\x20rendering\x20context.\x20The\x20canvas\x20may\x20already\x20have\x20a\x20different\x20context\x20type,\x20or\x20canvas\x20rendering\x20is\x20not\x20available\x20in\x20this\x20environment.','patternScale','max','size','setTool','11Fsflwy','guardDestroyed','6192190lSwFpE','majorAxis','defPoint2','children','#000000','139096wLCpzp','getWidth','Failed\x20to\x20decode\x20DXF\x20input.','ltScale','bgFill','isClosed','fillRect','onTouchEnd','lastX','width','layerManager','doc','visibleLayerCount','minX','startPan','endAngle','debugRafId','lastDebugStats','phase','maxY','5AUsDEI','loadGeneration','compareMinY','entries','SEQEND','2RNBUqG','middle','push','listeners','nextIndex','scaleZ','lastFrameTime','textMidpoint','flags','createObjectURL','minScale','fillStyle','blockCount','strokeStyle','handlePan','add','has','TEXT','panTo','changedTouches','endpoint','ctx','wheel','top','bind','padStart','CadViewer:\x20invalid\x20DxfDocument\x20—\x20expected\x20entities\x20array\x20and\x20layers\x20Map.','entityIndex','layer','moveTo','fillText','resolve','fromCodePoint','search','currentTool','toFixed','extMin','get','setVisible','reject','Worker\x20error','tree','loadString','FPS:\x20','HATCH','data','font','touches','Load:\x20','_allDistMargin','columnCount','blocks','getEntities','line','parseTime','Binary\x20DXF\x20format\x20is\x20not\x20supported.\x20Please\x20export\x20as\x20ASCII\x20DXF.','clear','knots','extMax','SPLINE','handleMove','ENDBLK','sqrt','endTangent','splice','getTransform','round','end','destroy','leaf','spatialIndexBuildTime','measureText','text','POLYLINE','scale','requestRender','worker','startWidth','formatConverters','LINE','textRotation','delete','stroke'];a0=function(){return dM;};return a0();}function rt(){W=null;}function it(a7,a8){const cn=b3;if(!W)return;let a9=W['get'](a7);if(!(!a9||a8>=a9[cn(0x1f7)]))return a9[a8];}function G(a7){const co=b3;switch(a7['type']){case'LINE':return{'minX':Math['min'](a7['start']['x'],a7['end']['x']),'minY':Math['min'](a7['start']['y'],a7[co(0x28e)]['y']),'maxX':Math['max'](a7['start']['x'],a7[co(0x28e)]['x']),'maxY':Math[co(0x228)](a7['start']['y'],a7['end']['y'])};case co(0x2bf):return{'minX':a7['center']['x']-a7['radius'],'minY':a7['center']['y']-a7['radius'],'maxX':a7['center']['x']+a7[co(0x2c8)],'maxY':a7['center']['y']+a7[co(0x2c8)]};case'ARC':return{'minX':a7['center']['x']-a7['radius'],'minY':a7['center']['y']-a7[co(0x2c8)],'maxX':a7['center']['x']+a7['radius'],'maxY':a7[co(0x1bb)]['y']+a7[co(0x2c8)]};case'LWPOLYLINE':case co(0x294):{if(a7['vertices']['length']===0x0)return null;let ap=Infinity,aq=Infinity,ar=-Infinity,as=-Infinity;for(let au of a7['vertices'])ap=Math['min'](ap,au['x']),aq=Math['min'](aq,au['y']),ar=Math['max'](ar,au['x']),as=Math[co(0x228)](as,au['y']);return{'minX':ap,'minY':aq,'maxX':ar,'maxY':as};}case'ELLIPSE':{let av=Math['sqrt'](Math[co(0x1e8)](a7['majorAxis']['x'],0x2)+Math['pow'](a7['majorAxis']['y'],0x2));return{'minX':a7['center']['x']-av,'minY':a7['center']['y']-av,'maxX':a7[co(0x1bb)]['x']+av,'maxY':a7['center']['y']+av};}case'TEXT':return{'minX':a7['insertionPoint']['x'],'minY':a7['insertionPoint']['y'],'maxX':a7['insertionPoint']['x']+a7['height']*a7['text']['length']*0.6,'maxY':a7['insertionPoint']['y']+a7['height']};case'MTEXT':return{'minX':a7['insertionPoint']['x'],'minY':a7['insertionPoint']['y']-a7[co(0x1c8)],'maxX':a7['insertionPoint']['x']+(a7[co(0x23b)]||a7[co(0x1c8)]*0xa),'maxY':a7['insertionPoint']['y']+a7['height']};case'SPLINE':{if(a7[co(0x211)]['length']===0x0)return null;let aw=Infinity,ax=Infinity,ay=-Infinity,az=-Infinity;for(let aA of a7['controlPoints'])aw=Math['min'](aw,aA['x']),ax=Math[co(0x210)](ax,aA['y']),ay=Math[co(0x228)](ay,aA['x']),az=Math['max'](az,aA['y']);return{'minX':aw,'minY':ax,'maxX':ay,'maxY':az};}case'POINT':return{'minX':a7['position']['x'],'minY':a7['position']['y'],'maxX':a7['position']['x'],'maxY':a7['position']['y']};case'INSERT':return{'minX':a7['insertionPoint']['x'],'minY':a7['insertionPoint']['y'],'maxX':a7['insertionPoint']['x'],'maxY':a7['insertionPoint']['y']};case'DIMENSION':if(a7['defPoint']){var a8,a9,aa,ab,ac,ad,af,ag,ah,ai,aj,ak,al,am,an,ao;return{'minX':Math[co(0x210)](a7['defPoint']['x'],(a8=(a9=a7[co(0x22f)])==null?void 0x0:a9['x'])==null?a7['defPoint']['x']:a8,(aa=(ab=a7['defPoint3'])==null?void 0x0:ab['x'])==null?a7['defPoint']['x']:aa),'minY':Math['min'](a7['defPoint']['y'],(ac=(ad=a7['defPoint2'])==null?void 0x0:ad['y'])==null?a7['defPoint']['y']:ac,(af=(ag=a7['defPoint3'])==null?void 0x0:ag['y'])==null?a7[co(0x212)]['y']:af),'maxX':Math['max'](a7['defPoint']['x'],(ah=(ai=a7['defPoint2'])==null?void 0x0:ai['x'])==null?a7[co(0x212)]['x']:ah,(aj=(ak=a7['defPoint3'])==null?void 0x0:ak['x'])==null?a7[co(0x212)]['x']:aj),'maxY':Math['max'](a7['defPoint']['y'],(al=(am=a7['defPoint2'])==null?void 0x0:am['y'])==null?a7['defPoint']['y']:al,(an=(ao=a7['defPoint3'])==null?void 0x0:ao['y'])==null?a7['defPoint']['y']:an)};}return null;case'HATCH':{let aB=Infinity,aC=Infinity,aD=-Infinity,aE=-Infinity,aF=!0x1;for(let aG of a7[co(0x1b5)])if(aG['vertices']){for(let aH of aG['vertices'])aF=!0x0,aB=Math['min'](aB,aH['x']),aC=Math['min'](aC,aH['y']),aD=Math[co(0x228)](aD,aH['x']),aE=Math['max'](aE,aH['y']);}return aF?{'minX':aB,'minY':aC,'maxX':aD,'maxY':aE}:null;}default:return null;}}var at=new Set([b3(0x29a),b3(0x1e5),b3(0x2bf),'LWPOLYLINE','POLYLINE','ELLIPSE','SPLINE']);function ot(a7){return at['has'](a7);}function st(a7,a8){const cp=b3;a7['moveTo'](a8['start']['x'],a8['start']['y']),a7['lineTo'](a8[cp(0x28e)]['x'],a8['end']['y']);}function ct(a7,a8){const cq=b3;if(a8['radius']<=0x0)return;let a9=a8['startAngle']*Math['PI']/0xb4,aa=a8['endAngle']*Math['PI']/0xb4;a7['moveTo'](a8['center']['x']+a8[cq(0x2c8)]*Math['cos'](a9),a8['center']['y']+a8['radius']*Math[cq(0x208)](a9)),a7['arc'](a8['center']['x'],a8[cq(0x1bb)]['y'],a8['radius'],a9,aa,!0x1);}function lt(a7,a8){const cr=b3;a8[cr(0x2c8)]<=0x0||(a7['moveTo'](a8[cr(0x1bb)]['x']+a8['radius'],a8['center']['y']),a7['arc'](a8['center']['x'],a8['center']['y'],a8['radius'],0x0,Math['PI']*0x2));}function ut(a7,a8){const cs=b3;let a9=a8['vertices'];if(a9['length']<0x2)return;a7['moveTo'](a9[0x0]['x'],a9[0x0]['y']);let aa=a8['closed']?a9['length']:a9['length']-0x1;for(let ab=0x0;ab<aa;ab++){let ac=a9[ab],ad=a9[(ab+0x1)%a9['length']];Math['abs'](ac['bulge'])<1e-10?a7[cs(0x1f8)](ad['x'],ad['y']):H(a7,ac['x'],ac['y'],ad['x'],ad['y'],ac['bulge']);}}function dt(a7,a8){const cu=b3;let a9=a8['vertices'];if(a9['length']<0x2)return;a7[cu(0x268)](a9[0x0]['x'],a9[0x0]['y']);let aa=a8['closed']?a9['length']:a9['length']-0x1;for(let ac=0x0;ac<aa;ac++){var ab;let ad=a9[ac],af=a9[(ac+0x1)%a9[cu(0x1f7)]],ag=(ab=ad[cu(0x1c0)])==null?0x0:ab;Math['abs'](ag)<1e-10?a7['lineTo'](af['x'],af['y']):H(a7,ad['x'],ad['y'],af['x'],af['y'],ag);}}function ft(a7,a8){const cv=b3;let a9=Math[cv(0x289)](Math['pow'](a8[cv(0x22e)]['x'],0x2)+Math['pow'](a8['majorAxis']['y'],0x2)+Math['pow'](a8['majorAxis']['z'],0x2));if(a9<1e-10||a8[cv(0x1f9)]<=0x0)return;let aa=a9*a8[cv(0x1f9)],ab=Math['atan2'](a8['majorAxis']['y'],a8['majorAxis']['x']),ac=Math['cos'](ab),ad=Math['sin'](ab),af=Math['cos'](a8['startParam']),ag=Math[cv(0x208)](a8['startParam']);a7['moveTo'](a8[cv(0x1bb)]['x']+a9*ac*af-aa*ad*ag,a8[cv(0x1bb)]['y']+a9*ad*af+aa*ac*ag),a7[cv(0x214)](a8['center']['x'],a8['center']['y'],a9,aa,ab,a8['startParam'],a8['endParam'],!0x1);}function pt(a7,a8,a9){let aa=We(a8,a9);if(!(aa['length']<0x2)){a7['moveTo'](aa[0x0]['x'],aa[0x0]['y']);for(let ab=0x1;ab<aa['length'];ab++)a7['lineTo'](aa[ab]['x'],aa[ab]['y']);a8['flags']&0x1&&a7['closePath']();}}function mt(a7,a8,a9){const cw=b3;switch(a8['type']){case'LINE':st(a7,a8);break;case cw(0x1e5):ct(a7,a8);break;case'CIRCLE':lt(a7,a8);break;case'LWPOLYLINE':ut(a7,a8);break;case'POLYLINE':dt(a7,a8);break;case'ELLIPSE':ft(a7,a8);break;case'SPLINE':pt(a7,a8,a9);break;}}var ht=0x64,gt=0.5;function _t(a7,a8,a9,aa,ab,ac,ad=0x0,af){const cx=b3;if(ad>ht)return;let ag=a9[cx(0x27e)]['get'](a8['blockName']);if(!ag)return;let ah=Math['max'](0x1,a8['columnCount']),ai=Math['max'](0x1,a8['rowCount']);for(let ak=0x0;ak<ai;ak++)for(let al=0x0;al<ah;al++){a7['save']();let am=a8['insertionPoint']['x']+al*a8['columnSpacing'],an=a8[cx(0x2bd)]['y']+ak*a8['rowSpacing'];a7['translate'](am,an),a8[cx(0x2d0)]&&a7[cx(0x1d9)](a8['rotation']*Math['PI']/0xb4),a7['scale'](a8['scaleX'],a8['scaleY']),a7[cx(0x1d7)](-ag['basePoint']['x'],-ag['basePoint']['y']);let ao=ac/(Math['max'](Math[cx(0x20c)](a8['scaleX']),Math['abs'](a8['scaleY']))||0x1),ap=null,aq=ag['entities'];for(let ar=0x0;ar<aq['length'];ar++){let as=aq[ar];if(as['type']!==cx(0x20b)){let av=it(a8['blockName'],ar),aw=av===void 0x0?G(as):av;if(aw){let ax=Math['max'](aw['maxX']-aw['minX'],aw['maxY']-aw['minY']);if(ax>0x0&&ax/ao<gt)continue;}}let au=V(as,a9[cx(0x2bc)],ab);if(as['type']!=='INSERT'&&ot(as[cx(0x1ce)])){if(au!==ap&&(ap!==null&&(a7['stroke'](),af&&af['drawCalls']++),ap=au,a7[cx(0x1cb)](),a7['strokeStyle']=au,a7['lineWidth']=ao),mt(a7,as,ao),af){var aj;af[cx(0x1bf)][as['type']]=((aj=af['byType'][as['type']])==null?0x0:aj)+0x1;}}else ap!==null&&(a7['stroke'](),af&&af['drawCalls']++,ap=null),a7['strokeStyle']=au,a7['fillStyle']=au,a7['lineWidth']=ao,as['type']==='INSERT'?_t(a7,as,a9,aa,ab,ao,ad+0x1,af):K(a7,as,a9,aa,ab,ao,af);}ap!==null&&(a7[cx(0x29d)](),af&&af['drawCalls']++),a7['restore']();}}function vt(a7,a8,a9,aa,ab,ac,ad){const cy=b3;if(a8['blockName']){let af=a9['blocks'][cy(0x270)](a8['blockName']);if(af){for(let ag of af['entities']){let ah=V(ag,a9['layers'],ab);a7['strokeStyle']=ah,a7['fillStyle']=ah,a7['lineWidth']=ac,K(a7,ag,a9,aa,ab,ac,ad);}return;}}a8['defPoint2']&&a8['defPoint3']&&(a7['beginPath'](),a7['moveTo'](a8['defPoint2']['x'],a8['defPoint2']['y']),a7['lineTo'](a8['defPoint']['x'],a8['defPoint']['y']),a7['stroke'](),a7['beginPath'](),a7['moveTo'](a8[cy(0x1de)]['x'],a8['defPoint3']['y']),a7['lineTo'](a8['defPoint']['x'],a8['defPoint']['y']),a7['stroke']());}function yt(a7,a8){const cz=b3;if(a8['boundaryPaths']['length']!==0x0){a7['beginPath']();for(let ab of a8[cz(0x1b5)])if(ab['type']==='polyline'&&ab['vertices']&&ab['vertices']['length']>0x0){let ac=ab[cz(0x20a)][0x0];a7['moveTo'](ac['x'],ac['y']);for(let ad=0x1;ad<ab['vertices'][cz(0x1f7)];ad++){var a9,aa;let af=ab['vertices'][ad-0x1],ag=ab['vertices'][ad],ah=(a9=(aa=ab['bulges'])==null?void 0x0:aa[ad-0x1])==null?0x0:a9;Math[cz(0x20c)](ah)<1e-10?a7['lineTo'](ag['x'],ag['y']):H(a7,af['x'],af['y'],ag['x'],ag['y'],ah);}ab[cz(0x237)]&&a7['closePath']();}else{if(ab['type']===cz(0x1ed)&&ab['edges'])for(let ai=0x0;ai<ab['edges']['length'];ai++){let aj=ab['edges'][ai];if(aj['type']===cz(0x280))ai===0x0&&a7['moveTo'](aj[cz(0x2b2)]['x'],aj['start']['y']),a7[cz(0x1f8)](aj[cz(0x28e)]['x'],aj['end']['y']);else{if(aj['type']==='arc'){if(ai===0x0){let ak=aj['center']['x']+aj['radius']*Math[cz(0x216)](aj['startAngle']*Math['PI']/0xb4),al=aj['center']['y']+aj['radius']*Math['sin'](aj['startAngle']*Math['PI']/0xb4);a7['moveTo'](ak,al);}a7[cz(0x1ea)](aj['center']['x'],aj[cz(0x1bb)]['y'],aj['radius'],aj['startAngle']*Math['PI']/0xb4,aj['endAngle']*Math['PI']/0xb4,!aj['ccw']);}}}}a8['solidFill']&&(a7['globalAlpha']=0.3,a7['fill']('evenodd'),a7['globalAlpha']=0x1),a7['stroke']();}}function bt(a7,a8,a9){const cA=b3;let aa=a9*0x3;a7[cA(0x1cb)](),a7[cA(0x1ea)](a8['position']['x'],a8[cA(0x21e)]['y'],aa,0x0,Math['PI']*0x2),a7['fill']();}function K(a7,a8,a9,aa,ab,ac,ad){const cB=b3;if(ad){var af;ad[cB(0x1b2)]++,ad['byType'][a8['type']]=((af=ad['byType'][a8[cB(0x1ce)]])==null?0x0:af)+0x1;}switch(a8['type']){case'LINE':Fe(a7,a8);break;case'CIRCLE':Ie(a7,a8);break;case'ARC':Le(a7,a8);break;case'LWPOLYLINE':ze(a7,a8);break;case'POLYLINE':Be(a7,a8);break;case'ELLIPSE':Ve(a7,a8);break;case'SPLINE':Ge(a7,a8,ac);break;case cB(0x25c):Je(a7,a8,ac);break;case'MTEXT':Xe(a7,a8,ac);break;case'INSERT':_t(a7,a8,a9,aa,ab,ac,0x0,ad);break;case'DIMENSION':vt(a7,a8,a9,aa,ab,ac,ad);break;case cB(0x277):yt(a7,a8);break;case'POINT':bt(a7,a8,ac);break;}}var xt=0.5,St=class{constructor(a7){const cC=b3;a5(this,'ctx',void 0x0),a5(this,'width',0x0),a5(this,'height',0x0),this['canvas']=a7;let a8=a7['getContext']('2d',{'alpha':!0x1});if(!a8)throw Error(cC(0x226));this['ctx']=a8,this['updateSize']();}['getContext'](){const cD=b3;return this[cD(0x260)];}[b3(0x233)](){return this['width'];}['getHeight'](){return this['height'];}['updateSize'](){const cE=b3;let a7=window[cE(0x1c1)]||0x1,a8=this['canvas']['getBoundingClientRect']();this[cE(0x23b)]=a8['width'],this[cE(0x1c8)]=a8[cE(0x1c8)],this['canvas']['width']=a8['width']*a7,this[cE(0x1fc)]['height']=a8['height']*a7;}['render'](a7,a8,a9,aa,ab,ac,ad){const cF=b3;let af=this['ctx'],ag=window['devicePixelRatio']||0x1,ah={'entitiesDrawn':0x0,'entitiesSkipped':0x0,'drawCalls':0x0,'byType':{}};af['setTransform'](ag,0x0,0x0,ag,0x0,0x0),af['fillStyle']=I[a9]['backgroundColor'],af['fillRect'](0x0,0x0,this['width'],this['height']),z(af,a8);let ai=0x1/a8['scale'];af['lineCap']=cF(0x28d),af['lineJoin']='round';let aj=null;for(let al=0x0;al<a7[cF(0x2ad)]['length'];al++){let am=a7['entities'][al];if(!am['visible']){ah['entitiesSkipped']++;continue;}if(!aa[cF(0x25b)](am['layer'])){ah['entitiesSkipped']++;continue;}if(ac&&!ac['has'](al)){ah['entitiesSkipped']++;continue;}if(ad){let ao=ad[al];if(ao){let ap=(ao['maxX']-ao['minX'])*a8[cF(0x295)],aq=(ao['maxY']-ao['minY'])*a8['scale'];if(Math['max'](ap,aq)<xt){ah['entitiesSkipped']++;continue;}}}let an=V(am,a7['layers'],a9);if(ot(am['type'])){var ak;an!==aj&&(aj!==null&&(af['stroke'](),ah['drawCalls']++),aj=an,af['beginPath'](),af['strokeStyle']=an,af['lineWidth']=ai),mt(af,am,ai),ah['entitiesDrawn']++,ah['byType'][am['type']]=((ak=ah['byType'][am['type']])==null?0x0:ak)+0x1;}else aj!==null&&(af['stroke'](),ah['drawCalls']++,aj=null),af['strokeStyle']=an,af['fillStyle']=an,af['lineWidth']=ai,ah['entitiesDrawn']++,K(af,am,a7,a8,a9,ai,ah);}if(aj!==null&&(af['stroke'](),ah['drawCalls']++),ab>=0x0&&ab<a7['entities']['length']){let ar=a7[cF(0x2ad)][ab];z(af,a8),af['strokeStyle']=I[a9]['selectionColor'],af[cF(0x256)]=I[a9]['selectionColor'],af['lineWidth']=ai*0x3,K(af,ar,a7,a8,a9,ai);}return ah;}['renderEmpty'](a7){const cG=b3;let a8=this['ctx'],a9=window[cG(0x1c1)]||0x1;a8['setTransform'](a9,0x0,0x0,a9,0x0,0x0),a8['fillStyle']=I[a7]['backgroundColor'],a8[cG(0x238)](0x0,0x0,this['width'],this['height']);}[b3(0x28f)](){}},Ct={'showFps':!0x0,'showRenderStats':!0x0,'showDocumentInfo':!0x0,'showTimings':!0x0,'showCamera':!0x0,'position':'top-left'};function q(a7){return a6(a6({},Ct),a7);}function wt(a7){return a7===0x0?'0\x20B':a7<0x400?a7+'\x20B':a7<0x400*0x400?(a7/0x400)['toFixed'](0x1)+'\x20KB':(a7/(0x400*0x400))['toFixed'](0x1)+'\x20MB';}function Tt(a7){const cH=b3;return a7>=0x1?a7[cH(0x26e)](0x2)+'x':'1:'+(0x1/a7)['toFixed'](0x1);}var Et='11px\x20monospace',Dt=0xf,Ot=0x8,J=0x8,Y=0xa;function kt(a7,a8,a9,aa,ab,ac){const cI=b3;a7['setTransform'](0x1,0x0,0x0,0x1,0x0,0x0);let ad=[];if(aa[cI(0x1eb)]&&ad['push']([cI(0x276)+a8['fps']+cI(0x1d8)+a8['frameTime']['toFixed'](0x1)+'ms']),aa['showRenderStats']){let an=a8['renderStats']['entitiesDrawn']+a8['renderStats']['entitiesSkipped'],ao=[cI(0x220)+a8[cI(0x21a)]['entitiesDrawn']+'\x20/\x20'+an+'\x20\x20Calls:\x20'+a8['renderStats'][cI(0x1b2)]],ap=Object[cI(0x249)](a8[cI(0x21a)]['byType'])['sort'](([,aq],[,ar])=>ar-aq)['slice'](0x0,0x6)['map'](([aq,ar])=>aq+':\x20'+ar)['join']('\x20\x20');ap&&ao[cI(0x24d)](ap),ad['push'](ao);}if(aa['showDocumentInfo']){let aq=['Layers:\x20'+a8[cI(0x23e)]+'\x20/\x20'+a8['layerCount']+'\x20\x20Blocks:\x20'+a8[cI(0x257)]];a8['dxfVersion']&&aq['push']('DXF:\x20'+a8['dxfVersion']),a8['fileName']&&aq['push'](cI(0x225)+a8['fileName']),a8['fileSize']>0x0&&aq['push'](cI(0x1fa)+wt(a8['fileSize'])),ad['push'](aq);}if(aa['showTimings']){let ar=[];a8['parseTime']>0x0&&ar['push']('Parse:\x20'+a8['parseTime']['toFixed'](0x0)+'ms'),a8['spatialIndexBuildTime']>0x0&&ar[cI(0x24d)](cI(0x219)+a8['spatialIndexBuildTime']['toFixed'](0x0)+'ms'),a8['totalLoadTime']>0x0&&ar['push'](cI(0x27b)+a8['totalLoadTime'][cI(0x26e)](0x0)+'ms'),ar['length']>0x0&&ad['push']([ar['join']('\x20\x20')]);}if(aa['showCamera']){let as=a8['viewportBounds'];ad['push'](['Zoom:\x20'+Tt(a8[cI(0x205)])+cI(0x1ec)+a8['pixelSize']['toFixed'](0x2),'View:\x20['+as['minX']['toFixed'](0x0)+',\x20'+as['minY']['toFixed'](0x0)+']\x20→\x20['+as['maxX']['toFixed'](0x0)+',\x20'+as[cI(0x245)][cI(0x26e)](0x0)+']']);}if(ad['length']===0x0)return;a7['font']=Et;let af=[];for(let au=0x0;au<ad[cI(0x1f7)];au++){au>0x0&&af['push']({'text':'','isSeparator':!0x0});for(let av of ad[au])af['push']({'text':av,'isSeparator':!0x1});}let ag=0x0;for(let aw of af)if(!aw['isSeparator']){let ax=a7['measureText'](aw['text'])[cI(0x23b)];ax>ag&&(ag=ax);}let ah=ag+J*0x2,ai=J*0x2;for(let ay of af)ai+=ay['isSeparator']?Ot:Dt;let aj,ak;switch(aa['position']){case'top-left':aj=Y,ak=Y;break;case cI(0x1da):aj=ab-ah-Y,ak=Y;break;case cI(0x2bb):aj=Y,ak=ac-ai-Y;break;case cI(0x1c3):aj=ab-ah-Y,ak=ac-ai-Y;break;}let al=I[a9];a7['fillStyle']=a9==='dark'?'rgba(0,\x200,\x200,\x200.75)':'rgba(255,\x20255,\x20255,\x200.85)',a7['fillRect'](aj,ak,ah,ai),a7['strokeStyle']=a9==='dark'?'rgba(255,\x20255,\x20255,\x200.15)':'rgba(0,\x200,\x200,\x200.15)',a7[cI(0x1e3)]=0x1,a7['strokeRect'](aj+0.5,ak+0.5,ah-0x1,ai-0x1),a7['fillStyle']=a9==='dark'?al['defaultEntityColor']:cI(0x1b0),a7['textAlign']='left',a7['textBaseline']=cI(0x262);let am=ak+J;for(let az of af)az[cI(0x2cc)]?am+=Ot:(a7['fillText'](az['text'],aj+J,am),am+=Dt);}var At=class{constructor(){a5(this,'layers',new Map()),a5(this,'visibility',new Map()),a5(this,'colorOverrides',new Map()),a5(this,'visibleCache',null);}['setLayers'](a7){this['layers']=new Map(a7),this['visibility']['clear'](),this['colorOverrides']['clear'](),this['visibleCache']=null;for(let [a8,a9]of this['layers'])this['visibility']['set'](a8,!a9['isOff']&&!a9['isFrozen']);}['getAllLayers'](){return Array['from'](this['layers']['values']());}['setVisible'](a7,a8){const cJ=b3;this[cJ(0x2a4)]['set'](a7,a8),this[cJ(0x1ca)]=null;}['isVisible'](a7){var a8;return(a8=this['visibility']['get'](a7))==null?!0x0:a8;}['setColorOverride'](a7,a8){this['colorOverrides']['set'](a7,a8);}['getColorOverride'](a7){return this['colorOverrides']['get'](a7);}['getVisibleLayerNames'](){const cK=b3;if(this['visibleCache'])return this[cK(0x1ca)];let a7=new Set();for(let [a8,a9]of this['visibility'])a9&&a7['add'](a8);return this['visibleCache']=a7,a7;}[b3(0x283)](){const cL=b3;this['layers'][cL(0x283)](),this['visibility']['clear'](),this['colorOverrides'][cL(0x283)](),this['visibleCache']=null;}},jt=class{constructor(){a5(this,'listeners',new Map());}['on'](a7,a8){this['listeners']['has'](a7)||this['listeners']['set'](a7,new Set()),this['listeners']['get'](a7)['add'](a8);}['off'](a7,a8){var a9;(a9=this['listeners']['get'](a7))==null||a9['delete'](a8);}[b3(0x221)](a7,a8){const cM=b3;let a9=this[cM(0x24e)]['get'](a7);if(a9){for(let aa of a9)aa(a8);}}['removeAllListeners'](){const cN=b3;this['listeners'][cN(0x283)]();}},Mt=class{constructor(a7,a8){const cO=b3;a5(this,'isPanning',!0x1),a5(this,cO(0x23a),0x0),a5(this,'lastY',0x0),a5(this,cO(0x27a),new Map()),a5(this,'onPointerDown',void 0x0),a5(this,'onPointerMove',void 0x0),a5(this,'onPointerUp',void 0x0),a5(this,'onWheel',void 0x0),a5(this,'onTouchStart',void 0x0),a5(this,cO(0x2d5),void 0x0),a5(this,cO(0x239),void 0x0),a5(this,'onContextMenu',void 0x0),this['canvas']=a7,this[cO(0x2b5)]=a8,this['onPointerDown']=this['handlePointerDown']['bind'](this),this['onPointerMove']=this['handlePointerMove']['bind'](this),this['onPointerUp']=this['handlePointerUp']['bind'](this),this[cO(0x1dc)]=this[cO(0x1e0)][cO(0x263)](this),this[cO(0x2d2)]=this['handleTouchStart']['bind'](this),this['onTouchMove']=this['handleTouchMove']['bind'](this),this[cO(0x239)]=this['handleTouchEnd']['bind'](this),this['onContextMenu']=a9=>a9['preventDefault'](),a7['addEventListener']('pointerdown',this['onPointerDown']),a7[cO(0x1d1)]('pointermove',this['onPointerMove']),a7['addEventListener'](cO(0x202),this['onPointerUp']),a7['addEventListener']('wheel',this['onWheel'],{'passive':!0x1}),a7['addEventListener']('touchstart',this['onTouchStart'],{'passive':!0x1}),a7['addEventListener']('touchmove',this['onTouchMove'],{'passive':!0x1}),a7['addEventListener']('touchend',this['onTouchEnd']),a7['addEventListener']('contextmenu',this['onContextMenu']);}[b3(0x28f)](){const cP=b3;this['canvas']['removeEventListener']('pointerdown',this['onPointerDown']),this['canvas']['removeEventListener']('pointermove',this['onPointerMove']),this['canvas'][cP(0x1f3)]('pointerup',this['onPointerUp']),this['canvas']['removeEventListener'](cP(0x261),this['onWheel']),this[cP(0x1fc)]['removeEventListener']('touchstart',this['onTouchStart']),this['canvas'][cP(0x1f3)]('touchmove',this[cP(0x2d5)]),this['canvas']['removeEventListener']('touchend',this[cP(0x239)]),this['canvas']['removeEventListener']('contextmenu',this['onContextMenu']);}['handlePointerDown'](a7){const cQ=b3;let a8=this[cQ(0x2b5)]['getTool'](),a9=this['canvas']['getBoundingClientRect'](),aa=a7['clientX']-a9['left'],ab=a7['clientY']-a9[cQ(0x262)];a7['button']===0x0&&a8==='pan'||a7['button']===0x1?this[cQ(0x240)](a7,aa,ab):a7['button']===0x0&&(a8==='select'||a8==='measure')&&this['viewer']['handleClick'](aa,ab);}['startPan'](a7,a8,a9){const cR=b3;this['isPanning']=!0x0,this['lastX']=a8,this['lastY']=a9,this[cR(0x1fc)]['setPointerCapture'](a7['pointerId']),this['canvas']['style']['cursor']='grabbing';}['handlePointerMove'](a7){const cS=b3;let a8=this['canvas']['getBoundingClientRect'](),a9=a7['clientX']-a8['left'],aa=a7['clientY']-a8['top'];if(this['isPanning']){let ab=a9-this[cS(0x23a)],ac=aa-this['lastY'];this['lastX']=a9,this[cS(0x201)]=aa,this['viewer'][cS(0x259)](ab,ac);}else this['viewer']['handleMouseMove'](a9,aa);}['handlePointerUp'](a7){const cT=b3;this[cT(0x1ee)]&&(this['isPanning']=!0x1,this['canvas']['releasePointerCapture'](a7['pointerId']),this['canvas']['style']['cursor']=this['viewer'][cT(0x1b3)]()==='pan'?'grab':'crosshair');}['handleWheel'](a7){const cU=b3;a7[cU(0x1f6)]();let a8=this['canvas']['getBoundingClientRect'](),a9=a7['clientX']-a8['left'],aa=a7['clientY']-a8['top'],ab=-Math[cU(0x1b9)](a7['deltaY']),ac=this[cU(0x2b5)]['getZoomSpeed'](),ad=ab>0x0?ac:0x1/ac;this['viewer']['handleZoom'](a9,aa,ad);}['handleTouchStart'](a7){a7['preventDefault']();for(let a8 of Array['from'](a7['changedTouches']))this['touches']['set'](a8['identifier'],{'x':a8['clientX'],'y':a8['clientY']});}['handleTouchMove'](a7){const cV=b3;if(a7['preventDefault'](),this['touches'][cV(0x229)]===0x2&&a7['touches']['length']===0x2){let a8=a7['touches'][0x0],a9=a7['touches'][0x1],aa=Array['from'](this['touches']['values']()),ab=Math['hypot'](aa[0x0]['x']-aa[0x1]['x'],aa[0x0]['y']-aa[0x1]['y']),ac=Math['hypot'](a8[cV(0x2be)]-a9['clientX'],a8['clientY']-a9[cV(0x1ae)]);if(ab>0x0){let ad=ac/ab,af=this['canvas']['getBoundingClientRect'](),ag=(aa[0x0]['x']+aa[0x1]['x'])/0x2-af['left'],ah=(aa[0x0]['y']+aa[0x1]['y'])/0x2-af[cV(0x262)],ai=(a8[cV(0x2be)]+a9['clientX'])/0x2-af['left'],aj=(a8['clientY']+a9['clientY'])/0x2-af[cV(0x262)];this['viewer']['handleZoom'](ag,ah,ad),this['viewer']['handlePan'](ai-ag,aj-ah);}}else{if(this['touches']['size']===0x1&&a7['touches']['length']===0x1){let ak=a7[cV(0x27a)][0x0],al=this['touches']['get'](ak['identifier']);al&&this['viewer']['handlePan'](ak['clientX']-al['x'],ak['clientY']-al['y']);}}for(let am of Array['from'](a7['changedTouches']))this['touches']['set'](am[cV(0x1cd)],{'x':am['clientX'],'y':am[cV(0x1ae)]});}['handleTouchEnd'](a7){const cW=b3;for(let a8 of Array['from'](a7[cW(0x25e)]))this['touches']['delete'](a8['identifier']);}},Nt=0x5,Pt=class{constructor(){a5(this,'tree',new l()),a5(this,'items',[]),a5(this,'entityBBoxes',[]);}['build'](a7,a8){const cX=b3;this['items']=[],this['entityBBoxes']=Array(a7[cX(0x1f7)])['fill'](null);let a9=a8?new Map():void 0x0;for(let aa=0x0;aa<a7[cX(0x1f7)];aa++){let ab=a7[aa],ac=a8&&a9?et(ab,a8,a9):G(ab);this[cX(0x1bc)][aa]=ac,ac&&this['items'][cX(0x24d)](a6(a6({},ac),{},{'entityIndex':aa}));}this['tree']['clear'](),this[cX(0x274)]['load'](this['items']);}[b3(0x26c)](a7,a8,a9,aa){return this['tree']['search']({'minX':a7,'minY':a8,'maxX':a9,'maxY':aa});}[b3(0x1f2)](a7){var a8;return(a8=this['entityBBoxes'][a7])==null?null:a8;}['getEntityBBoxes'](){return this['entityBBoxes'];}['clear'](){const cY=b3;this[cY(0x274)]['clear'](),this['items']=[],this['entityBBoxes']=[];}};function Ft(a7,a8,a9,aa,ab,ac){let ad=Nt/ac,af=aa['search'](a7-ad,a8-ad,a7+ad,a8+ad),ag=ad,ah=-0x1;for(let ai=af['length']-0x1;ai>=0x0;ai--){let aj=af[ai],ak=a9[aj['entityIndex']];if(!ak||!ab['has'](ak['layer'])||!ak['visible'])continue;let al=It(a7,a8,ak);al<ag&&(ag=al,ah=aj['entityIndex']);}return ah;}function It(a7,a8,a9){const cZ=b3;switch(a9['type']){case'LINE':return X(a7,a8,a9['start']['x'],a9[cZ(0x2b2)]['y'],a9['end']['x'],a9[cZ(0x28e)]['y']);case'CIRCLE':return Lt(a7,a8,a9['center']['x'],a9[cZ(0x1bb)]['y'],a9['radius']);case'ARC':return Rt(a7,a8,a9[cZ(0x1bb)]['x'],a9['center']['y'],a9['radius'],a9['startAngle']*Math['PI']/0xb4,a9['endAngle']*Math['PI']/0xb4);case'LWPOLYLINE':case cZ(0x294):{let aa=Infinity,ab=a9['vertices'],ac=a9['closed']?ab['length']:ab['length']-0x1;for(let ad=0x0;ad<ac;ad++){let af=ab[ad],ag=ab[(ad+0x1)%ab[cZ(0x1f7)]],ah=X(a7,a8,af['x'],af['y'],ag['x'],ag['y']);aa=Math['min'](aa,ah);}return aa;}case'ELLIPSE':return Bt(a7,a8,a9[cZ(0x1bb)]['x'],a9['center']['y'],a9['majorAxis'],a9['minorRatio']);case'TEXT':case'MTEXT':{let ai=G(a9);return ai?zt(a7,a8,ai['minX'],ai[cZ(0x1d2)],ai[cZ(0x2a2)],ai['maxY']):Infinity;}case cZ(0x1d4):return Math['hypot'](a7-a9['position']['x'],a8-a9['position']['y']);case'SPLINE':{let aj=Infinity,ak=a9['controlPoints'];for(let al=0x0;al<ak['length']-0x1;al++){let am=X(a7,a8,ak[al]['x'],ak[al]['y'],ak[al+0x1]['x'],ak[al+0x1]['y']);aj=Math[cZ(0x210)](aj,am);}return aj;}default:return Infinity;}}function X(a7,a8,a9,aa,ab,ac){let ad=ab-a9,af=ac-aa,ag=ad*ad+af*af;if(ag===0x0)return Math['hypot'](a7-a9,a8-aa);let ah=((a7-a9)*ad+(a8-aa)*af)/ag;ah=Math['max'](0x0,Math['min'](0x1,ah));let ai=a9+ah*ad,aj=aa+ah*af;return Math['hypot'](a7-ai,a8-aj);}function Lt(a7,a8,a9,aa,ab){return Math['abs'](Math['hypot'](a7-a9,a8-aa)-ab);}function Rt(a7,a8,a9,aa,ab,ac,ad){const d0=b3;let af=(Math['atan2'](a8-aa,a7-a9)%(0x2*Math['PI'])+0x2*Math['PI'])%(0x2*Math['PI']),ag=(ac%(0x2*Math['PI'])+0x2*Math['PI'])%(0x2*Math['PI']),ah=(ad%(0x2*Math['PI'])+0x2*Math['PI'])%(0x2*Math['PI']);if(ag<=ah?af>=ag&&af<=ah:af>=ag||af<=ah)return Math['abs'](Math['hypot'](a7-a9,a8-aa)-ab);let ai=Math['hypot'](a7-(a9+ab*Math['cos'](ac)),a8-(aa+ab*Math['sin'](ac))),aj=Math['hypot'](a7-(a9+ab*Math[d0(0x216)](ad)),a8-(aa+ab*Math['sin'](ad)));return Math['min'](ai,aj);}function zt(a7,a8,a9,aa,ab,ac){const d1=b3;if(a7>=a9&&a7<=ab&&a8>=aa&&a8<=ac)return 0x0;let ad=Math[d1(0x228)](a9-a7,0x0,a7-ab),af=Math[d1(0x228)](aa-a8,0x0,a8-ac);return Math['hypot'](ad,af);}function Bt(a7,a8,a9,aa,ab,ac){const d2=b3;let ad=Math['atan2'](ab['y'],ab['x']),af=Math['cos'](-ad),ag=Math['sin'](-ad),ah=(a7-a9)*af-(a8-aa)*ag,ai=(a7-a9)*ag+(a8-aa)*af,aj=Math['sqrt'](Math[d2(0x1e8)](ab['x'],0x2)+Math['pow'](ab['y'],0x2)),ak=aj*ac;if(aj<1e-10)return Math[d2(0x1c7)](a7-a9,a8-aa);let al=aj/ak*ai,am=Math['hypot'](ah,al);if(am<1e-10)return aj;let an=ah/am*aj,ao=ai/am*ak;return Math['hypot'](ah-an,ai-ao);}var Vt=class{constructor(){a5(this,'state',{'phase':'idle'}),a5(this,'currentSnap',null);}['activate'](){this['state']={'phase':'first-point'},this['currentSnap']=null;}[b3(0x2c1)](){this['state']={'phase':'idle'},this['currentSnap']=null;}['handleClick'](a7,a8,a9){const d3=b3;let aa=a9?a9['point']:{'x':a7,'y':a8};switch(this[d3(0x1ab)]['phase']){case'first-point':return this[d3(0x1ab)]={'phase':'second-point','firstPoint':aa,'firstSnap':a9==null?void 0x0:a9},null;case'second-point':{let ab=this[d3(0x1ab)]['firstPoint'],ac=aa,ad=ac['x']-ab['x'],af=ac['y']-ab['y'],ag=Math['sqrt'](ad*ad+af*af),ah=Math['atan2'](af,ad)*0xb4/Math['PI'];return this['state']={'phase':'done','firstPoint':ab,'secondPoint':ac,'distance':ag,'angle':ah},{'distance':ag,'angle':ah,'deltaX':ad,'deltaY':af,'points':[ab,ac]};}case'done':return this[d3(0x1ab)]={'phase':'second-point','firstPoint':aa},null;default:return null;}}[b3(0x287)](a7){this['currentSnap']=a7;}};function Z(a7,a8,a9,aa,ab,ac=new Set(['endpoint','midpoint','center'])){const d4=b3;let ad=0xa/ab,af=[],ag=aa['search'](a7-ad,a8-ad,a7+ad,a8+ad);for(let ah of ag){let ai=a9[ah[d4(0x266)]];if(!ai)continue;let aj=ah['entityIndex'];switch(ai['type']){case'LINE':ac['has'](d4(0x25f))&&(Q(af,ai[d4(0x2b2)]['x'],ai['start']['y'],d4(0x25f),aj,a7,a8,ad),Q(af,ai['end']['x'],ai['end']['y'],'endpoint',aj,a7,a8,ad)),ac['has'](d4(0x2af))&&Q(af,(ai['start']['x']+ai['end']['x'])/0x2,(ai['start']['y']+ai[d4(0x28e)]['y'])/0x2,'midpoint',aj,a7,a8,ad);break;case'CIRCLE':if(ac['has'](d4(0x1bb))&&Q(af,ai['center']['x'],ai['center']['y'],'center',aj,a7,a8,ad),ac['has']('endpoint')){for(let ak of[0x0,Math['PI']/0x2,Math['PI'],0x3*Math['PI']/0x2])Q(af,ai['center']['x']+ai['radius']*Math[d4(0x216)](ak),ai['center']['y']+ai[d4(0x2c8)]*Math['sin'](ak),'endpoint',aj,a7,a8,ad);}break;case'ARC':if(ac['has']('center')&&Q(af,ai['center']['x'],ai['center']['y'],'center',aj,a7,a8,ad),ac['has']('endpoint')){let al=ai[d4(0x1bd)]*Math['PI']/0xb4,am=ai[d4(0x241)]*Math['PI']/0xb4;Q(af,ai['center']['x']+ai[d4(0x2c8)]*Math[d4(0x216)](al),ai['center']['y']+ai['radius']*Math['sin'](al),'endpoint',aj,a7,a8,ad),Q(af,ai['center']['x']+ai['radius']*Math['cos'](am),ai['center']['y']+ai[d4(0x2c8)]*Math['sin'](am),'endpoint',aj,a7,a8,ad);}break;case'LWPOLYLINE':case'POLYLINE':if(ac['has']('endpoint')){for(let an of ai['vertices'])Q(af,an['x'],an['y'],'endpoint',aj,a7,a8,ad);}if(ac['has']('midpoint'))for(let ao=0x0;ao<ai['vertices']['length']-0x1;ao++){let ap=ai[d4(0x20a)][ao],aq=ai['vertices'][ao+0x1];Q(af,(ap['x']+aq['x'])/0x2,(ap['y']+aq['y'])/0x2,d4(0x2af),aj,a7,a8,ad);}break;case'ELLIPSE':ac['has']('center')&&Q(af,ai['center']['x'],ai[d4(0x1bb)]['y'],'center',aj,a7,a8,ad);break;case d4(0x25c):ac['has']('endpoint')&&Q(af,ai['insertionPoint']['x'],ai['insertionPoint']['y'],'endpoint',aj,a7,a8,ad);break;case'MTEXT':ac['has']('endpoint')&&Q(af,ai['insertionPoint']['x'],ai['insertionPoint']['y'],'endpoint',aj,a7,a8,ad);break;}}return af['sort']((ar,as)=>Math['hypot'](ar[d4(0x2d3)]['x']-a7,ar[d4(0x2d3)]['y']-a8)-Math['hypot'](as['point']['x']-a7,as['point']['y']-a8)),af;}function Q(a7,a8,a9,aa,ab,ac,ad,af){Math['hypot'](a8-ac,a9-ad)<=af&&a7['push']({'point':{'x':a8,'y':a9},'type':aa,'entityIndex':ab});}function Ht(a7,a8,a9,aa,ab,ac){const d5=b3;let ad=I[ac];a7['setTransform'](0x1,0x0,0x0,0x1,0x0,0x0);let af=a9['state'];if(a9['currentSnap']){let [ag,ah]=L(a8,a9['currentSnap']['point']['x'],a9['currentSnap']['point']['y']);Ut(a7,ag,ah,a9['currentSnap'][d5(0x1ce)],ad[d5(0x1c6)]);}if(af[d5(0x244)]==='second-point'){let [ai,aj]=L(a8,af['firstPoint']['x'],af['firstPoint']['y']),ak,al;if(a9['currentSnap']){let [ap,aq]=L(a8,a9['currentSnap']['point']['x'],a9['currentSnap'][d5(0x2d3)]['y']);ak=ap,al=aq;}else ak=aa,al=ab;a7['strokeStyle']=ad['measureColor'],a7['lineWidth']=1.5,a7['setLineDash']([0x6,0x3]),a7['beginPath'](),a7['moveTo'](ai,aj),a7['lineTo'](ak,al),a7['stroke'](),a7['setLineDash']([]),$(a7,ai,aj,ad['measureColor']),$(a7,ak,al,ad['measureColor']);let am,an;a9['currentSnap']?(am=a9[d5(0x2b0)]['point']['x'],an=a9['currentSnap'][d5(0x2d3)]['y']):[am,an]=R(a8,aa,ab);let ao=Math[d5(0x1c7)](am-af['firstPoint']['x'],an-af['firstPoint']['y']);Wt(a7,(ai+ak)/0x2,(aj+al)/0x2,ao,ac);}if(af['phase']==='done'){let [ar,as]=L(a8,af['firstPoint']['x'],af['firstPoint']['y']),[au,av]=L(a8,af['secondPoint']['x'],af['secondPoint']['y']);a7['strokeStyle']=ad['measureColor'],a7['lineWidth']=0x2,a7['beginPath'](),a7['moveTo'](ar,as),a7['lineTo'](au,av),a7['stroke'](),$(a7,ar,as,ad['measureColor']),$(a7,au,av,ad['measureColor']),Wt(a7,(ar+au)/0x2,(as+av)/0x2,af['distance'],ac);}}function Ut(a7,a8,a9,aa,ab){const d6=b3;switch(a7[d6(0x258)]=ab,a7[d6(0x1e3)]=0x2,aa){case'endpoint':a7['strokeRect'](a8-0x8/0x2,a9-0x8/0x2,0x8,0x8);break;case'midpoint':a7['beginPath'](),a7['moveTo'](a8,a9-0x8/0x2),a7['lineTo'](a8+0x8/0x2,a9+0x8/0x2),a7[d6(0x1f8)](a8-0x8/0x2,a9+0x8/0x2),a7['closePath'](),a7[d6(0x29d)]();break;case'center':a7['beginPath'](),a7['arc'](a8,a9,0x8/0x2,0x0,Math['PI']*0x2),a7['stroke']();break;case'nearest':a7['beginPath'](),a7['moveTo'](a8-0x8/0x2,a9-0x8/0x2),a7[d6(0x1f8)](a8+0x8/0x2,a9+0x8/0x2),a7['moveTo'](a8+0x8/0x2,a9-0x8/0x2),a7['lineTo'](a8-0x8/0x2,a9+0x8/0x2),a7['stroke']();break;}}function $(a7,a8,a9,aa){a7['fillStyle']=aa,a7['beginPath'](),a7['arc'](a8,a9,0x4,0x0,Math['PI']*0x2),a7['fill']();}function Wt(a7,a8,a9,aa,ab){const d7=b3;let ac=aa['toFixed'](0x4);a7['font']='13px\x20monospace',a7[d7(0x1d3)]='center',a7['textBaseline']='bottom';let ad=a7[d7(0x292)](ac),af=a8-ad[d7(0x23b)]/0x2-0x4,ag=a9-0x14,ah=ad['width']+0x8;a7['fillStyle']=ab==='dark'?'rgba(0,0,0,0.8)':'rgba(255,255,255,0.9)',a7['fillRect'](af,ag,ah,0x12),a7['fillStyle']=I[ab]['measureColor'],a7['fillText'](ac,a8,a9-0x6);}var Gt=class{constructor(){const d8=b3;a5(this,'worker',null),a5(this,'blobUrl',null),a5(this,d8(0x2cf),0x1),a5(this,'pending',new Map());}[b3(0x1e6)](){const d9=b3;return this['worker']?this[d9(0x297)]:(this['blobUrl']=URL[d9(0x254)](new Blob(['\x22use\x20strict\x22;(()=>{function\x20h(a){let\x20e=a.replace(/\x5cr\x5cn?/g,`\x0a`),t=[],r=e.length,n=0;for(;n<r;){for(;n<r&&e.charCodeAt(n)===10;)n++;if(n>=r)break;let\x20o=e.indexOf(`\x0a`,n);o===-1&&(o=r);let\x20c=e.substring(n,o).trim();n=o+1;let\x20s=parseInt(c,10);if(isNaN(s)){n<r&&(o=e.indexOf(`\x0a`,n),o===-1&&(o=r),n=o+1);continue}if(n>=r)break;o=e.indexOf(`\x0a`,n),o===-1&&(o=r);let\x20p=e.substring(n,o).replace(/\x5cs+$/,\x22\x22);n=o+1,t.push({code:s,value:p})}return\x20t}function\x20m(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code===0&&r.value===\x22ENDSEC\x22)return\x20e+1;if(r.code===9){let\x20n=r.value;switch(e++,n){case\x22$ACADVER\x22:e<a.length&&(t.acadVersion=a[e].value,e++);break;case\x22$EXTMIN\x22:if(e<a.length){let\x20o=v(a,e);t.extMin=o.point,e=o.nextIndex}break;case\x22$EXTMAX\x22:if(e<a.length){let\x20o=v(a,e);t.extMax=o.point,e=o.nextIndex}break;case\x22$INSUNITS\x22:e<a.length&&(t.insUnits=parseInt(a[e].value,10),e++);break;case\x22$MEASUREMENT\x22:e<a.length&&(t.measurement=parseInt(a[e].value,10),e++);break;case\x22$LTSCALE\x22:e<a.length&&(t.ltScale=parseFloat(a[e].value),e++);break;case\x22$DWGCODEPAGE\x22:e<a.length&&(t.dwgCodePage=a[e].value,e++);break;case\x22$HANDSEED\x22:e<a.length&&(t.handleSeed=a[e].value,e++);break;default:for(;e<a.length&&a[e].code!==9&&a[e].code!==0;)t[n]=a[e].value,e++}}else\x20e++}return\x20e}function\x20v(a,e){let\x20t={x:0,y:0,z:0};for(;e<a.length;){let\x20r=a[e].code;if(r===10)t.x=parseFloat(a[e].value),e++;else\x20if(r===20)t.y=parseFloat(a[e].value),e++;else\x20if(r===30)t.z=parseFloat(a[e].value),e++;else\x20break}return{point:t,nextIndex:e}}function\x20k(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code===0&&r.value===\x22ENDSEC\x22)return\x20e+1;if(r.code===0&&r.value===\x22TABLE\x22){if(e++,e>=a.length)break;let\x20n=a[e].value;switch(e++,n){case\x22LAYER\x22:e=H(a,e,t.layers);break;case\x22LTYPE\x22:e=O(a,e,t.lineTypes);break;case\x22STYLE\x22:e=_(a,e,t.styles);break;default:e=R(a,e);break}}else\x20e++}return\x20e}function\x20R(a,e){for(;e<a.length;){if(a[e].code===0&&a[e].value===\x22ENDTAB\x22)return\x20e+1;e++}return\x20e}function\x20H(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code===0&&r.value===\x22ENDTAB\x22)return\x20e+1;if(r.code===0&&r.value===\x22LAYER\x22){e++;let\x20n={name:\x220\x22,color:7,lineType:\x22Continuous\x22,flags:0,lineWeight:-3,isOff:!1,isFrozen:!1,isLocked:!1};for(;e<a.length&&a[e].code!==0;){let\x20o=a[e];switch(o.code){case\x202:n.name=o.value;break;case\x206:n.lineType=o.value;break;case\x2062:n.color=parseInt(o.value,10);break;case\x2070:n.flags=parseInt(o.value,10);break;case\x20370:n.lineWeight=parseInt(o.value,10);break;case\x20420:n.trueColor=parseInt(o.value,10);break}e++}t.set(n.name,n)}else\x20e++}return\x20e}function\x20O(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code===0&&r.value===\x22ENDTAB\x22)return\x20e+1;if(r.code===0&&r.value===\x22LTYPE\x22){e++;let\x20n={name:\x22\x22,description:\x22\x22,pattern:[],totalLength:0};for(;e<a.length&&a[e].code!==0;){let\x20o=a[e];switch(o.code){case\x202:n.name=o.value;break;case\x203:n.description=o.value;break;case\x2040:n.totalLength=parseFloat(o.value);break;case\x2049:n.pattern.push(parseFloat(o.value));break}e++}n.name&&t.set(n.name,n)}else\x20e++}return\x20e}function\x20_(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code===0&&r.value===\x22ENDTAB\x22)return\x20e+1;if(r.code===0&&r.value===\x22STYLE\x22){e++;let\x20n={name:\x22\x22,fontName:\x22\x22,bigFontName:\x22\x22,height:0,widthFactor:1,obliqueAngle:0};for(;e<a.length&&a[e].code!==0;){let\x20o=a[e];switch(o.code){case\x202:n.name=o.value;break;case\x203:n.fontName=o.value;break;case\x204:n.bigFontName=o.value;break;case\x2040:n.height=parseFloat(o.value);break;case\x2041:n.widthFactor=parseFloat(o.value);break;case\x2050:n.obliqueAngle=parseFloat(o.value);break}e++}n.name&&t.set(n.name,n)}else\x20e++}return\x20e}function\x20l(a){let\x20e={type:\x22\x22,layer:\x220\x22,color:256,lineType:\x22BYLAYER\x22,lineTypeScale:1,lineWeight:-1,visible:!0,extrusion:{x:0,y:0,z:1}};for(let\x20t\x20of\x20a)switch(t.code){case\x205:e.handle=t.value;break;case\x208:e.layer=t.value;break;case\x206:e.lineType=t.value;break;case\x2048:e.lineTypeScale=parseFloat(t.value);break;case\x2060:e.visible=t.value===\x220\x22||t.value===\x22\x22;break;case\x2062:e.color=parseInt(t.value,10);break;case\x20370:e.lineWeight=parseInt(t.value,10);break;case\x20420:e.trueColor=parseInt(t.value,10);break;case\x20210:e.extrusion.x=parseFloat(t.value);break;case\x20220:e.extrusion.y=parseFloat(t.value);break;case\x20230:e.extrusion.z=parseFloat(t.value);break}return\x20e}function\x20D(a){let\x20t={...l(a),type:\x22LINE\x22,start:{x:0,y:0,z:0},end:{x:0,y:0,z:0}};for(let\x20r\x20of\x20a)switch(r.code){case\x2010:t.start.x=parseFloat(r.value);break;case\x2020:t.start.y=parseFloat(r.value);break;case\x2030:t.start.z=parseFloat(r.value);break;case\x2011:t.end.x=parseFloat(r.value);break;case\x2021:t.end.y=parseFloat(r.value);break;case\x2031:t.end.z=parseFloat(r.value);break}return\x20t}function\x20F(a){let\x20t={...l(a),type:\x22CIRCLE\x22,center:{x:0,y:0,z:0},radius:0};for(let\x20r\x20of\x20a)switch(r.code){case\x2010:t.center.x=parseFloat(r.value);break;case\x2020:t.center.y=parseFloat(r.value);break;case\x2030:t.center.z=parseFloat(r.value);break;case\x2040:t.radius=parseFloat(r.value);break}return\x20t}function\x20E(a){let\x20t={...l(a),type:\x22ARC\x22,center:{x:0,y:0,z:0},radius:0,startAngle:0,endAngle:360};for(let\x20r\x20of\x20a)switch(r.code){case\x2010:t.center.x=parseFloat(r.value);break;case\x2020:t.center.y=parseFloat(r.value);break;case\x2030:t.center.z=parseFloat(r.value);break;case\x2040:t.radius=parseFloat(r.value);break;case\x2050:t.startAngle=parseFloat(r.value);break;case\x2051:t.endAngle=parseFloat(r.value);break}return\x20t}function\x20P(a){let\x20t={...l(a),type:\x22LWPOLYLINE\x22,vertices:[],closed:!1,constantWidth:0,elevation:0},r=null;for(let\x20n\x20of\x20a)switch(n.code){case\x2070:t.closed=(parseInt(n.value,10)&1)!==0;break;case\x2038:t.elevation=parseFloat(n.value);break;case\x2043:t.constantWidth=parseFloat(n.value);break;case\x2010:r&&t.vertices.push(r),r={x:parseFloat(n.value),y:0,bulge:0,startWidth:0,endWidth:0};break;case\x2020:r&&(r.y=parseFloat(n.value));break;case\x2040:r&&(r.startWidth=parseFloat(n.value));break;case\x2041:r&&(r.endWidth=parseFloat(n.value));break;case\x2042:r&&(r.bulge=parseFloat(n.value));break}return\x20r&&t.vertices.push(r),t}function\x20T(a){let\x20t={...l(a),type:\x22POLYLINE\x22,vertices:[],closed:!1,is3d:!1};for(let\x20r\x20of\x20a)if(r.code===70){let\x20n=parseInt(r.value,10);t.closed=(n&1)!==0,t.is3d=(n&8)!==0}return\x20t}function\x20w(a){let\x20t={...l(a),type:\x22ELLIPSE\x22,center:{x:0,y:0,z:0},majorAxis:{x:1,y:0,z:0},minorRatio:1,startParam:0,endParam:Math.PI*2};for(let\x20r\x20of\x20a)switch(r.code){case\x2010:t.center.x=parseFloat(r.value);break;case\x2020:t.center.y=parseFloat(r.value);break;case\x2030:t.center.z=parseFloat(r.value);break;case\x2011:t.majorAxis.x=parseFloat(r.value);break;case\x2021:t.majorAxis.y=parseFloat(r.value);break;case\x2031:t.majorAxis.z=parseFloat(r.value);break;case\x2040:t.minorRatio=parseFloat(r.value);break;case\x2041:t.startParam=parseFloat(r.value);break;case\x2042:t.endParam=parseFloat(r.value);break}return\x20t}function\x20g(a){let\x20t={...l(a),type:\x22SPLINE\x22,degree:3,flags:0,knots:[],controlPoints:[],fitPoints:[],weights:[]},r=null,n=null;for(let\x20o\x20of\x20a)switch(o.code){case\x2070:t.flags=parseInt(o.value,10);break;case\x2071:t.degree=parseInt(o.value,10);break;case\x2040:t.knots.push(parseFloat(o.value));break;case\x2041:t.weights.push(parseFloat(o.value));break;case\x2010:r&&t.controlPoints.push(r),r={x:parseFloat(o.value),y:0,z:0};break;case\x2020:r&&(r.y=parseFloat(o.value));break;case\x2030:r&&(r.z=parseFloat(o.value));break;case\x2011:n&&t.fitPoints.push(n),n={x:parseFloat(o.value),y:0,z:0};break;case\x2021:n&&(n.y=parseFloat(o.value));break;case\x2031:n&&(n.z=parseFloat(o.value));break;case\x2012:t.startTangent||(t.startTangent={x:0,y:0,z:0}),t.startTangent.x=parseFloat(o.value);break;case\x2022:t.startTangent&&(t.startTangent.y=parseFloat(o.value));break;case\x2032:t.startTangent&&(t.startTangent.z=parseFloat(o.value));break;case\x2013:t.endTangent||(t.endTangent={x:0,y:0,z:0}),t.endTangent.x=parseFloat(o.value);break;case\x2023:t.endTangent&&(t.endTangent.y=parseFloat(o.value));break;case\x2033:t.endTangent&&(t.endTangent.z=parseFloat(o.value));break}return\x20r&&t.controlPoints.push(r),n&&t.fitPoints.push(n),t}function\x20I(a){let\x20t={...l(a),type:\x22TEXT\x22,text:\x22\x22,insertionPoint:{x:0,y:0,z:0},height:1,rotation:0,widthFactor:1,obliqueAngle:0,style:\x22STANDARD\x22,hAlign:0,vAlign:0,generationFlags:0};for(let\x20r\x20of\x20a)switch(r.code){case\x201:t.text=r.value;break;case\x2010:t.insertionPoint.x=parseFloat(r.value);break;case\x2020:t.insertionPoint.y=parseFloat(r.value);break;case\x2030:t.insertionPoint.z=parseFloat(r.value);break;case\x2011:t.alignmentPoint||(t.alignmentPoint={x:0,y:0,z:0}),t.alignmentPoint.x=parseFloat(r.value);break;case\x2021:t.alignmentPoint||(t.alignmentPoint={x:0,y:0,z:0}),t.alignmentPoint.y=parseFloat(r.value);break;case\x2031:t.alignmentPoint||(t.alignmentPoint={x:0,y:0,z:0}),t.alignmentPoint.z=parseFloat(r.value);break;case\x2040:t.height=parseFloat(r.value);break;case\x2041:t.widthFactor=parseFloat(r.value);break;case\x2050:t.rotation=parseFloat(r.value);break;case\x2051:t.obliqueAngle=parseFloat(r.value);break;case\x207:t.style=r.value;break;case\x2071:t.generationFlags=parseInt(r.value,10);break;case\x2072:t.hAlign=parseInt(r.value,10);break;case\x2073:t.vAlign=parseInt(r.value,10);break}return\x20t}function\x20A(a){let\x20t={...l(a),type:\x22MTEXT\x22,text:\x22\x22,insertionPoint:{x:0,y:0,z:0},height:1,width:0,attachmentPoint:1,drawingDirection:1,rotation:0,lineSpacingStyle:1,lineSpacingFactor:1,style:\x22STANDARD\x22,bgFill:0,bgFillScale:1.5},r=[];for(let\x20n\x20of\x20a)switch(n.code){case\x201:r.push(n.value);break;case\x203:r.push(n.value);break;case\x207:t.style=n.value;break;case\x2010:t.insertionPoint.x=parseFloat(n.value);break;case\x2020:t.insertionPoint.y=parseFloat(n.value);break;case\x2030:t.insertionPoint.z=parseFloat(n.value);break;case\x2011:t.textDirection||(t.textDirection={x:0,y:0,z:0}),t.textDirection.x=parseFloat(n.value);break;case\x2021:t.textDirection||(t.textDirection={x:0,y:0,z:0}),t.textDirection.y=parseFloat(n.value);break;case\x2031:t.textDirection||(t.textDirection={x:0,y:0,z:0}),t.textDirection.z=parseFloat(n.value);break;case\x2040:t.height=parseFloat(n.value);break;case\x2041:t.width=parseFloat(n.value);break;case\x2044:t.lineSpacingFactor=parseFloat(n.value);break;case\x2050:t.rotation=parseFloat(n.value);break;case\x2071:t.attachmentPoint=parseInt(n.value,10);break;case\x2072:t.drawingDirection=parseInt(n.value,10);break;case\x2073:t.lineSpacingStyle=parseInt(n.value,10);break;case\x2090:t.bgFill=parseInt(n.value,10);break}return\x20t.text=r.join(\x22\x22),t}function\x20z(a){let\x20t={...l(a),type:\x22INSERT\x22,blockName:\x22\x22,insertionPoint:{x:0,y:0,z:0},scaleX:1,scaleY:1,scaleZ:1,rotation:0,columnCount:1,rowCount:1,columnSpacing:0,rowSpacing:0,attribs:[]};for(let\x20r\x20of\x20a)switch(r.code){case\x202:t.blockName=r.value;break;case\x2010:t.insertionPoint.x=parseFloat(r.value);break;case\x2020:t.insertionPoint.y=parseFloat(r.value);break;case\x2030:t.insertionPoint.z=parseFloat(r.value);break;case\x2041:t.scaleX=parseFloat(r.value);break;case\x2042:t.scaleY=parseFloat(r.value);break;case\x2043:t.scaleZ=parseFloat(r.value);break;case\x2044:t.columnSpacing=parseFloat(r.value);break;case\x2045:t.rowSpacing=parseFloat(r.value);break;case\x2050:t.rotation=parseFloat(r.value);break;case\x2070:t.columnCount=parseInt(r.value,10)||1;break;case\x2071:t.rowCount=parseInt(r.value,10)||1;break}return\x20t}function\x20S(a){let\x20t={...l(a),type:\x22DIMENSION\x22,blockName:\x22\x22,dimStyle:\x22STANDARD\x22,dimType:0,defPoint:{x:0,y:0,z:0},textMidpoint:{x:0,y:0,z:0},textOverride:\x22\x22,rotation:0,textRotation:0,leaderLength:0};for(let\x20r\x20of\x20a)switch(r.code){case\x201:t.textOverride=r.value;break;case\x202:t.blockName=r.value;break;case\x203:t.dimStyle=r.value;break;case\x2010:t.defPoint.x=parseFloat(r.value);break;case\x2020:t.defPoint.y=parseFloat(r.value);break;case\x2030:t.defPoint.z=parseFloat(r.value);break;case\x2011:t.textMidpoint.x=parseFloat(r.value);break;case\x2021:t.textMidpoint.y=parseFloat(r.value);break;case\x2031:t.textMidpoint.z=parseFloat(r.value);break;case\x2013:t.defPoint2||(t.defPoint2={x:0,y:0,z:0}),t.defPoint2.x=parseFloat(r.value);break;case\x2023:t.defPoint2||(t.defPoint2={x:0,y:0,z:0}),t.defPoint2.y=parseFloat(r.value);break;case\x2033:t.defPoint2||(t.defPoint2={x:0,y:0,z:0}),t.defPoint2.z=parseFloat(r.value);break;case\x2014:t.defPoint3||(t.defPoint3={x:0,y:0,z:0}),t.defPoint3.x=parseFloat(r.value);break;case\x2024:t.defPoint3||(t.defPoint3={x:0,y:0,z:0}),t.defPoint3.y=parseFloat(r.value);break;case\x2034:t.defPoint3||(t.defPoint3={x:0,y:0,z:0}),t.defPoint3.z=parseFloat(r.value);break;case\x2015:t.defPoint4||(t.defPoint4={x:0,y:0,z:0}),t.defPoint4.x=parseFloat(r.value);break;case\x2025:t.defPoint4||(t.defPoint4={x:0,y:0,z:0}),t.defPoint4.y=parseFloat(r.value);break;case\x2035:t.defPoint4||(t.defPoint4={x:0,y:0,z:0}),t.defPoint4.z=parseFloat(r.value);break;case\x2016:t.defPoint5||(t.defPoint5={x:0,y:0,z:0}),t.defPoint5.x=parseFloat(r.value);break;case\x2026:t.defPoint5||(t.defPoint5={x:0,y:0,z:0}),t.defPoint5.y=parseFloat(r.value);break;case\x2036:t.defPoint5||(t.defPoint5={x:0,y:0,z:0}),t.defPoint5.z=parseFloat(r.value);break;case\x2040:t.leaderLength=parseFloat(r.value);break;case\x2050:t.rotation=parseFloat(r.value);break;case\x2053:t.textRotation=parseFloat(r.value);break;case\x2070:t.dimType=parseInt(r.value,10);break}return\x20t}function\x20N(a){let\x20t={...l(a),type:\x22HATCH\x22,patternName:\x22\x22,solidFill:!0,associative:!1,hatchStyle:0,patternType:1,patternAngle:0,patternScale:1,boundaryPaths:[]},r=0;for(;r<a.length;){let\x20n=a[r];switch(n.code){case\x202:t.patternName=n.value;break;case\x2041:t.patternScale=parseFloat(n.value);break;case\x2052:t.patternAngle=parseFloat(n.value);break;case\x2070:t.solidFill=n.value===\x221\x22;break;case\x2071:t.associative=n.value===\x221\x22;break;case\x2075:t.hatchStyle=parseInt(n.value,10);break;case\x2076:t.patternType=parseInt(n.value,10);break;case\x2091:{let\x20o=parseInt(n.value,10);r++;for(let\x20c=0;c<o&&r<a.length;c++){let\x20s=W(a,r);t.boundaryPaths.push(s.path),r=s.nextIndex}continue}}r++}return\x20t}function\x20W(a,e){let\x20t=0;return\x20e<a.length&&a[e].code===92&&(t=parseInt(a[e].value,10),e++),(t&2)!==0?X(a,e,t):Y(a,e,t)}function\x20X(a,e,t){let\x20r={type:\x22polyline\x22,vertices:[],bulges:[],flags:t},n=!1;e<a.length&&a[e].code===72&&(n=a[e].value===\x221\x22,e++),e<a.length&&a[e].code===73&&(r.isClosed=a[e].value===\x221\x22,e++);let\x20o=0;e<a.length&&a[e].code===93&&(o=parseInt(a[e].value,10),e++);for(let\x20c=0;c<o&&e<a.length;c++){let\x20s={x:0,y:0};a[e].code===10&&(s.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===20&&(s.y=parseFloat(a[e].value),e++),r.vertices.push(s),n&&e<a.length&&a[e].code===42?(r.bulges.push(parseFloat(a[e].value)),e++):n&&r.bulges.push(0)}for(;e<a.length&&(a[e].code===97||a[e].code===330);)if(a[e].code===97){let\x20c=parseInt(a[e].value,10);e++;for(let\x20s=0;s<c&&e<a.length&&a[e].code===330;s++)e++}else\x20e++;return{path:r,nextIndex:e}}function\x20Y(a,e,t){let\x20r={type:\x22edges\x22,edges:[],flags:t},n=0;e<a.length&&a[e].code===93&&(n=parseInt(a[e].value,10),e++);for(let\x20o=0;o<n&&e<a.length&&a[e].code===72;o++){let\x20c=parseInt(a[e].value,10);switch(e++,c){case\x201:{let\x20s={type:\x22line\x22,start:{x:0,y:0},end:{x:0,y:0}};e<a.length&&a[e].code===10&&(s.start.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===20&&(s.start.y=parseFloat(a[e].value),e++),e<a.length&&a[e].code===11&&(s.end.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===21&&(s.end.y=parseFloat(a[e].value),e++),r.edges.push(s);break}case\x202:{let\x20s={type:\x22arc\x22,center:{x:0,y:0},radius:0,startAngle:0,endAngle:360,ccw:!0};e<a.length&&a[e].code===10&&(s.center.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===20&&(s.center.y=parseFloat(a[e].value),e++),e<a.length&&a[e].code===40&&(s.radius=parseFloat(a[e].value),e++),e<a.length&&a[e].code===50&&(s.startAngle=parseFloat(a[e].value),e++),e<a.length&&a[e].code===51&&(s.endAngle=parseFloat(a[e].value),e++),e<a.length&&a[e].code===73&&(s.ccw=a[e].value===\x221\x22,e++),r.edges.push(s);break}case\x203:{let\x20s={type:\x22ellipse\x22,center:{x:0,y:0},majorAxis:{x:1,y:0},minorRatio:1,startAngle:0,endAngle:Math.PI*2,ccw:!0};e<a.length&&a[e].code===10&&(s.center.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===20&&(s.center.y=parseFloat(a[e].value),e++),e<a.length&&a[e].code===11&&(s.majorAxis.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===21&&(s.majorAxis.y=parseFloat(a[e].value),e++),e<a.length&&a[e].code===40&&(s.minorRatio=parseFloat(a[e].value),e++),e<a.length&&a[e].code===50&&(s.startAngle=parseFloat(a[e].value),e++),e<a.length&&a[e].code===51&&(s.endAngle=parseFloat(a[e].value),e++),e<a.length&&a[e].code===73&&(s.ccw=a[e].value===\x221\x22,e++),r.edges.push(s);break}case\x204:{let\x20s=3,p=[],b=[];e<a.length&&a[e].code===94&&(s=parseInt(a[e].value,10),e++),e<a.length&&a[e].code===73&&e++,e<a.length&&a[e].code===74&&e++;let\x20d=0;e<a.length&&a[e].code===95&&(d=parseInt(a[e].value,10),e++);let\x20x=0;e<a.length&&a[e].code===96&&(x=parseInt(a[e].value,10),e++);for(let\x20f=0;f<d&&e<a.length&&a[e].code===40;f++)p.push(parseFloat(a[e].value)),e++;for(let\x20f=0;f<x&&e<a.length;f++){let\x20y={x:0,y:0};a[e].code===10&&(y.x=parseFloat(a[e].value),e++),e<a.length&&a[e].code===20&&(y.y=parseFloat(a[e].value),e++),b.push(y)}r.edges.push({type:\x22spline\x22,degree:s,knots:p,controlPoints:b});break}default:break}}for(;e<a.length&&(a[e].code===97||a[e].code===330);)if(a[e].code===97){let\x20o=parseInt(a[e].value,10);e++;for(let\x20c=0;c<o&&e<a.length&&a[e].code===330;c++)e++}else\x20e++;return{path:r,nextIndex:e}}function\x20L(a){let\x20t={...l(a),type:\x22POINT\x22,position:{x:0,y:0,z:0}};for(let\x20r\x20of\x20a)switch(r.code){case\x2010:t.position.x=parseFloat(r.value);break;case\x2020:t.position.y=parseFloat(r.value);break;case\x2030:t.position.z=parseFloat(r.value);break}return\x20t}function\x20u(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code!==0){e++;continue}let\x20n=r.value;if(n===\x22ENDSEC\x22||n===\x22ENDBLK\x22)return\x20e+1;e++;let\x20o=[];for(;e<a.length&&a[e].code!==0;)o.push(a[e]),e++;switch(n){case\x22LINE\x22:t.push(D(o));break;case\x22CIRCLE\x22:t.push(F(o));break;case\x22ARC\x22:t.push(E(o));break;case\x22LWPOLYLINE\x22:t.push(P(o));break;case\x22ELLIPSE\x22:t.push(w(o));break;case\x22SPLINE\x22:t.push(g(o));break;case\x22TEXT\x22:t.push(I(o));break;case\x22MTEXT\x22:t.push(A(o));break;case\x22INSERT\x22:{let\x20c=z(o);o.some(p=>p.code===66&&p.value===\x221\x22)&&(e=$(a,e,c.attribs)),t.push(c);break}case\x22DIMENSION\x22:t.push(S(o));break;case\x22HATCH\x22:t.push(N(o));break;case\x22POINT\x22:t.push(L(o));break;case\x22POLYLINE\x22:{let\x20c=T(o);e=V(a,e,c.vertices),t.push(c);break}default:break}}return\x20e}function\x20V(a,e,t){for(;e<a.length;){if(a[e].code!==0){e++;continue}let\x20r=a[e].value;if(r===\x22SEQEND\x22)return\x20e+1;if(r===\x22ENDSEC\x22||r===\x22ENDBLK\x22)return\x20e;if(r===\x22VERTEX\x22){e++;let\x20n={x:0,y:0,bulge:0,startWidth:0,endWidth:0};for(;e<a.length&&a[e].code!==0;){let\x20o=a[e];switch(o.code){case\x2010:n.x=parseFloat(o.value);break;case\x2020:n.y=parseFloat(o.value);break;case\x2042:n.bulge=parseFloat(o.value);break;case\x2040:n.startWidth=parseFloat(o.value);break;case\x2041:n.endWidth=parseFloat(o.value);break}e++}t.push(n)}else\x20for(e++;e<a.length&&a[e].code!==0;)e++}return\x20e}function\x20$(a,e,t){for(;e<a.length;){if(a[e].code!==0){e++;continue}let\x20r=a[e].value;if(r===\x22SEQEND\x22)return\x20e+1;if(r===\x22ENDSEC\x22||r===\x22ENDBLK\x22)return\x20e;if(r===\x22ATTRIB\x22){e++;let\x20n={tag:\x22\x22,text:\x22\x22,insertionPoint:{x:0,y:0,z:0},height:1,rotation:0,style:\x22STANDARD\x22,layer:\x220\x22,color:256};for(;e<a.length&&a[e].code!==0;){let\x20o=a[e];switch(o.code){case\x201:n.text=o.value;break;case\x202:n.tag=o.value;break;case\x207:n.style=o.value;break;case\x208:n.layer=o.value;break;case\x2010:n.insertionPoint.x=parseFloat(o.value);break;case\x2020:n.insertionPoint.y=parseFloat(o.value);break;case\x2030:n.insertionPoint.z=parseFloat(o.value);break;case\x2040:n.height=parseFloat(o.value);break;case\x2050:n.rotation=parseFloat(o.value);break;case\x2062:n.color=parseInt(o.value,10);break}e++}t.push(n)}else\x20for(e++;e<a.length&&a[e].code!==0;)e++}return\x20e}function\x20B(a,e,t){for(;e<a.length;){let\x20r=a[e];if(r.code===0&&r.value===\x22ENDSEC\x22)return\x20e+1;if(r.code===0&&r.value===\x22BLOCK\x22){e++;let\x20n={name:\x22\x22,basePoint:{x:0,y:0,z:0},entities:[],flags:0};for(;e<a.length&&a[e].code!==0;){let\x20o=a[e];switch(o.code){case\x202:n.name=o.value;break;case\x208:break;case\x2010:n.basePoint.x=parseFloat(o.value);break;case\x2020:n.basePoint.y=parseFloat(o.value);break;case\x2030:n.basePoint.z=parseFloat(o.value);break;case\x2070:n.flags=parseInt(o.value,10);break}e++}e=u(a,e,n.entities),n.name&&!n.name.startsWith(\x22*Model_Space\x22)&&!n.name.startsWith(\x22*Paper_Space\x22)&&t.set(n.name,n)}else\x20e++}return\x20e}var\x20C=\x22AutoCAD\x20Binary\x20DXF\x22,U={ANSI_874:\x22windows-874\x22,ANSI_932:\x22shift_jis\x22,ANSI_936:\x22gbk\x22,ANSI_949:\x22euc-kr\x22,ANSI_950:\x22big5\x22,ANSI_1250:\x22windows-1250\x22,ANSI_1251:\x22windows-1251\x22,ANSI_1252:\x22windows-1252\x22,ANSI_1253:\x22windows-1253\x22,ANSI_1254:\x22windows-1254\x22,ANSI_1255:\x22windows-1255\x22,ANSI_1256:\x22windows-1256\x22,ANSI_1257:\x22windows-1257\x22,ANSI_1258:\x22windows-1258\x22},G=\x22AC1021\x22;function\x20K(){return{acadVersion:\x22\x22,insUnits:0,measurement:0,ltScale:1}}function\x20j(a){return\x20a.replace(/\x5c\x5cU\x5c+([0-9A-Fa-f]{4})/g,(e,t)=>String.fromCodePoint(parseInt(t,16)))}function\x20q(a){if(typeof\x20a==\x22string\x22)return\x20j(a);let\x20e=new\x20Uint8Array(a);if(new\x20TextDecoder(\x22ascii\x22).decode(e.slice(0,C.length))===C)throw\x20new\x20i(\x22Binary\x20DXF\x20format\x20is\x20not\x20supported.\x20Please\x20export\x20as\x20ASCII\x20DXF.\x22);let\x20r=new\x20TextDecoder(\x22utf-8\x22).decode(a),o=r.match(/\x5c$ACADVER[\x5cs\x5cS]*?\x5cn\x5cs*1\x5cs*\x5cn\x5cs*(\x5cS+)/)?.[1]??\x22\x22;if(o&&o<G){let\x20s=r.match(/\x5c$DWGCODEPAGE[\x5cs\x5cS]*?\x5cn\x5cs*3\x5cs*\x5cn\x5cs*(\x5cS+)/)?.[1]??\x22\x22,p=U[s]??\x22windows-1252\x22;p!==\x22utf-8\x22&&(r=new\x20TextDecoder(p).decode(a))}return\x20j(r)}function\x20Q(a,e){for(;e<a.length;){if(a[e].code===0&&a[e].value===\x22ENDSEC\x22)return\x20e+1;e++}return\x20e}function\x20Z(a){a.layers.has(\x220\x22)||a.layers.set(\x220\x22,{name:\x220\x22,color:7,lineType:\x22Continuous\x22,flags:0,lineWeight:-3,isOff:!1,isFrozen:!1,isLocked:!1})}function\x20J(a){for(let[,e]of\x20a.layers)e.isOff=e.color<0,e.isOff&&(e.color=Math.abs(e.color)),e.isFrozen=(e.flags&1)!==0,e.isLocked=(e.flags&4)!==0}var\x20i=class\x20extends\x20Error{constructor(t,r){super(t);this.cause=r;this.name=\x22DxfParseError\x22}};function\x20M(a){if(typeof\x20a==\x22string\x22){if(a.length===0)throw\x20new\x20i(\x22Input\x20is\x20empty.\x20Expected\x20a\x20DXF\x20string\x20or\x20ArrayBuffer.\x22)}else\x20if(a\x20instanceof\x20ArrayBuffer){if(a.byteLength===0)throw\x20new\x20i(\x22Input\x20ArrayBuffer\x20is\x20empty.\x22)}else\x20throw\x20new\x20i(\x22Invalid\x20input\x20type.\x20Expected\x20a\x20string\x20or\x20ArrayBuffer.\x22);let\x20e;try{e=q(a)}catch(n){throw\x20n\x20instanceof\x20i?n:new\x20i(\x22Failed\x20to\x20decode\x20DXF\x20input.\x22,n)}let\x20t;try{t=h(e)}catch(n){throw\x20new\x20i(\x22Failed\x20to\x20tokenize\x20DXF\x20content.\x22,n)}if(t.length===0)throw\x20new\x20i(\x22DXF\x20content\x20produced\x20no\x20tokens.\x20The\x20input\x20may\x20not\x20be\x20a\x20valid\x20DXF\x20file.\x22);let\x20r={header:K(),layers:new\x20Map,lineTypes:new\x20Map,styles:new\x20Map,blocks:new\x20Map,entities:[]};try{let\x20n=0;for(;n<t.length;){let\x20o=t[n];if(o.code===0&&o.value===\x22SECTION\x22){if(n++,n>=t.length)break;let\x20c=t[n].value;switch(n++,c){case\x22HEADER\x22:n=m(t,n,r.header);break;case\x22TABLES\x22:n=k(t,n,r);break;case\x22BLOCKS\x22:n=B(t,n,r.blocks);break;case\x22ENTITIES\x22:n=u(t,n,r.entities);break;default:n=Q(t,n);break}}else{if(o.code===0&&o.value===\x22EOF\x22)break;n++}}}catch(n){throw\x20new\x20i(\x22Failed\x20to\x20parse\x20DXF\x20sections.\x22,n)}return\x20Z(r),J(r),r}self.onmessage=a=>{let{type:e,id:t,payload:r}=a.data;if(e===\x22parse\x22)try{let\x20n=M(r);postMessage({type:\x22result\x22,id:t,doc:n})}catch(n){let\x20o=n\x20instanceof\x20Error?n.message:String(n);postMessage({type:\x22error\x22,id:t,message:o})}};})();\x0a'],{'type':'text/javascript'})),this[d9(0x297)]=new Worker(this['blobUrl']),this['worker']['onmessage']=a7=>{const da=d9;let {type:a8,id:a9,doc:aa,message:ab}=a7['data'],ac=this[da(0x1e2)][da(0x270)](a9);ac&&(this['pending']['delete'](a9),a8==='result'?ac[da(0x26a)](this['reviveDocument'](aa)):a8==='error'&&ac[da(0x272)](Error(ab==null?'Worker\x20parse\x20failed':ab)));},this[d9(0x297)]['onerror']=a7=>{const db=d9;var a8;let a9=Error((a8=a7['message'])==null?db(0x273):a8);for(let [,aa]of this['pending'])aa[db(0x272)](a9);this['pending']['clear'](),this['destroyWorker']();},this['worker']);}['parse'](a7){return new Promise((a8,a9)=>{const dc=a1;let aa=this[dc(0x2cf)]++;this['pending']['set'](aa,{'resolve':a8,'reject':a9});let ab;try{ab=this['getWorker']();}catch(ad){this['pending']['delete'](aa),a9(ad instanceof Error?ad:Error(String(ad)));return;}let ac={'type':'parse','id':aa,'payload':a7};try{a7 instanceof ArrayBuffer?ab['postMessage'](ac,[a7]):ab['postMessage'](ac);}catch(af){this[dc(0x1e2)][dc(0x29c)](aa),a9(af instanceof Error?af:Error(String(af)));}});}['terminate'](){this['destroyWorker']();let a7=Error('Worker\x20terminated');for(let [,a8]of this['pending'])a8['reject'](a7);this['pending']['clear']();}[b3(0x2a9)](){const dd=b3;this[dd(0x297)]&&(this[dd(0x297)]['terminate'](),this['worker']=null),this['blobUrl']&&(URL[dd(0x2ce)](this['blobUrl']),this['blobUrl']=null);}['reviveDocument'](a7){return a6(a6({},a7),{},{'layers':this['ensureMap'](a7['layers']),'lineTypes':this['ensureMap'](a7['lineTypes']),'styles':this['ensureMap'](a7['styles']),'blocks':this['ensureMap'](a7['blocks'])});}['ensureMap'](a7){const df=b3;return a7 instanceof Map?a7:a7&&typeof a7=='object'?new Map(Object[df(0x249)](a7)):new Map();}},Kt=class{constructor(a7,a8){const dg=b3;var a9,aa,ab,ac,ad,af,ag;a5(this,'canvas',void 0x0),a5(this,'renderer',void 0x0),a5(this,'camera',void 0x0),a5(this,'layerManager',void 0x0),a5(this,dg(0x2c6),void 0x0),a5(this,'spatialIndex',void 0x0),a5(this,dg(0x2ac),void 0x0),a5(this,'doc',null),a5(this,dg(0x223),void 0x0),a5(this,'currentTool',void 0x0),a5(this,'inputHandler',void 0x0),a5(this,'resizeObserver',void 0x0),a5(this,'formatConverters',void 0x0),a5(this,'workerManager',null),a5(this,'selectedEntityIndex',-0x1),a5(this,'renderPending',!0x1),a5(this,dg(0x1df),!0x1),a5(this,dg(0x247),0x0),a5(this,dg(0x218),0x0),a5(this,'mouseScreenY',0x0),a5(this,'debugEnabled',!0x1),a5(this,'debugOptions',void 0x0),a5(this,'lastRenderStats',null),a5(this,'lastDebugStats',null),a5(this,'frameTimestamps',[]),a5(this,'lastDoRenderTime',0x0),a5(this,'lastFrameTime',0x0),a5(this,'parseTime',0x0),a5(this,'spatialIndexBuildTime',0x0),a5(this,'loadedFileName',null),a5(this,'loadedFileSize',0x0),a5(this,'debugRafId',0x0),this[dg(0x1fc)]=a7,this[dg(0x223)]={'theme':(a9=a8==null?void 0x0:a8['theme'])==null?'dark':a9,'backgroundColor':a8==null?void 0x0:a8['backgroundColor'],'antialias':(aa=a8==null?void 0x0:a8['antialias'])==null?!0x0:aa,'minZoom':(ab=a8==null?void 0x0:a8['minZoom'])==null?0.0001:ab,'maxZoom':(ac=a8==null?void 0x0:a8['maxZoom'])==null?0x186a0:ac,'zoomSpeed':(ad=a8==null?void 0x0:a8['zoomSpeed'])==null?1.1:ad,'initialTool':(af=a8==null?void 0x0:a8['initialTool'])==null?'pan':af},this['formatConverters']=(ag=a8==null?void 0x0:a8[dg(0x299)])==null?[]:ag,a8!=null&&a8['worker']&&(this[dg(0x2cd)]=new Gt()),a8!=null&&a8[dg(0x1db)]?(this['debugEnabled']=!0x0,this['debugOptions']=q(typeof a8['debug']=='boolean'?void 0x0:a8['debug'])):this['debugOptions']=q(),this['renderer']=new St(a7),this['camera']=new Ne(this['options']),this['layerManager']=new At(),this['emitter']=new jt(),this['spatialIndex']=new Pt(),this['measureTool']=new Vt(),this['currentTool']=this['options']['initialTool'],this['inputHandler']=new Mt(a7,this),this['resizeObserver']=new ResizeObserver(()=>this['resize']()),this[dg(0x1b6)]['observe'](a7),a7['style']['cursor']=this['getCursorForTool'](this['currentTool']),this['requestRender'](),this[dg(0x2a5)]&&this['startDebugLoop']();}[b3(0x22c)](){if(this['destroyed'])throw Error('CadViewer:\x20cannot\x20call\x20methods\x20on\x20a\x20destroyed\x20instance.');}[b3(0x2a7)](a7){var a8=this;return t(function*(){for(let a9 of a8['formatConverters']){let aa=!0x1;try{aa=a9['detect'](a7);}catch(ab){continue;}if(aa)return a9['convert'](a7);}return null;})();}['loadFile'](a7){var a8=this;return t(function*(){const dh=a1;a8['guardDestroyed']();let a9=++a8['loadGeneration'];a8['loadedFileName']=a7['name'],a8['loadedFileSize']=a7['size'];let aa=yield a7['arrayBuffer']();if(a8['destroyed']||a9!==a8['loadGeneration'])return;let ab=yield a8[dh(0x2a7)](aa);if(a8[dh(0x1df)]||a9!==a8['loadGeneration'])return;let ac=performance['now'](),ad=ab==null?aa:ab;a8['doc']=yield a8['parseWithOptionalWorker'](ad,a9),!(a8['destroyed']||a9!==a8['loadGeneration'])&&(a8['parseTime']=performance['now']()-ac,a8['onDocumentLoaded']());})();}['loadBuffer'](a7){var a8=this;return t(function*(){const di=a1;a8['guardDestroyed']();let a9=++a8[di(0x247)];a8['loadedFileName']=null,a8['loadedFileSize']=a7['byteLength'];let aa=yield a8['runConverters'](a7);if(a8['destroyed']||a9!==a8['loadGeneration'])return;let ab=performance['now'](),ac=aa==null?a7:aa;a8['doc']=yield a8['parseWithOptionalWorker'](ac,a9),!(a8['destroyed']||a9!==a8['loadGeneration'])&&(a8['parseTime']=performance['now']()-ab,a8['onDocumentLoaded']());})();}['parseWithOptionalWorker'](a7,a8){var a9=this;return t(function*(){const dj=a1;if(!a9[dj(0x2cd)])return F(a7);try{return yield a9['workerManager']['parse'](a7);}catch(aa){if(a9['destroyed']||a8!==a9['loadGeneration'])return null;throw aa;}})();}[b3(0x2b3)](a7){const dk=b3;if(this['guardDestroyed'](),++this['loadGeneration'],this['loadedFileName']=null,this['loadedFileSize']=0x0,this['parseTime']=0x0,!a7||!Array['isArray'](a7[dk(0x2ad)])||!(a7[dk(0x2bc)]instanceof Map))throw Error(dk(0x265));this['doc']=a7,this['onDocumentLoaded']();}[b3(0x275)](a7){this['guardDestroyed'](),++this['loadGeneration'],this['loadedFileName']=null,this['loadedFileSize']=a7['length'];let a8=performance['now']();this['doc']=F(a7),this['parseTime']=performance['now']()-a8,this['onDocumentLoaded']();}['loadArrayBuffer'](a7){const dl=b3;this['guardDestroyed'](),++this['loadGeneration'],this['loadedFileName']=null,this[dl(0x2a1)]=a7[dl(0x1ff)];let a8=performance['now']();this[dl(0x23d)]=F(a7),this[dl(0x281)]=performance['now']()-a8,this[dl(0x1c9)]();}['clearDocument'](){this['guardDestroyed'](),++this['loadGeneration'],this['doc']=null,this['selectedEntityIndex']=-0x1,this['spatialIndex']['clear'](),rt(),this['layerManager']['clear'](),this['measureTool']['deactivate'](),this['requestRender']();}['onDocumentLoaded'](){const dm=b3;if(!this[dm(0x23d)])return;this['layerManager']['setLayers'](this['doc']['layers']);let a7=performance['now']();this['spatialIndex']['build'](this[dm(0x23d)]['entities'],this['doc']),nt(tt(this['doc'])),this['spatialIndexBuildTime']=performance['now']()-a7,this['selectedEntityIndex']=-0x1,this['measureTool']['deactivate'](),this[dm(0x26d)]===dm(0x2ae)&&this['measureTool']['activate'](),this['fitToView']();}['fitToView'](){const dn=b3;if(this[dn(0x22c)](),!this['doc'])return;let a7=this['computeDocumentBounds']();if(!a7)return;let a8=this['canvas'][dn(0x29e)]();this['camera']['setTransform'](B(a8[dn(0x23b)],a8['height'],a7['minX'],a7['minY'],a7['maxX'],a7[dn(0x245)])),this['requestRender'](),this['emitter']['emit']('viewchange',this['camera']['getTransform']());}['zoomTo'](a7){const dp=b3;this['guardDestroyed']();let a8=this['canvas']['getBoundingClientRect'](),a9=a8[dp(0x23b)]/0x2,aa=a8['height']/0x2,ab=a7/this['camera']['getTransform']()['scale'];this['camera']['zoom'](a9,aa,ab),this['requestRender'](),this['emitter']['emit']('viewchange',this['camera']['getTransform']());}[b3(0x25d)](a7,a8){const dq=b3;this['guardDestroyed']();let a9=this[dq(0x1fc)]['getBoundingClientRect'](),aa=this['camera']['getTransform'](),ab=a7*aa['scale']+aa['offsetX'],ac=-a8*aa['scale']+aa['offsetY'],ad=a9['width']/0x2-ab,af=a9['height']/0x2-ac;this[dq(0x1ac)]['pan'](ad,af),this['requestRender'](),this['emitter']['emit']('viewchange',this['camera']['getTransform']());}['getViewTransform'](){const dr=b3;return a6({},this['camera'][dr(0x28c)]());}['getZoomSpeed'](){const ds=b3;return this[ds(0x223)]['zoomSpeed'];}[b3(0x2c5)](){return this['layerManager']['getAllLayers']();}['setLayerVisible'](a7,a8){const du=b3;this[du(0x22c)](),this[du(0x23c)][du(0x271)](a7,a8),this[du(0x296)]();}['setLayerColor'](a7,a8){this['guardDestroyed'](),this['layerManager']['setColorOverride'](a7,a8),this['requestRender']();}['setTheme'](a7){const dv=b3;this['guardDestroyed'](),this['options'][dv(0x222)]=a7,this['requestRender']();}['getTheme'](){return this['options']['theme'];}['setBackgroundColor'](a7){this['guardDestroyed'](),this['options']['backgroundColor']=a7,this['requestRender']();}[b3(0x22a)](a7){const dw=b3;this['guardDestroyed'](),this['currentTool']===dw(0x2ae)&&a7!=='measure'&&this['measureTool']['deactivate'](),this[dw(0x26d)]=a7,this['canvas']['style']['cursor']=this['getCursorForTool'](a7),a7==='measure'&&this['measureTool']['activate'](),a7!=='select'&&(this[dw(0x2a6)]=-0x1),this[dw(0x296)]();}[b3(0x1b3)](){const dx=b3;return this[dx(0x26d)];}['getCursorForTool'](a7){const dy=b3;switch(a7){case dy(0x2ba):return'grab';case'select':return dy(0x1b7);case'measure':return'crosshair';}}['on'](a7,a8){this['emitter']['on'](a7,a8);}['off'](a7,a8){this['emitter']['off'](a7,a8);}['getDocument'](){return this['doc'];}[b3(0x27f)](){var a7,a8;return(a7=(a8=this['doc'])==null?void 0x0:a8['entities'])==null?[]:a7;}['resize'](){this['renderer']['updateSize'](),this['requestRender']();}['destroy'](){const dz=b3;var a7;this['destroyed']=!0x0,this['stopDebugLoop'](),this['inputHandler']['destroy'](),this['resizeObserver']['disconnect'](),this[dz(0x224)]['destroy'](),this['emitter']['removeAllListeners'](),this[dz(0x20e)]['clear'](),rt(),this[dz(0x23c)]['clear'](),(a7=this['workerManager'])==null||a7['terminate'](),this['workerManager']=null,this['doc']=null;}['requestRender'](){if(!this['destroyed']){if(this['debugRafId']){this['doRender']();return;}this['renderPending']||(this['renderPending']=!0x0,requestAnimationFrame(()=>{this['renderPending']=!0x1,!this['destroyed']&&this['doRender']();}));}}['doRender'](){const dA=b3;if(!this['doc']){this['renderer']['renderEmpty'](this[dA(0x223)]['theme']);return;}let a7=this['camera']['getTransform'](),a8=this[dA(0x224)]['getWidth'](),a9=this[dA(0x224)]['getHeight'](),aa=this['computeViewportBounds'](a7,a8,a9),ab=this['spatialIndex']['search'](aa[dA(0x23f)],aa['minY'],aa['maxX'],aa[dA(0x245)]),ac=new Set();for(let ah=0x0;ah<ab[dA(0x1f7)];ah++)ac[dA(0x25a)](ab[ah][dA(0x266)]);let ad=performance[dA(0x2a3)](),af=this[dA(0x224)]['render'](this['doc'],a7,this['options']['theme'],this['layerManager']['getVisibleLayerNames'](),this['selectedEntityIndex'],ac,this['spatialIndex']['getEntityBBoxes']());this[dA(0x251)]=performance['now']()-ad,this['lastRenderStats']=af;let ag=performance['now']();for(ag-this['lastDoRenderTime']>=0x3&&this['frameTimestamps']['push'](ag),this['lastDoRenderTime']=ag;this['frameTimestamps'][dA(0x1f7)]>0x0&&this['frameTimestamps'][0x0]<ag-0x3e8;)this['frameTimestamps']['shift']();if(this['currentTool']==='measure'&&this[dA(0x2ac)]['state']['phase']!=='idle'&&Ht(this['renderer']['getContext'](),this['camera']['getTransform'](),this[dA(0x2ac)],this['mouseScreenX'],this['mouseScreenY'],this['options']['theme']),this['debugEnabled']){let ai=this[dA(0x224)]['getContext'](),aj=this['buildDebugStats']();this['lastDebugStats']=aj,kt(ai,aj,this[dA(0x223)]['theme'],this['debugOptions'],this['renderer']['getWidth'](),this['renderer']['getHeight']());}}['setDebug'](a7){const dB=b3;this['guardDestroyed'](),typeof a7==dB(0x206)?this['debugEnabled']=a7:(this[dB(0x2a5)]=!0x0,this['debugOptions']=q(a7)),this['debugEnabled']?this['startDebugLoop']():(this['stopDebugLoop'](),this['requestRender']());}['startDebugLoop'](){if(this['debugRafId'])return;let a7=()=>{if(!this['debugEnabled']||this['destroyed']){this['debugRafId']=0x0;return;}this['doRender'](),this['debugRafId']=requestAnimationFrame(a7);};this['debugRafId']=requestAnimationFrame(a7);}[b3(0x21f)](){const dC=b3;this[dC(0x242)]&&(cancelAnimationFrame(this['debugRafId']),this['debugRafId']=0x0);}['getDebugStats'](){const dD=b3;return this['debugEnabled']?this[dD(0x243)]:null;}['buildDebugStats'](){const dE=b3;var a7,a8,a9,aa,ab,ac,ad,af,ag;let ah=this['camera']['getTransform'](),ai=this['renderer']['getWidth'](),aj=this['renderer']['getHeight'](),ak=this['computeViewportBounds'](ah,ai,aj);return{'fps':this['frameTimestamps']['length'],'frameTime':this['lastFrameTime'],'renderStats':(a7=this['lastRenderStats'])==null?{'entitiesDrawn':0x0,'entitiesSkipped':0x0,'drawCalls':0x0,'byType':{}}:a7,'entityCount':(a8=(a9=this['doc'])==null?void 0x0:a9['entities']['length'])==null?0x0:a8,'layerCount':(aa=(ab=this['doc'])==null?void 0x0:ab['layers']['size'])==null?0x0:aa,'visibleLayerCount':this['layerManager']['getVisibleLayerNames']()[dE(0x229)],'blockCount':(ac=(ad=this[dE(0x23d)])==null?void 0x0:ad['blocks']['size'])==null?0x0:ac,'parseTime':this['parseTime'],'spatialIndexBuildTime':this[dE(0x291)],'totalLoadTime':this['parseTime']+this['spatialIndexBuildTime'],'zoom':ah['scale'],'pixelSize':ah[dE(0x295)]>0x0?0x1/ah['scale']:0x0,'viewportBounds':ak,'fileName':this[dE(0x1fe)],'fileSize':this['loadedFileSize'],'dxfVersion':(af=(ag=this['doc'])==null?void 0x0:ag['header']['acadVersion'])==null?null:af};}['computeViewportBounds'](a7,a8,a9){const dF=b3;let [aa,ab]=R(a7,0x0,a9),[ac,ad]=R(a7,a8,0x0);return{'minX':Math['min'](aa,ac),'minY':Math[dF(0x210)](ab,ad),'maxX':Math['max'](aa,ac),'maxY':Math[dF(0x228)](ab,ad)};}['handlePan'](a7,a8){const dG=b3;this[dG(0x1ac)][dG(0x2ba)](a7,a8),this['requestRender'](),this[dG(0x2c6)][dG(0x221)]('viewchange',this['camera']['getTransform']());}[b3(0x1ad)](a7,a8,a9){const dH=b3;this['camera']['zoom'](a7,a8,a9),this['requestRender'](),this['emitter']['emit']('viewchange',this['camera'][dH(0x28c)]());}['handleClick'](a7,a8){const dI=b3;if(!this['doc'])return;let a9=this['camera']['getTransform'](),[aa,ab]=R(a9,a7,a8);switch(this['currentTool']){case'select':this['handleSelect'](aa,ab,a7,a8);break;case'measure':{let ac=Z(aa,ab,this['doc'][dI(0x2ad)],this[dI(0x20e)],a9['scale']),ad=ac['length']>0x0?ac[0x0]:null,af=this['measureTool']['handleClick'](aa,ab,ad);this['requestRender'](),af&&this[dI(0x2c6)]['emit']('measure',af);break;}}}['handleMouseMove'](a7,a8){const dJ=b3;if(this['mouseScreenX']=a7,this['mouseScreenY']=a8,this['currentTool']===dJ(0x2ae)&&this['doc']){var a9;let aa=this['camera'][dJ(0x28c)](),[ab,ac]=R(aa,a7,a8),ad=Z(ab,ac,this['doc']['entities'],this['spatialIndex'],aa['scale']);this['measureTool']['handleMove']((a9=ad[0x0])==null?null:a9),this['requestRender']();}}['handleSelect'](a7,a8,a9,aa){const dK=b3;if(!this['doc'])return;let ab=Ft(a7,a8,this['doc']['entities'],this[dK(0x20e)],this['layerManager']['getVisibleLayerNames'](),this['camera']['getTransform']()['scale']);if(this['selectedEntityIndex']=ab,this['requestRender'](),ab>=0x0&&this['doc']){let ac=this[dK(0x23d)][dK(0x2ad)][ab];ac&&this['emitter']['emit']('select',{'entity':ac,'entityIndex':ab,'worldPoint':{'x':a7,'y':a8},'screenPoint':{'x':a9,'y':aa}});}}[b3(0x1e7)](){const dL=b3;return this['doc']?this['doc'][dL(0x1cf)]['extMin']&&this['doc'][dL(0x1cf)]['extMax']?{'minX':this['doc']['header']['extMin']['x'],'minY':this['doc']['header'][dL(0x26f)]['y'],'maxX':this['doc'][dL(0x1cf)]['extMax']['x'],'maxY':this['doc'][dL(0x1cf)]['extMax']['y']}:$e(this[dL(0x23d)]['entities']):null;}};export{Kt as CadViewer,Ne as Camera,St as CanvasRenderer,P as DxfParseError,jt as EventEmitter,At as LayerManager,Vt as MeasureTool,Pt as SpatialIndex,I as THEMES,Ae as aciToDisplayColor,ke as aciToHex,z as applyTransform,$e as computeEntitiesBounds,G as computeEntityBBox,K as drawEntity,Z as findSnaps,B as fitToView,Ft as hitTest,F as parseDxf,kt as renderDebugOverlay,Ht as renderMeasureOverlay,V as resolveEntityColor,R as screenToWorld,je as trueColorToHex,L as worldToScreen,Me as zoomAtPoint};