mxcad 1.0.68 → 1.0.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/mxcad.es.js CHANGED
@@ -1,11 +1,11 @@
1
- import qD, { MxFun as d, MrxDbgUiPrPoint as S, MxCursorType as _D, MrxDbgUtils as $D, store as aD, loadCoreCode as JD, MxPaintBrush as R, MrxDbgUiPrBaseReturn as x, MxDbCircleShape as uD, MxDbLine as J, MxDbPolyline as ZD, MxDbCircleArc as _, Mx3PointArc as YD, MxDbEllipseShape as QD, McEdGetPointWorldDrawObject as XD, MxDbEllipse as DC } from "mxdraw";
2
- function lD(E) {
1
+ import { MxFun as h, MrxDbgUiPrPoint as S, MxCursorType as qD, MrxDbgUtils as _D, store as uD, loadCoreCode as $D, MxPaintBrush as L, MrxDbgUiPrBaseReturn as x, MxDbCircleShape as lD, MxDbLine as J, MxDbPolyline as JD, MxDbCircleArc as $, Mx3PointArc as ZD, MxDbEllipseShape as YD, McEdGetPointWorldDrawObject as QD, MxDbEllipse as XD } from "mxdraw";
2
+ function cD(E) {
3
3
  return btoa(unescape(encodeURIComponent(E)));
4
4
  }
5
- function cD(E) {
5
+ function mD(E) {
6
6
  return decodeURIComponent(escape(atob(E)));
7
7
  }
8
- async function mD({
8
+ async function pD({
9
9
  blob: E,
10
10
  filename: D = "",
11
11
  types: C = [
@@ -46,24 +46,24 @@ async function mD({
46
46
  console.error(B.name, B.message);
47
47
  }
48
48
  }
49
- function pD(E, D) {
49
+ function dD(E, D) {
50
50
  const C = document.createElement("a");
51
51
  C.href = window.URL.createObjectURL(E), C.download = D, C.click();
52
52
  }
53
- function dD(E, D) {
53
+ function hD(E, D) {
54
54
  fetch(E).then((C) => C.blob()).then((C) => {
55
55
  const B = document.createElement("a");
56
56
  B.href = window.URL.createObjectURL(C), B.download = D, B.click();
57
57
  });
58
58
  }
59
- const N = {
60
- b64Encode: lD,
61
- b64Decode: cD,
62
- saveAsFileDialog: mD,
63
- downloadFile: pD,
64
- downloadFileFromUrl: dD
59
+ const _ = {
60
+ b64Encode: cD,
61
+ b64Decode: mD,
62
+ saveAsFileDialog: pD,
63
+ downloadFile: dD,
64
+ downloadFileFromUrl: hD
65
65
  };
66
- class CC {
66
+ class DC {
67
67
  z = "D2BBB6A18140C6DF814181428143CDF2D5C9C8FDC9CFCFC2D8A2B2BBD3EB8144D8A4B3F38145D7A8C7D2D8A7CAC08146C7F0B1FBD2B5B4D4B6ABCBBFD8A9814781488149B6AA814AC1BDD1CF814BC9A5D8AD814CB8F6D1BEE3DCD6D0814D814EB7E1814FB4AE8150C1D98151D8BC8152CDE8B5A4CEAAD6F78153C0F6BED9D8AF815481558156C4CB8157BEC38158D8B1C3B4D2E58159D6AECEDAD5A7BAF5B7A6C0D6815AC6B9C5D2C7C7815BB9D4815CB3CBD2D2815D815ED8BFBEC5C6F2D2B2CFB0CFE7815F816081618162CAE981638164D8C081658166816781688169816AC2F2C2D2816BC8E9816C816D816E816F817081718172817381748175C7AC8176817781788179817A817B817CC1CB817DD3E8D5F9817ECAC2B6FED8A1D3DABFF78180D4C6BBA5D8C1CEE5BEAE81818182D8A88183D1C7D0A9818481858186D8BDD9EFCDF6BFBA8187BDBBBAA5D2E0B2FABAE0C4B68188CFEDBEA9CDA4C1C18189818A818BC7D7D9F1818CD9F4818D818E818F8190C8CBD8E9819181928193D2DACAB2C8CAD8ECD8EAD8C6BDF6C6CDB3F08194D8EBBDF1BDE98195C8D4B4D381968197C2D88198B2D6D7D0CACBCBFBD5CCB8B6CFC98199819A819BD9DAD8F0C7AA819CD8EE819DB4FAC1EED2D4819E819FD8ED81A0D2C7D8EFC3C781A181A281A3D1F681A4D6D9D8F281A5D8F5BCFEBCDB81A681A781A8C8CE81A9B7DD81AAB7C281ABC6F381AC81AD81AE81AF81B081B181B2D8F8D2C181B381B4CEE9BCBFB7FCB7A5D0DD81B581B681B781B881B9D6DAD3C5BBEFBBE1D8F181BA81BBC9A1CEB0B4AB81BCD8F381BDC9CBD8F6C2D7D8F781BE81BFCEB1D8F981C081C181C2B2AEB9C081C3D9A381C4B0E981C5C1E681C6C9EC81C7CBC581C8CBC6D9A481C981CA81CB81CC81CDB5E881CE81CFB5AB81D081D181D281D381D481D5CEBBB5CDD7A1D7F4D3D381D6CCE581D7BACE81D8D9A2D9DCD3E0D8FDB7F0D7F7D8FED8FAD9A1C4E381D981DAD3B6D8F4D9DD81DBD8FB81DCC5E581DD81DEC0D081DF81E0D1F0B0DB81E181E2BCD1D9A681E3D9A581E481E581E681E7D9ACD9AE81E8D9ABCAB981E981EA81EBD9A9D6B681EC81ED81EEB3DED9A881EFC0FD81F0CACC81F1D9AA81F2D9A781F381F4D9B081F581F6B6B181F781F881F9B9A981FAD2C081FB81FCCFC081FD81FEC2C28240BDC4D5ECB2E0C7C8BFEBD9AD8241D9AF8242CEEABAEE82438244824582468247C7D682488249824A824B824C824D824E824F8250B1E3825182528253B4D9B6EDD9B48254825582568257BFA182588259825AD9DEC7CEC0FED9B8825B825C825D825E825FCBD7B7FD8260D9B58261D9B7B1A3D3E1D9B98262D0C58263D9B682648265D9B18266D9B2C1A9D9B382678268BCF3D0DEB8A98269BEE3826AD9BD826B826C826D826ED9BA826FB0B3827082718272D9C28273827482758276827782788279827A827B827C827D827E8280D9C4B1B68281D9BF82828283B5B98284BEF3828582868287CCC8BAF2D2D08288D9C38289828ABDE8828BB3AB828C828D828ED9C5BEEB828FD9C6D9BBC4DF8290D9BED9C1D9C0829182928293829482958296829782988299829A829BD5AE829CD6B5829DC7E3829E829F82A082A1D9C882A282A382A4BCD9D9CA82A582A682A7D9BC82A8D9CBC6AB82A982AA82AB82AC82ADD9C982AE82AF82B082B1D7F682B2CDA382B382B482B582B682B782B882B982BABDA182BB82BC82BD82BE82BF82C0D9CC82C182C282C382C482C582C682C782C882C9C5BCCDB582CA82CB82CCD9CD82CD82CED9C7B3A5BFFE82CF82D082D182D2B8B582D382D4C0FC82D582D682D782D8B0F882D982DA82DB82DC82DD82DE82DF82E082E182E282E382E482E582E682E782E882E982EA82EB82EC82EDB4F682EED9CE82EFD9CFB4A2D9D082F082F1B4DF82F282F382F482F582F6B0C182F782F882F982FA82FB82FC82FDD9D1C9B582FE8340834183428343834483458346834783488349834A834B834C834D834E834F83508351CFF1835283538354835583568357D9D283588359835AC1C5835B835C835D835E835F836083618362836383648365D9D6C9AE8366836783688369D9D5D9D4D9D7836A836B836C836DCBDB836EBDA9836F8370837183728373C6A7837483758376837783788379837A837B837C837DD9D3D9D8837E83808381D9D9838283838384838583868387C8E583888389838A838B838C838D838E838F839083918392839383948395C0DC8396839783988399839A839B839C839D839E839F83A083A183A283A383A483A583A683A783A883A983AA83AB83AC83AD83AE83AF83B083B183B2B6F9D8A3D4CA83B3D4AAD0D6B3E4D5D783B4CFC8B9E283B5BFCB83B6C3E283B783B883B9B6D283BA83BBCDC3D9EED9F083BC83BD83BEB5B383BFB6B583C083C183C283C383C4BEA483C583C6C8EB83C783C8C8AB83C983CAB0CBB9ABC1F9D9E283CBC0BCB9B283CCB9D8D0CBB1F8C6E4BEDFB5E4D7C883CDD1F8BCE6CADE83CE83CFBCBDD9E6D8E783D083D1C4DA83D283D3B8D4C8BD83D483D5B2E1D4D983D683D783D883D9C3B083DA83DBC3E1DAA2C8DF83DCD0B483DDBEFCC5A983DE83DF83E0B9DA83E1DAA383E2D4A9DAA483E383E483E583E683E7D9FBB6AC83E883E9B7EBB1F9D9FCB3E5BEF683EABFF6D2B1C0E483EB83EC83EDB6B3D9FED9FD83EE83EFBEBB83F083F183F2C6E083F3D7BCDAA183F4C1B983F5B5F2C1E883F683F7BCF583F8B4D583F983FA83FB83FC83FD83FE844084418442C1DD8443C4FD84448445BCB8B7B284468447B7EF84488449844A844B844C844DD9EC844EC6BE844FBFADBBCB84508451B5CA8452DBC9D0D78453CDB9B0BCB3F6BBF7DBCABAAF8454D4E4B5B6B5F3D8D6C8D084558456B7D6C7D0D8D78457BFAF84588459DBBBD8D8845A845BD0CCBBAE845C845D845EEBBEC1D0C1F5D4F2B8D5B4B4845FB3F584608461C9BE846284638464C5D0846584668467C5D9C0FB8468B1F08469D8D9B9CE846AB5BD846B846CD8DA846D846ED6C6CBA2C8AFC9B2B4CCBFCC846FB9F48470D8DBD8DCB6E7BCC1CCEA847184728473847484758476CFF78477D8DDC7B084788479B9D0BDA3847A847BCCDE847CC6CA847D847E848084818482D8E08483D8DE84848485D8DF848684878488B0FE8489BEE7848ACAA3BCF4848B848C848D848EB8B1848F8490B8EE849184928493849484958496849784988499849AD8E2849BBDCB849CD8E4D8E3849D849E849F84A084A1C5FC84A284A384A484A584A684A784A8D8E584A984AAD8E684AB84AC84AD84AE84AF84B084B1C1A684B2C8B0B0ECB9A6BCD3CEF1DBBDC1D384B384B484B584B6B6AFD6FAC5ACBDD9DBBEDBBF84B784B884B9C0F8BEA2C0CD84BA84BB84BC84BD84BE84BF84C084C184C284C3DBC0CAC684C484C584C6B2AA84C784C884C9D3C284CAC3E384CBD1AB84CC84CD84CE84CFDBC284D0C0D584D184D284D3DBC384D4BFB184D584D684D784D884D984DAC4BC84DB84DC84DD84DEC7DA84DF84E084E184E284E384E484E584E684E784E884E9DBC484EA84EB84EC84ED84EE84EF84F084F1D9E8C9D784F284F384F4B9B4CEF0D4C884F584F684F784F8B0FCB4D284F9D0D984FA84FB84FC84FDD9E984FEDECBD9EB8540854185428543D8B0BBAFB1B18544B3D7D8CE85458546D4D185478548BDB3BFEF8549CFBB854A854BD8D0854C854D854EB7CB854F85508551D8D185528553855485558556855785588559855A855BC6A5C7F8D2BD855C855DD8D2C4E4855ECAAE855FC7A78560D8A68561C9FDCEE7BBDCB0EB856285638564BBAAD0AD8565B1B0D7E4D7BF8566B5A5C2F4C4CF85678568B2A98569B2B7856AB1E5DFB2D5BCBFA8C2ACD8D5C2B1856BD8D4CED4856CDAE0856DCEC0856E856FD8B4C3AED3A1CEA38570BCB4C8B4C2D18571BEEDD0B68572DAE18573857485758576C7E485778578B3A78579B6F2CCFCC0FA857A857BC0F7857CD1B9D1E1D8C7857D857E85808581858285838584B2DE85858586C0E58587BAF185888589D8C8858AD4AD858B858CCFE1D8C9858DD8CACFC3858EB3F8BEC7858F859085918592D8CB8593859485958596859785988599DBCC859A859B859C859DC8A5859E859F85A0CFD885A1C8FEB2CE85A285A385A485A585A6D3D6B2E6BCB0D3D1CBABB7B485A785A885A9B7A285AA85ABCAE585ACC8A1CADCB1E4D0F085ADC5D185AE85AF85B0DBC5B5FE85B185B2BFDAB9C5BEE4C1ED85B3DFB6DFB5D6BBBDD0D5D9B0C8B6A3BFC9CCA8DFB3CAB7D3D285B4D8CFD2B6BAC5CBBECCBE85B5DFB7B5F0DFB485B685B785B8D3F585B9B3D4B8F785BADFBA85BBBACFBCAAB5F585BCCDACC3FBBAF3C0F4CDC2CFF2DFB8CFC585BDC2C0DFB9C2F085BE85BF85C0BEFD85C1C1DFCDCCD2F7B7CDDFC185C2DFC485C385C4B7F1B0C9B6D6B7D485C5BAACCCFDBFD4CBB1C6F485C6D6A8DFC585C7CEE2B3B385C885C9CEFCB4B585CACEC7BAF085CBCEE185CCD1BD85CD85CEDFC085CF85D0B4F485D1B3CA85D2B8E6DFBB85D385D485D585D6C4C585D7DFBCDFBDDFBEC5BBDFBFDFC2D4B1DFC385D8C7BACED885D985DA85DB85DC85DDC4D885DEDFCA85DFDFCF85E0D6DC85E185E285E385E485E585E685E785E8DFC9DFDACEB685E9BAC7DFCEDFC8C5DE85EA85EBC9EBBAF4C3FC85EC85EDBED785EEDFC685EFDFCD85F0C5D885F185F285F385F4D5A6BACD85F5BECCD3BDB8C085F6D6E485F7DFC7B9BEBFA785F885F9C1FCDFCBDFCC85FADFD085FB85FC85FD85FE8640DFDBDFE58641DFD7DFD6D7C9DFE3DFE4E5EBD2A7DFD28642BFA98643D4DB8644BFC8DFD4864586468647CFCC86488649DFDD864AD1CA864BDFDEB0A7C6B7DFD3864CBAE5864DB6DFCDDBB9FED4D5864E864FDFDFCFECB0A5DFE7DFD1D1C6DFD5DFD8DFD9DFDC8650BBA98651DFE0DFE18652DFE2DFE6DFE8D3B486538654865586568657B8E7C5B6DFEAC9DAC1A8C4C486588659BFDECFF8865A865B865CD5DCDFEE865D865E865F866086618662B2B88663BADFDFEC8664DBC18665D1E48666866786688669CBF4B4BD866AB0A6866B866C866D866E866FDFF1CCC6DFF286708671DFED867286738674867586768677DFE986788679867A867BDFEB867CDFEFDFF0BBBD867D867EDFF386808681DFF48682BBA38683CADBCEA8E0A7B3AA8684E0A6868586868687E0A186888689868A868BDFFE868CCDD9DFFC868DDFFA868EBFD0D7C4868FC9CC86908691DFF8B0A186928693869486958696DFFD869786988699869ADFFBE0A2869B869C869D869E869FE0A886A086A186A286A3B7C886A486A5C6A1C9B6C0B2DFF586A686A7C5BE86A8D8C4DFF9C4F686A986AA86AB86AC86AD86AEE0A3E0A4E0A5D0A586AF86B0E0B4CCE486B1E0B186B2BFA6E0AFCEB9E0ABC9C686B386B4C0AEE0AEBAEDBAB0E0A986B586B686B7DFF686B8E0B386B986BAE0B886BB86BC86BDB4ADE0B986BE86BFCFB2BAC886C0E0B086C186C286C386C486C586C686C7D0FA86C886C986CA86CB86CC86CD86CE86CF86D0E0AC86D1D4FB86D2DFF786D3C5E786D4E0AD86D5D3F786D6E0B6E0B786D786D886D986DA86DBE0C4D0E186DC86DD86DEE0BC86DF86E0E0C9E0CA86E186E286E3E0BEE0AAC9A4E0C186E4E0B286E586E686E786E886E9CAC8E0C386EAE0B586EBCECB86ECCBC3E0CDE0C6E0C286EDE0CB86EEE0BAE0BFE0C086EF86F0E0C586F186F2E0C7E0C886F3E0CC86F4E0BB86F586F686F786F886F9CBD4E0D586FAE0D6E0D286FB86FC86FD86FE87408741E0D0BCCE87428743E0D18744B8C2D8C587458746874787488749874A874B874CD0EA874D874EC2EF874F8750E0CFE0BD875187528753E0D4E0D387548755E0D78756875787588759E0DCE0D8875A875B875CD6F6B3B0875DD7EC875ECBBB875F8760E0DA8761CEFB876287638764BAD987658766876787688769876A876B876C876D876E876F8770E0E1E0DDD2AD87718772877387748775E0E287768777E0DBE0D9E0DF87788779E0E0877A877B877C877D877EE0DE8780E0E4878187828783C6F7D8ACD4EBE0E6CAC98784878587868787E0E587888789878A878BB8C1878C878D878E878FE0E7E0E887908791879287938794879587968797E0E9E0E387988799879A879B879C879D879EBABFCCE7879F87A087A1E0EA87A287A387A487A587A687A787A887A987AA87AB87AC87AD87AE87AF87B0CFF987B187B287B387B487B587B687B787B887B987BA87BBE0EB87BC87BD87BE87BF87C087C187C2C8C287C387C487C587C6BDC087C787C887C987CA87CB87CC87CD87CE87CF87D087D187D287D3C4D287D487D587D687D787D887D987DA87DB87DCE0EC87DD87DEE0ED87DF87E0C7F4CBC487E1E0EEBBD8D8B6D2F2E0EFCDC587E2B6DA87E387E487E587E687E787E8E0F187E9D4B087EA87EBC0A7B4D187EC87EDCEA7E0F087EE87EF87F0E0F2B9CC87F187F2B9FACDBCE0F387F387F487F5C6D4E0F487F6D4B287F7C8A6E0F6E0F587F887F987FA87FB87FC87FD87FE8840884188428843884488458846884788488849E0F7884A884BCDC1884C884D884ECAA5884F885088518852D4DADBD7DBD98853DBD8B9E7DBDCDBDDB5D888548855DBDA8856885788588859885ADBDBB3A1DBDF885B885CBBF8885DD6B7885EDBE0885F886088618862BEF988638864B7BB8865DBD0CCAEBFB2BBB5D7F8BFD38866886788688869886ABFE9886B886CBCE1CCB3DBDEB0D3CEEBB7D8D7B9C6C2886D886EC0A4886FCCB98870DBE7DBE1C6BADBE38871DBE88872C5F7887388748875DBEA88768877DBE9BFC088788879887ADBE6DBE5887B887C887D887E8880B4B9C0ACC2A2DBE2DBE48881888288838884D0CDDBED88858886888788888889C0DDDBF2888A888B888C888D888E888F8890B6E28891889288938894DBF3DBD2B9B8D4ABDBEC8895BFD1DBF08896DBD18897B5E68898DBEBBFE58899889A889BDBEE889CDBF1889D889E889FDBF988A088A188A288A388A488A588A688A788A8B9A1B0A388A988AA88AB88AC88AD88AE88AFC2F188B088B1B3C7DBEF88B288B3DBF888B4C6D2DBF488B588B6DBF5DBF7DBF688B788B8DBFE88B9D3F2B2BA88BA88BB88BCDBFD88BD88BE88BF88C088C188C288C388C4DCA488C5DBFB88C688C788C888C9DBFA88CA88CB88CCDBFCC5E0BBF988CD88CEDCA388CF88D0DCA588D1CCC388D288D388D4B6D1DDC088D588D688D7DCA188D8DCA288D988DA88DBC7B588DC88DD88DEB6E988DF88E088E1DCA788E288E388E488E5DCA688E6DCA9B1A488E788E8B5CC88E988EA88EB88EC88EDBFB088EE88EF88F088F188F2D1DF88F388F488F588F6B6C288F788F888F988FA88FB88FC88FD88FE894089418942894389448945DCA88946894789488949894A894B894CCBFAEBF3894D894E894FCBDC89508951CBFE895289538954CCC189558956895789588959C8FB895A895B895C895D895E895FDCAA89608961896289638964CCEEDCAB89658966896789688969896A896B896C896D896E896F897089718972897389748975DBD38976DCAFDCAC8977BEB38978CAFB8979897A897BDCAD897C897D897E89808981898289838984C9CAC4B989858986898789888989C7BDDCAE898A898B898CD4F6D0E6898D898E898F89908991899289938994C4ABB6D589958996899789988999899A899B899C899D899E899F89A089A189A289A389A489A589A6DBD489A789A889A989AAB1DA89AB89AC89ADDBD589AE89AF89B089B189B289B389B489B589B689B789B8DBD689B989BA89BBBABE89BC89BD89BE89BF89C089C189C289C389C489C589C689C789C889C9C8C089CA89CB89CC89CD89CE89CFCABFC8C989D0D7B389D1C9F989D289D3BFC789D489D5BAF889D689D7D2BC89D889D989DA89DB89DC89DD89DE89DFE2BA89E0B4A689E189E2B1B889E389E489E589E689E7B8B489E8CFC489E989EA89EB89ECD9E7CFA6CDE289ED89EED9EDB6E089EFD2B989F089F1B9BB89F289F389F489F5E2B9E2B789F6B4F389F7CCECCCABB7F289F8D8B2D1EBBABB89F9CAA789FA89FBCDB789FC89FDD2C4BFE4BCD0B6E189FEDEC58A408A418A428A43DEC6DBBC8A44D1D98A458A46C6E6C4CEB7EE8A47B7DC8A488A49BFFCD7E08A4AC6F58A4B8A4CB1BCDEC8BDB1CCD7DECA8A4DDEC98A4E8A4F8A508A518A52B5EC8A53C9DD8A548A55B0C28A568A578A588A598A5A8A5B8A5C8A5D8A5E8A5F8A608A618A62C5AEC5AB8A63C4CC8A64BCE9CBFD8A658A668A67BAC38A688A698A6AE5F9C8E7E5FACDFD8A6BD7B1B8BEC2E88A6CC8D18A6D8A6EE5FB8A6F8A708A718A72B6CABCCB8A738A74D1FDE6A18A75C3EE8A768A778A788A79E6A48A7A8A7B8A7C8A7DE5FEE6A5CDD78A7E8A80B7C1E5FCE5FDE6A38A818A82C4DDE6A88A838A84E6A78A858A868A878A888A898A8AC3C38A8BC6DE8A8C8A8DE6AA8A8E8A8F8A908A918A928A938A94C4B78A958A968A97E6A2CABC8A988A998A9A8A9BBDE3B9C3E6A6D0D5CEAF8A9C8A9DE6A9E6B08A9ED2A68A9FBDAAE6AD8AA08AA18AA28AA38AA4E6AF8AA5C0D18AA68AA7D2CC8AA88AA98AAABCA78AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB38AB48AB58AB6E6B18AB7D2F68AB88AB98ABAD7CB8ABBCDFE8ABCCDDEC2A6E6ABE6ACBDBFE6AEE6B38ABD8ABEE6B28ABF8AC08AC18AC2E6B68AC3E6B88AC48AC58AC68AC7C4EF8AC88AC98ACAC4C88ACB8ACCBEEAC9EF8ACD8ACEE6B78ACFB6F08AD08AD18AD2C3E48AD38AD48AD58AD68AD78AD88AD9D3E9E6B48ADAE6B58ADBC8A28ADC8ADD8ADE8ADF8AE0E6BD8AE18AE28AE3E6B98AE48AE58AE68AE78AE8C6C58AE98AEACDF1E6BB8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF38AF4E6BC8AF58AF68AF78AF8BBE98AF98AFA8AFB8AFC8AFD8AFE8B40E6BE8B418B428B438B44E6BA8B458B46C0B78B478B488B498B4A8B4B8B4C8B4D8B4E8B4FD3A4E6BFC9F4E6C38B508B51E6C48B528B538B548B55D0F68B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B658B668B67C3BD8B688B698B6A8B6B8B6C8B6D8B6EC3C4E6C28B6F8B708B718B728B738B748B758B768B778B788B798B7A8B7B8B7CE6C18B7D8B7E8B808B818B828B838B84E6C7CFB18B85EBF48B868B87E6CA8B888B898B8A8B8B8B8CE6C58B8D8B8EBCDEC9A98B8F8B908B918B928B938B94BCB58B958B96CFD38B978B988B998B9A8B9BE6C88B9CE6C98B9DE6CE8B9EE6D08B9F8BA08BA1E6D18BA28BA38BA4E6CBB5D58BA5E6CC8BA68BA7E6CF8BA88BA9C4DB8BAAE6C68BAB8BAC8BAD8BAE8BAFE6CD8BB08BB18BB28BB38BB48BB58BB68BB78BB88BB98BBA8BBB8BBC8BBD8BBE8BBF8BC08BC18BC28BC38BC48BC58BC6E6D28BC78BC88BC98BCA8BCB8BCC8BCD8BCE8BCF8BD08BD18BD2E6D4E6D38BD38BD48BD58BD68BD78BD88BD98BDA8BDB8BDC8BDD8BDE8BDF8BE08BE18BE28BE38BE48BE58BE68BE78BE88BE98BEA8BEB8BECE6D58BEDD9F88BEE8BEFE6D68BF08BF18BF28BF38BF48BF58BF68BF7E6D78BF88BF98BFA8BFB8BFC8BFD8BFE8C408C418C428C438C448C458C468C47D7D3E6DD8C48E6DEBFD7D4D08C49D7D6B4E6CBEFE6DAD8C3D7CED0A28C4AC3CF8C4B8C4CE6DFBCBEB9C2E6DBD1A78C4D8C4EBAA2C2CF8C4FD8AB8C508C518C52CAEBE5EE8C53E6DC8C54B7F58C558C568C578C58C8E68C598C5AC4F58C5B8C5CE5B2C4FE8C5DCBFCE5B3D5AC8C5ED3EECAD8B0B28C5FCBCECDEA8C608C61BAEA8C628C638C64E5B58C65E5B48C66D7DAB9D9D6E6B6A8CDF0D2CBB1A6CAB58C67B3E8C9F3BFCDD0FBCAD2E5B6BBC28C688C698C6ACFDCB9AC8C6B8C6C8C6D8C6ED4D78C6F8C70BAA6D1E7CFFCBCD28C71E5B7C8DD8C728C738C74BFEDB1F6CBDE8C758C76BCC58C77BCC4D2FAC3DCBFDC8C788C798C7A8C7BB8BB8C7C8C7D8C7EC3C28C80BAAED4A28C818C828C838C848C858C868C878C888C89C7DEC4AFB2EC8C8AB9D18C8B8C8CE5BBC1C88C8D8C8ED5AF8C8F8C908C918C928C93E5BC8C94E5BE8C958C968C978C988C998C9A8C9BB4E7B6D4CBC2D1B0B5BC8C9C8C9DCAD98C9EB7E28C9F8CA0C9E48CA1BDAB8CA28CA3CEBED7F08CA48CA58CA68CA7D0A18CA8C9D98CA98CAAB6FBE6D8BCE28CABB3BE8CACC9D08CADE6D9B3A28CAE8CAF8CB08CB1DECC8CB2D3C8DECD8CB3D2A28CB48CB58CB68CB7DECE8CB88CB98CBA8CBBBECD8CBC8CBDDECF8CBE8CBF8CC0CAACD2FCB3DFE5EAC4E1BEA1CEB2C4F2BED6C6A8B2E38CC18CC2BED38CC38CC4C7FCCCEBBDECCEDD8CC58CC6CABAC6C1E5ECD0BC8CC78CC88CC9D5B98CCA8CCB8CCCE5ED8CCD8CCE8CCF8CD0CAF48CD1CDC0C2C58CD2E5EF8CD3C2C4E5F08CD48CD58CD68CD78CD88CD98CDAE5F8CDCD8CDBC9BD8CDC8CDD8CDE8CDF8CE08CE18CE2D2D9E1A88CE38CE48CE58CE6D3EC8CE7CBEAC6F18CE88CE98CEA8CEB8CECE1AC8CED8CEE8CEFE1A7E1A98CF08CF1E1AAE1AF8CF28CF3B2ED8CF4E1ABB8DAE1ADE1AEE1B0B5BAE1B18CF58CF68CF78CF88CF9E1B3E1B88CFA8CFB8CFC8CFD8CFED1D28D40E1B6E1B5C1EB8D418D428D43E1B78D44D4C08D45E1B28D46E1BAB0B68D478D488D498D4AE1B48D4BBFF98D4CE1B98D4D8D4EE1BB8D4F8D508D518D528D538D54E1BE8D558D568D578D588D598D5AE1BC8D5B8D5C8D5D8D5E8D5F8D60D6C58D618D628D638D648D658D668D67CFBF8D688D69E1BDE1BFC2CD8D6AB6EB8D6BD3F88D6C8D6DC7CD8D6E8D6FB7E58D708D718D728D738D748D758D768D778D788D79BEFE8D7A8D7B8D7C8D7D8D7E8D80E1C0E1C18D818D82E1C7B3E78D838D848D858D868D878D88C6E98D898D8A8D8B8D8C8D8DB4DE8D8ED1C28D8F8D908D918D92E1C88D938D94E1C68D958D968D978D988D99E1C58D9AE1C3E1C28D9BB1C08D9C8D9D8D9ED5B8E1C48D9F8DA08DA18DA28DA3E1CB8DA48DA58DA68DA78DA88DA98DAA8DABE1CCE1CA8DAC8DAD8DAE8DAF8DB08DB18DB28DB3EFFA8DB48DB5E1D3E1D2C7B68DB68DB78DB88DB98DBA8DBB8DBC8DBD8DBE8DBF8DC0E1C98DC18DC2E1CE8DC3E1D08DC48DC58DC68DC78DC88DC98DCA8DCB8DCC8DCD8DCEE1D48DCFE1D1E1CD8DD08DD1E1CF8DD28DD38DD48DD5E1D58DD68DD78DD88DD98DDA8DDB8DDC8DDD8DDE8DDF8DE08DE18DE2E1D68DE38DE48DE58DE68DE78DE88DE98DEA8DEB8DEC8DED8DEE8DEF8DF08DF18DF28DF38DF48DF58DF68DF78DF8E1D78DF98DFA8DFBE1D88DFC8DFD8DFE8E408E418E428E438E448E458E468E478E488E498E4A8E4B8E4C8E4D8E4E8E4F8E508E518E528E538E548E55E1DA8E568E578E588E598E5A8E5B8E5C8E5D8E5E8E5F8E608E618E62E1DB8E638E648E658E668E678E688E69CEA18E6A8E6B8E6C8E6D8E6E8E6F8E708E718E728E738E748E758E76E7DD8E77B4A8D6DD8E788E79D1B2B3B28E7A8E7BB9A4D7F3C7C9BEDEB9AE8E7CCED78E7D8E7EB2EEDBCF8E80BCBAD2D1CBC8B0CD8E818E82CFEF8E838E848E858E868E87D9E3BDED8E888E89B1D2CAD0B2BC8E8ACBA7B7AB8E8BCAA68E8C8E8D8E8ECFA38E8F8E90E0F8D5CAE0FB8E918E92E0FAC5C1CCFB8E93C1B1E0F9D6E3B2AFD6C4B5DB8E948E958E968E978E988E998E9A8E9BB4F8D6A18E9C8E9D8E9E8E9F8EA0CFAFB0EF8EA18EA2E0FC8EA38EA48EA58EA68EA7E1A1B3A38EA88EA9E0FDE0FEC3B18EAA8EAB8EAC8EADC3DD8EAEE1A2B7F98EAF8EB08EB18EB28EB38EB4BBCF8EB58EB68EB78EB88EB98EBA8EBBE1A3C4BB8EBC8EBD8EBE8EBF8EC0E1A48EC18EC2E1A58EC38EC4E1A6B4B18EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF8ED08ED18ED28ED3B8C9C6BDC4EA8ED4B2A28ED5D0D28ED6E7DBBBC3D3D7D3C48ED7B9E3E2CF8ED88ED98EDAD7AF8EDBC7ECB1D38EDC8EDDB4B2E2D18EDE8EDF8EE0D0F2C2AEE2D08EE1BFE2D3A6B5D7E2D2B5EA8EE2C3EDB8FD8EE3B8AE8EE4C5D3B7CFE2D48EE58EE68EE78EE8E2D3B6C8D7F98EE98EEA8EEB8EEC8EEDCDA58EEE8EEF8EF08EF18EF2E2D88EF3E2D6CAFCBFB5D3B9E2D58EF48EF58EF68EF7E2D78EF88EF98EFA8EFB8EFC8EFD8EFE8F408F418F42C1AEC0C88F438F448F458F468F478F48E2DBE2DAC0AA8F498F4AC1CE8F4B8F4C8F4D8F4EE2DC8F4F8F508F518F528F538F548F558F568F578F588F598F5AE2DD8F5BE2DE8F5C8F5D8F5E8F5F8F608F618F628F638F64DBC88F65D1D3CDA28F668F67BDA88F688F698F6ADEC3D8A5BFAADBCDD2ECC6FAC5AA8F6B8F6C8F6DDEC48F6EB1D7DFAE8F6F8F708F71CABD8F72DFB18F73B9AD8F74D2FD8F75B8A5BAEB8F768F77B3DA8F788F798F7AB5DCD5C58F7B8F7C8F7D8F7EC3D6CFD2BBA18F80E5F3E5F28F818F82E5F48F83CDE48F84C8F58F858F868F878F888F898F8A8F8BB5AFC7BF8F8CE5F68F8D8F8E8F8FECB08F908F918F928F938F948F958F968F978F988F998F9A8F9B8F9C8F9D8F9EE5E68F9FB9E9B5B18FA0C2BCE5E8E5E7E5E98FA18FA28FA38FA4D2CD8FA58FA68FA7E1EAD0CE8FA8CDAE8FA9D1E58FAA8FABB2CAB1EB8FACB1F2C5ED8FAD8FAED5C3D3B08FAFE1DC8FB08FB18FB2E1DD8FB3D2DB8FB4B3B9B1CB8FB58FB68FB7CDF9D5F7E1DE8FB8BEB6B4FD8FB9E1DFBADCE1E0BBB2C2C9E1E18FBA8FBB8FBCD0EC8FBDCDBD8FBE8FBFE1E28FC0B5C3C5C7E1E38FC18FC2E1E48FC38FC48FC58FC6D3F98FC78FC88FC98FCA8FCB8FCCE1E58FCDD1AD8FCE8FCFE1E6CEA28FD08FD18FD28FD38FD48FD5E1E78FD6B5C28FD78FD88FD98FDAE1E8BBD58FDB8FDC8FDD8FDE8FDFD0C4E2E0B1D8D2E48FE08FE1E2E18FE28FE3BCC9C8CC8FE4E2E3ECFEECFDDFAF8FE58FE68FE7E2E2D6BECDFCC3A68FE88FE98FEAE3C38FEB8FECD6D2E2E78FED8FEEE2E88FEF8FF0D3C78FF18FF2E2ECBFEC8FF3E2EDE2E58FF48FF5B3C08FF68FF78FF8C4EE8FF98FFAE2EE8FFB8FFCD0C38FFDBAF6E2E9B7DEBBB3CCACCBCBE2E4E2E6E2EAE2EB8FFE90409041E2F790429043E2F4D4F5E2F390449045C5AD9046D5FAC5C2B2C090479048E2EF9049E2F2C1AFCBBC904A904BB5A1E2F9904C904D904EBCB1E2F1D0D4D4B9E2F5B9D6E2F6904F90509051C7D390529053905490559056E2F0905790589059905A905BD7DCEDA1905C905DE2F8905EEDA5E2FECAD1905F906090619062906390649065C1B59066BBD090679068BFD69069BAE3906A906BCBA1906C906D906EEDA6EDA3906F9070EDA29071907290739074BBD6EDA7D0F490759076EDA4BADEB6F7E3A1B6B2CCF1B9A79077CFA2C7A190789079BFD2907A907BB6F1907CE2FAE2FBE2FDE2FCC4D5E3A2907DD3C1907E90809081E3A7C7C49082908390849085CFA490869087E3A9BAB790889089908A908BE3A8908CBBDA908DE3A3908E908F9090E3A4E3AA9091E3A69092CEF2D3C690939094BBBC90959096D4C39097C4FA90989099EDA8D0FCE3A5909AC3F5909BE3ADB1AF909CE3B2909D909E909FBCC290A090A1E3ACB5BF90A290A390A490A590A690A790A890A9C7E9E3B090AA90AB90ACBEAACDEF90AD90AE90AF90B090B1BBF390B290B390B4CCE890B590B6E3AF90B7E3B190B8CFA7E3AE90B9CEA9BBDD90BA90BB90BC90BD90BEB5EBBEE5B2D2B3CD90BFB1B9E3ABB2D1B5ACB9DFB6E890C090C1CFEBE3B790C2BBCC90C390C4C8C7D0CA90C590C690C790C890C9E3B8B3EE90CA90CB90CC90CDEDA990CED3FAD3E490CF90D090D1EDAAE3B9D2E290D290D390D490D590D6E3B590D790D890D990DAD3DE90DB90DC90DD90DEB8D0E3B390DF90E0E3B6B7DF90E1E3B4C0A290E290E390E4E3BA90E590E690E790E890E990EA90EB90EC90ED90EE90EF90F090F190F290F390F490F590F690F7D4B890F890F990FA90FB90FC90FD90FE9140B4C89141E3BB9142BBC59143C9F791449145C9E5914691479148C4BD9149914A914B914C914D914E914FEDAB9150915191529153C2FD9154915591569157BBDBBFAE91589159915A915B915C915D915ECEBF915F916091619162E3BC9163BFB6916491659166916791689169916A916B916C916D916E916F9170917191729173917491759176B1EF91779178D4F79179917A917B917C917DE3BE917E9180918191829183918491859186EDAD918791889189918A918B918C918D918E918FE3BFBAA9EDAC91909191E3BD91929193919491959196919791989199919A919BE3C0919C919D919E919F91A091A1BAB691A291A391A4B6AE91A591A691A791A891A9D0B891AAB0C3EDAE91AB91AC91AD91AE91AFEDAFC0C191B0E3C191B191B291B391B491B591B691B791B891B991BA91BB91BC91BD91BE91BF91C091C1C5B391C291C391C491C591C691C791C891C991CA91CB91CC91CD91CE91CFE3C291D091D191D291D391D491D591D691D791D8DCB291D991DA91DB91DC91DD91DEEDB091DFB8EA91E0CEECEAA7D0E7CAF9C8D6CFB7B3C9CED2BDE491E191E2E3DEBBF2EAA8D5BD91E3C6DDEAA991E491E591E6EAAA91E7EAACEAAB91E8EAAEEAAD91E991EA91EB91ECBDD891EDEAAF91EEC2BE91EF91F091F191F2B4C1B4F791F391F4BBA791F591F691F791F891F9ECE6ECE5B7BFCBF9B1E291FAECE791FB91FC91FDC9C8ECE8ECE991FECAD6DED0B2C5D4FA92409241C6CBB0C7B4F2C8D3924292439244CDD092459246BFB8924792489249924A924B924C924DBFDB924E924FC7A4D6B49250C0A9DED1C9A8D1EFC5A4B0E7B3B6C8C592519252B0E292539254B7F692559256C5FA92579258B6F39259D5D2B3D0BCBC925A925B925CB3AD925D925E925F9260BEF1B0D1926192629263926492659266D2D6CAE3D7A59267CDB6B6B6BFB9D5DB9268B8A7C5D79269926A926BDED2BFD9C2D5C7C0926CBBA4B1A8926D926EC5EA926F9270C5FBCCA79271927292739274B1A7927592769277B5D692789279927AC4A8927BDED3D1BAB3E9927CC3F2927D927EB7F79280D6F4B5A3B2F0C4B4C4E9C0ADDED49281B0E8C5C4C1E09282B9D59283BEDCCDD8B0CE9284CDCFDED6BED0D7BEDED5D5D0B0DD92859286C4E292879288C2A3BCF09289D3B5C0B9C5A1B2A6D4F1928A928BC0A8CAC3DED7D5FC928CB9B0928DC8ADCBA9928EDED9BFBD928F929092919292C6B4D7A7CAB0C4C39293B3D6B9D29294929592969297D6B8EAFCB0B492989299929A929BBFE6929C929DCCF4929E929F92A092A1CDDA92A292A392A4D6BFC2CE92A5CECECCA2D0AEC4D3B5B2DED8D5F5BCB7BBD392A692A7B0A492A8C5B2B4EC92A992AA92ABD5F192AC92ADEAFD92AE92AF92B092B192B292B3DEDACDA692B492B5CDEC92B692B792B892B9CEE6DEDC92BACDB1C0A692BB92BCD7BD92BDDEDBB0C6BAB4C9D3C4F3BEE892BE92BF92C092C1B2B692C292C392C492C592C692C792C892C9C0CCCBF092CABCF1BBBBB5B792CB92CC92CDC5F592CEDEE692CF92D092D1DEE3BEDD92D292D3DEDF92D492D592D692D7B4B7BDDD92D892D9DEE0C4ED92DA92DB92DC92DDCFC692DEB5E092DF92E092E192E2B6DECADAB5F4DEE592E3D5C692E4DEE1CCCDC6FE92E5C5C592E692E792E8D2B492E9BEF292EA92EB92EC92ED92EE92EF92F0C2D392F1CCBDB3B892F2BDD392F3BFD8CDC6D1DAB4EB92F4DEE4DEDDDEE792F5EAFE92F692F7C2B0DEE292F892F9D6C0B5A792FAB2F492FBDEE892FCDEF292FD92FE934093419342DEED9343DEF193449345C8E0934693479348D7E1DEEFC3E8CCE19349B2E5934A934B934CD2BE934D934E934F9350935193529353DEEE9354DEEBCED59355B4A79356935793589359935ABFABBEBE935B935CBDD2935D935E935F9360DEE99361D4AE9362DEDE9363DEEA9364936593669367C0BF9368DEECB2F3B8E9C2A79369936ABDC1936B936C936D936E936FDEF5DEF893709371B2ABB4A493729373B4EAC9A6937493759376937793789379DEF6CBD1937AB8E3937BDEF7DEFA937C937D937E9380DEF9938193829383CCC29384B0E1B4EE93859386938793889389938AE5BA938B938C938D938E938FD0AF93909391B2EB9392EBA19393DEF493949395C9E3DEF3B0DAD2A1B1F79396CCAF939793989399939A939B939C939DDEF0939ECBA4939F93A093A1D5AA93A293A393A493A593A6DEFB93A793A893A993AA93AB93AC93AD93AEB4DD93AFC4A693B093B193B2DEFD93B393B493B593B693B793B893B993BA93BB93BCC3FEC4A1DFA193BD93BE93BF93C093C193C293C3C1CC93C4DEFCBEEF93C5C6B293C693C793C893C993CA93CB93CC93CD93CEB3C5C8F693CF93D0CBBADEFE93D193D2DFA493D393D493D593D6D7B293D793D893D993DA93DBB3B793DC93DD93DE93DFC1C393E093E1C7CBB2A5B4E993E2D7AB93E393E493E593E6C4EC93E7DFA2DFA393E8DFA593E9BAB393EA93EB93ECDFA693EDC0DE93EE93EFC9C393F093F193F293F393F493F593F6B2D9C7E693F7DFA793F8C7DC93F993FA93FB93FCDFA8EBA293FD93FE944094419442CBD3944394449445DFAA9446DFA99447B2C194489449944A944B944C944D944E944F9450945194529453945494559456945794589459945A945B945C945D945E945F9460C5CA94619462946394649465946694679468DFAB9469946A946B946C946D946E946F9470D4DC94719472947394749475C8C19476947794789479947A947B947C947D947E948094819482DFAC94839484948594869487BEF094889489DFADD6A7948A948B948C948DEAB7EBB6CAD5948ED8FCB8C4948FB9A594909491B7C5D5FE94929493949494959496B9CA94979498D0A7F4CD9499949AB5D0949B949CC3F4949DBEC8949E949F94A0EBB7B0BD94A194A2BDCC94A3C1B294A4B1D6B3A894A594A694A7B8D2C9A294A894A9B6D894AA94AB94AC94ADEBB8BEB494AE94AF94B0CAFD94B1C7C394B2D5FB94B394B4B7F394B594B694B794B894B994BA94BB94BC94BD94BE94BF94C094C194C294C3CEC494C494C594C6D5ABB1F394C794C894C9ECB3B0DF94CAECB594CB94CC94CDB6B794CEC1CF94CFF5FAD0B194D094D1D5E594D2CED394D394D4BDEFB3E294D5B8AB94D6D5B694D7EDBD94D8B6CF94D9CBB9D0C294DA94DB94DC94DD94DE94DF94E094E1B7BD94E294E3ECB6CAA994E494E594E6C5D494E7ECB9ECB8C2C3ECB794E894E994EA94EBD0FDECBA94ECECBBD7E594ED94EEECBC94EF94F094F1ECBDC6EC94F294F394F494F594F694F794F894F9CEDE94FABCC894FB94FCC8D5B5A9BEC9D6BCD4E794FD94FED1AED0F1EAB8EAB9EABABAB59540954195429543CAB1BFF595449545CDFA9546954795489549954AEAC0954BB0BAEABE954C954DC0A5954E954F9550EABB9551B2FD9552C3F7BBE8955395549555D2D7CEF4EABF955695579558EABC9559955A955BEAC3955CD0C7D3B3955D955E955F9560B4BA9561C3C1D7F29562956395649565D5D19566CAC79567EAC595689569EAC4EAC7EAC6956A956B956C956D956ED6E7956FCFD495709571EACB9572BBCE9573957495759576957795789579BDFAC9CE957A957BEACC957C957DC9B9CFFEEACAD4CEEACDEACF957E9580CDED9581958295839584EAC99585EACE95869587CEEE9588BBDE9589B3BF958A958B958C958D958EC6D5BEB0CEFA958F95909591C7E79592BEA7EAD095939594D6C7959595969597C1C095989599959AD4DD959BEAD1959C959DCFBE959E959F95A095A1EAD295A295A395A495A5CAEE95A695A795A895A9C5AFB0B595AA95AB95AC95AD95AEEAD495AF95B095B195B295B395B495B595B695B7EAD3F4DF95B895B995BA95BB95BCC4BA95BD95BE95BF95C095C1B1A995C295C395C495C5E5DF95C695C795C895C9EAD595CA95CB95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB95DC95DD95DE95DF95E095E195E295E3CAEF95E4EAD6EAD7C6D895E595E695E795E895E995EA95EB95ECEAD895ED95EEEAD995EF95F095F195F295F395F4D4BB95F5C7FAD2B7B8FC95F695F7EAC295F8B2DC95F995FAC2FC95FBD4F8CCE6D7EE95FC95FD95FE9640964196429643D4C2D3D0EBC3C5F39644B7FE96459646EBD4964796489649CBB7EBDE964AC0CA964B964C964DCDFB964EB3AF964FC6DA965096519652965396549655EBFC9656C4BE9657CEB4C4A9B1BED4FD9658CAF59659D6EC965A965BC6D3B6E4965C965D965E965FBBFA96609661D0E096629663C9B19664D4D3C8A896659666B8CB9667E8BEC9BC96689669E8BB966AC0EED0D3B2C4B4E5966BE8BC966C966DD5C8966E966F967096719672B6C59673E8BDCAF8B8DCCCF5967496759676C0B496779678D1EEE8BFE8C29679967ABABC967BB1ADBDDC967CEABDE8C3967DE8C6967EE8CB9680968196829683E8CC9684CBC9B0E59685BCAB96869687B9B996889689E8C1968ACDF7968BE8CA968C968D968E968FCEF69690969196929693D5ED9694C1D6E8C49695C3B69696B9FBD6A6E8C8969796989699CAE0D4E6969AE8C0969BE8C5E8C7969CC7B9B7E3969DE8C9969EBFDDE8D2969F96A0E8D796A1E8D5BCDCBCCFE8DB96A296A396A496A596A696A796A896A9E8DE96AAE8DAB1FA96AB96AC96AD96AE96AF96B096B196B296B396B4B0D8C4B3B8CCC6E2C8BEC8E196B596B696B7E8CFE8D4E8D696B8B9F1E8D8D7F596B9C4FB96BAE8DC96BB96BCB2E996BD96BE96BFE8D196C096C1BCED96C296C3BFC2E8CDD6F996C4C1F8B2F196C596C696C796C896C996CA96CB96CCE8DF96CDCAC1E8D996CE96CF96D096D1D5A496D2B1EAD5BBE8CEE8D0B6B0E8D396D3E8DDC0B896D4CAF796D5CBA896D696D7C6DCC0F596D896D996DA96DB96DCE8E996DD96DE96DFD0A396E096E196E296E396E496E596E6E8F2D6EA96E796E896E996EA96EB96EC96EDE8E0E8E196EE96EF96F0D1F9BACBB8F996F196F2B8F1D4D4E8EF96F3E8EEE8ECB9F0CCD2E8E6CEA6BFF296F4B0B8E8F1E8F096F5D7C096F6E8E496F7CDA9C9A396F8BBB8BDDBE8EA96F996FA96FB96FC96FD96FE9740974197429743E8E2E8E3E8E5B5B5E8E7C7C5E8EBE8EDBDB0D7AE9744E8F897459746974797489749974A974B974CE8F5974DCDB0E8F6974E974F9750975197529753975497559756C1BA9757E8E89758C3B7B0F09759975A975B975C975D975E975F9760E8F4976197629763E8F7976497659766B9A3976797689769976A976B976C976D976E976F9770C9D2977197729773C3CECEE0C0E69774977597769777CBF39778CCDDD0B59779977ACAE1977BE8F3977C977D977E9780978197829783978497859786BCEC9787E8F997889789978A978B978C978DC3DE978EC6E5978FB9F79790979197929793B0F497949795D7D897969797BCAC9798C5EF9799979A979B979C979DCCC4979E979FE9A697A097A197A297A397A497A597A697A797A897A9C9AD97AAE9A2C0E297AB97AC97ADBFC397AE97AF97B0E8FEB9D797B1E8FB97B297B397B497B5E9A497B697B797B8D2CE97B997BA97BB97BC97BDE9A397BED6B2D7B597BFE9A797C0BDB797C197C297C397C497C597C697C797C897C997CA97CB97CCE8FCE8FD97CD97CE97CFE9A197D097D197D297D397D497D597D697D7CDD697D897D9D2AC97DA97DB97DCE9B297DD97DE97DF97E0E9A997E197E297E3B4AA97E4B4BB97E597E6E9AB97E797E897E997EA97EB97EC97ED97EE97EF97F097F197F297F397F497F597F697F7D0A897F897F9E9A597FA97FBB3FE97FC97FDE9ACC0E397FEE9AA98409841E9B998429843E9B89844984598469847E9AE98489849E8FA984A984BE9A8984C984D984E984F9850BFACE9B1E9BA98519852C2A5985398549855E9AF9856B8C59857E9AD9858D3DCE9B4E9B5E9B79859985A985BE9C7985C985D985E985F98609861C0C6E9C598629863E9B098649865E9BBB0F19866986798689869986A986B986C986D986E986FE9BCD5A598709871E9BE9872E9BF987398749875E9C198769877C1F198789879C8B6987A987B987CE9BD987D987E988098819882E9C29883988498859886988798889889988AE9C3988BE9B3988CE9B6988DBBB1988E988F9890E9C0989198929893989498959896BCF7989798989899E9C4E9C6989A989B989C989D989E989F98A098A198A298A398A498A5E9CA98A698A798A898A9E9CE98AA98AB98AC98AD98AE98AF98B098B198B298B3B2DB98B4E9C898B598B698B798B898B998BA98BB98BC98BD98BEB7AE98BF98C098C198C298C398C498C598C698C798C898C998CAE9CBE9CC98CB98CC98CD98CE98CF98D0D5C198D1C4A398D298D398D498D598D698D7E9D898D8BAE198D998DA98DB98DCE9C998DDD3A398DE98DF98E0E9D498E198E298E398E498E598E698E7E9D7E9D098E898E998EA98EB98ECE9CF98ED98EEC7C198EF98F098F198F298F398F498F598F6E9D298F798F898F998FA98FB98FC98FDE9D9B3C898FEE9D399409941994299439944CFF0994599469947E9CD99489949994A994B994C994D994E994F995099519952B3F79953995499559956995799589959E9D6995A995BE9DA995C995D995ECCB4995F99609961CFAD99629963996499659966996799689969996AE9D5996BE9DCE9DB996C996D996E996F9970E9DE99719972997399749975997699779978E9D19979997A997B997C997D997E99809981E9DD9982E9DFC3CA9983998499859986998799889989998A998B998C998D998E998F9990999199929993999499959996999799989999999A999B999C999D999E999F99A099A199A299A399A499A599A699A799A899A999AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B999BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C999CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D899D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E899E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F5C7B7B4CEBBB6D0C0ECA399F699F7C5B799F899F999FA99FB99FC99FD99FE9A409A419A42D3FB9A439A449A459A46ECA49A47ECA5C6DB9A489A499A4ABFEE9A4B9A4C9A4D9A4EECA69A4F9A50ECA7D0AA9A51C7B89A529A53B8E89A549A559A569A579A589A599A5A9A5B9A5C9A5D9A5E9A5FECA89A609A619A629A639A649A659A669A67D6B9D5FDB4CBB2BDCEE4C6E79A689A69CDE19A6A9A6B9A6C9A6D9A6E9A6F9A709A719A729A739A749A759A769A77B4F59A78CBC0BCDF9A799A7A9A7B9A7CE9E2E9E3D1EAE9E59A7DB4F9E9E49A7ED1B3CAE2B2D09A80E9E89A819A829A839A84E9E6E9E79A859A86D6B39A879A889A89E9E9E9EA9A8A9A8B9A8C9A8D9A8EE9EB9A8F9A909A919A929A939A949A959A96E9EC9A979A989A999A9A9A9B9A9C9A9D9A9EECAFC5B9B6CE9A9FD2F39AA09AA19AA29AA39AA49AA59AA6B5EE9AA7BBD9ECB19AA89AA9D2E39AAA9AAB9AAC9AAD9AAECEE39AAFC4B89AB0C3BF9AB19AB2B6BED8B9B1C8B1CFB1D1C5FE9AB3B1D09AB4C3AB9AB59AB69AB79AB89AB9D5B19ABA9ABB9ABC9ABD9ABE9ABF9AC09AC1EBA4BAC19AC29AC39AC4CCBA9AC59AC69AC7EBA59AC8EBA79AC99ACA9ACBEBA89ACC9ACD9ACEEBA69ACF9AD09AD19AD29AD39AD49AD5EBA9EBABEBAA9AD69AD79AD89AD99ADAEBAC9ADBCACFD8B5C3F19ADCC3A5C6F8EBADC4CA9ADDEBAEEBAFEBB0B7D59ADE9ADF9AE0B7FA9AE1EBB1C7E29AE2EBB39AE3BAA4D1F5B0B1EBB2EBB49AE49AE59AE6B5AAC2C8C7E89AE7EBB59AE8CBAEE3DF9AE99AEAD3C09AEB9AEC9AED9AEED9DB9AEF9AF0CDA1D6ADC7F39AF19AF29AF3D9E0BBE39AF4BABAE3E29AF59AF69AF79AF89AF9CFAB9AFA9AFB9AFCE3E0C9C79AFDBAB99AFE9B409B41D1B4E3E1C8EAB9AFBDADB3D8CEDB9B429B43CCC09B449B459B46E3E8E3E9CDF49B479B489B499B4A9B4BCCAD9B4CBCB39B4DE3EA9B4EE3EB9B4F9B50D0DA9B519B529B53C6FBB7DA9B549B55C7DFD2CACED69B56E3E4E3EC9B57C9F2B3C19B589B59E3E79B5A9B5BC6E3E3E59B5C9B5DEDB3E3E69B5E9B5F9B609B61C9B39B62C5E69B639B649B65B9B59B66C3BB9B67E3E3C5BDC1A4C2D9B2D79B68E3EDBBA6C4AD9B69E3F0BEDA9B6A9B6BE3FBE3F5BAD39B6C9B6D9B6E9B6FB7D0D3CD9B70D6CED5D3B9C1D5B4D1D89B719B729B739B74D0B9C7F69B759B769B77C8AAB2B49B78C3DA9B799B7A9B7BE3EE9B7C9B7DE3FCE3EFB7A8E3F7E3F49B7E9B809B81B7BA9B829B83C5A29B84E3F6C5DDB2A8C6FC9B85C4E09B869B87D7A29B88C0E1E3F99B899B8AE3FAE3FDCCA9E3F39B8BD3BE9B8CB1C3EDB4E3F1E3F29B8DE3F8D0BAC6C3D4F3E3FE9B8E9B8FBDE09B909B91E4A79B929B93E4A69B949B959B96D1F3E4A39B97E4A99B989B999B9AC8F79B9B9B9C9B9D9B9ECFB49B9FE4A8E4AEC2E59BA09BA1B6B49BA29BA39BA49BA59BA69BA7BDF29BA8E4A29BA99BAABAE9E4AA9BAB9BACE4AC9BAD9BAEB6FDD6DEE4B29BAFE4AD9BB09BB19BB2E4A19BB3BBEECDDDC7A2C5C99BB49BB5C1F79BB6E4A49BB7C7B3BDACBDBDE4A59BB8D7C7B2E29BB9E4ABBCC3E4AF9BBABBEBE4B0C5A8E4B19BBB9BBC9BBD9BBED5E3BFA39BBFE4BA9BC0E4B79BC1E4BB9BC29BC3E4BD9BC49BC5C6D69BC69BC7BAC6C0CB9BC89BC99BCAB8A1E4B49BCB9BCC9BCD9BCED4A19BCF9BD0BAA3BDFE9BD19BD29BD3E4BC9BD49BD59BD69BD79BD8CDBF9BD99BDAC4F99BDB9BDCCFFBC9E69BDD9BDED3BF9BDFCFD19BE09BE1E4B39BE2E4B8E4B9CCE99BE39BE49BE59BE69BE7CCCE9BE8C0D4E4B5C1B0E4B6CED09BE9BBC1B5D39BEAC8F3BDA7D5C7C9ACB8A2E4CA9BEB9BECE4CCD1C49BED9BEED2BA9BEF9BF0BAAD9BF19BF2BAD49BF39BF49BF59BF69BF79BF8E4C3B5ED9BF99BFA9BFBD7CDE4C0CFFDE4BF9BFC9BFD9BFEC1DCCCCA9C409C419C429C43CAE79C449C459C469C47C4D79C48CCD4E4C89C499C4A9C4BE4C7E4C19C4CE4C4B5AD9C4D9C4ED3D99C4FE4C69C509C519C529C53D2F9B4E39C54BBB49C559C56C9EE9C57B4BE9C589C599C5ABBEC9C5BD1CD9C5CCCEDEDB59C5D9C5E9C5F9C609C619C629C639C64C7E59C659C669C679C68D4A89C69E4CBD7D5E4C29C6ABDA5E4C59C6B9C6CD3E69C6DE4C9C9F89C6E9C6FE4BE9C709C71D3E59C729C73C7FEB6C99C74D4FCB2B3E4D79C759C769C77CEC29C78E4CD9C79CEBC9C7AB8DB9C7B9C7CE4D69C7DBFCA9C7E9C809C81D3CE9C82C3EC9C839C849C859C869C879C889C899C8AC5C8E4D89C8B9C8C9C8D9C8E9C8F9C909C919C92CDC4E4CF9C939C949C959C96E4D4E4D59C97BAFE9C98CFE69C999C9AD5BF9C9B9C9C9C9DE4D29C9E9C9F9CA09CA19CA29CA39CA49CA59CA69CA79CA8E4D09CA99CAAE4CE9CAB9CAC9CAD9CAE9CAF9CB09CB19CB29CB39CB49CB59CB69CB79CB89CB9CDE5CAAA9CBA9CBB9CBCC0A39CBDBDA6E4D39CBE9CBFB8C89CC09CC19CC29CC39CC4E4E7D4B49CC59CC69CC79CC89CC99CCA9CCBE4DB9CCC9CCD9CCEC1EF9CCF9CD0E4E99CD19CD2D2E79CD39CD4E4DF9CD5E4E09CD69CD7CFAA9CD89CD99CDA9CDBCBDD9CDCE4DAE4D19CDDE4E59CDEC8DCE4E39CDF9CE0C4E7E4E29CE1E4E19CE29CE39CE4B3FCE4E89CE59CE69CE79CE8B5E19CE99CEA9CEBD7CC9CEC9CED9CEEE4E69CEFBBAC9CF0D7D2CCCFEBF89CF1E4E49CF29CF3B9F69CF49CF59CF6D6CDE4D9E4DCC2FAE4DE9CF7C2CBC0C4C2D09CF8B1F5CCB29CF99CFA9CFB9CFC9CFD9CFE9D409D419D429D43B5CE9D449D459D469D47E4EF9D489D499D4A9D4B9D4C9D4D9D4E9D4FC6AF9D509D519D52C6E19D539D54E4F59D559D569D579D589D59C2A99D5A9D5B9D5CC0ECD1DDE4EE9D5D9D5E9D5F9D609D619D629D639D649D659D66C4AE9D679D689D69E4ED9D6A9D6B9D6C9D6DE4F6E4F4C2FE9D6EE4DD9D6FE4F09D70CAFE9D71D5C49D729D73E4F19D749D759D769D779D789D799D7AD1FA9D7B9D7C9D7D9D7E9D809D819D82E4EBE4EC9D839D849D85E4F29D86CEAB9D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D90C5CB9D919D929D93C7B19D94C2BA9D959D969D97E4EA9D989D999D9AC1CA9D9B9D9C9D9D9D9E9D9F9DA0CCB6B3B19DA19DA29DA3E4FB9DA4E4F39DA59DA69DA7E4FA9DA8E4FD9DA9E4FC9DAA9DAB9DAC9DAD9DAE9DAF9DB0B3CE9DB19DB29DB3B3BAE4F79DB49DB5E4F9E4F8C5EC9DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2C0BD9DC39DC49DC59DC6D4E89DC79DC89DC99DCA9DCBE5A29DCC9DCD9DCE9DCF9DD09DD19DD29DD39DD49DD59DD6B0C49DD79DD8E5A49DD99DDAE5A39DDB9DDC9DDD9DDE9DDF9DE0BCA49DE1E5A59DE29DE39DE49DE59DE69DE7E5A19DE89DE99DEA9DEB9DEC9DED9DEEE4FEB1F49DEF9DF09DF19DF29DF39DF49DF59DF69DF79DF89DF9E5A89DFAE5A9E5A69DFB9DFC9DFD9DFE9E409E419E429E439E449E459E469E47E5A7E5AA9E489E499E4A9E4B9E4C9E4D9E4E9E4F9E509E519E529E539E549E559E569E579E589E599E5A9E5B9E5C9E5D9E5E9E5F9E609E619E629E639E649E659E669E679E68C6D99E699E6A9E6B9E6C9E6D9E6E9E6F9E70E5ABE5AD9E719E729E739E749E759E769E77E5AC9E789E799E7A9E7B9E7C9E7D9E7E9E809E819E829E839E849E859E869E879E889E89E5AF9E8A9E8B9E8CE5AE9E8D9E8E9E8F9E909E919E929E939E949E959E969E979E989E999E9A9E9B9E9C9E9D9E9EB9E09E9F9EA0E5B09EA19EA29EA39EA49EA59EA69EA79EA89EA99EAA9EAB9EAC9EAD9EAEE5B19EAF9EB09EB19EB29EB39EB49EB59EB69EB79EB89EB99EBABBF0ECE1C3F09EBBB5C6BBD29EBC9EBD9EBE9EBFC1E9D4EE9EC0BEC49EC19EC29EC3D7C69EC4D4D6B2D3ECBE9EC59EC69EC79EC8EAC19EC99ECA9ECBC2AFB4B69ECC9ECD9ECED1D79ECF9ED09ED1B3B49ED2C8B2BFBBECC09ED39ED4D6CB9ED59ED6ECBFECC19ED79ED89ED99EDA9EDB9EDC9EDD9EDE9EDF9EE09EE19EE29EE3ECC5BEE6CCBFC5DABEBC9EE4ECC69EE5B1FE9EE69EE79EE8ECC4D5A8B5E39EE9ECC2C1B6B3E39EEA9EEBECC3CBB8C0C3CCFE9EEC9EED9EEE9EEFC1D29EF0ECC89EF19EF29EF39EF49EF59EF69EF79EF89EF99EFA9EFB9EFC9EFDBAE6C0D39EFED6F29F409F419F42D1CC9F439F449F459F46BFBE9F47B7B3C9D5ECC7BBE29F48CCCCBDFDC8C89F49CFA99F4A9F4B9F4C9F4D9F4E9F4F9F50CDE99F51C5EB9F529F539F54B7E99F559F569F579F589F599F5A9F5B9F5C9F5D9F5E9F5FD1C9BAB89F609F619F629F639F64ECC99F659F66ECCA9F67BBC0ECCB9F68ECE2B1BAB7D99F699F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F73BDB99F749F759F769F779F789F799F7A9F7BECCCD1E6ECCD9F7C9F7D9F7E9F80C8BB9F819F829F839F849F859F869F879F889F899F8A9F8B9F8C9F8D9F8EECD19F8F9F909F919F92ECD39F93BBCD9F94BCE59F959F969F979F989F999F9A9F9B9F9C9F9D9F9E9F9F9FA09FA1ECCF9FA2C9B79FA39FA49FA59FA69FA7C3BA9FA8ECE3D5D5ECD09FA99FAA9FAB9FAC9FADD6F39FAE9FAF9FB0ECD2ECCE9FB19FB29FB39FB4ECD49FB5ECD59FB69FB7C9BF9FB89FB99FBA9FBB9FBC9FBDCFA89FBE9FBF9FC09FC19FC2D0DC9FC39FC49FC59FC6D1AC9FC79FC89FC99FCAC8DB9FCB9FCC9FCDECD6CEF59FCE9FCF9FD09FD19FD2CAECECDA9FD39FD49FD59FD69FD79FD89FD9ECD99FDA9FDB9FDCB0BE9FDD9FDE9FDF9FE09FE19FE2ECD79FE3ECD89FE49FE59FE6ECE49FE79FE89FE99FEA9FEB9FEC9FED9FEE9FEFC8BC9FF09FF19FF29FF39FF49FF59FF69FF79FF89FF9C1C79FFA9FFB9FFC9FFD9FFEECDCD1E0A040A041A042A043A044A045A046A047A048A049ECDBA04AA04BA04CA04DD4EFA04EECDDA04FA050A051A052A053A054DBC6A055A056A057A058A059A05AA05BA05CA05DA05EECDEA05FA060A061A062A063A064A065A066A067A068A069A06AB1ACA06BA06CA06DA06EA06FA070A071A072A073A074A075A076A077A078A079A07AA07BA07CA07DA07EA080A081ECDFA082A083A084A085A086A087A088A089A08AA08BECE0A08CD7A6A08DC5C0A08EA08FA090EBBCB0AEA091A092A093BEF4B8B8D2AFB0D6B5F9A094D8B3A095CBACA096E3DDA097A098A099A09AA09BA09CA09DC6ACB0E6A09EA09FA0A0C5C6EBB9A0A1A0A2A0A3A0A4EBBAA0A5A0A6A0A7EBBBA0A8A0A9D1C0A0AAC5A3A0ABEAF2A0ACC4B2A0ADC4B5C0CEA0AEA0AFA0B0EAF3C4C1A0B1CEEFA0B2A0B3A0B4A0B5EAF0EAF4A0B6A0B7C9FCA0B8A0B9C7A3A0BAA0BBA0BCCCD8CEFEA0BDA0BEA0BFEAF5EAF6CFACC0E7A0C0A0C1EAF7A0C2A0C3A0C4A0C5A0C6B6BFEAF8A0C7EAF9A0C8EAFAA0C9A0CAEAFBA0CBA0CCA0CDA0CEA0CFA0D0A0D1A0D2A0D3A0D4A0D5A0D6EAF1A0D7A0D8A0D9A0DAA0DBA0DCA0DDA0DEA0DFA0E0A0E1A0E2C8AEE1EBA0E3B7B8E1ECA0E4A0E5A0E6E1EDA0E7D7B4E1EEE1EFD3CCA0E8A0E9A0EAA0EBA0ECA0EDA0EEE1F1BFF1E1F0B5D2A0EFA0F0A0F1B1B7A0F2A0F3A0F4A0F5E1F3E1F2A0F6BAFCA0F7E1F4A0F8A0F9A0FAA0FBB9B7A0FCBED1A0FDA0FEAA40AA41C4FCAA42BADDBDC6AA43AA44AA45AA46AA47AA48E1F5E1F7AA49AA4AB6C0CFC1CAA8E1F6D5F8D3FCE1F8E1FCE1F9AA4BAA4CE1FAC0EAAA4DE1FEE2A1C0C7AA4EAA4FAA50AA51E1FBAA52E1FDAA53AA54AA55AA56AA57AA58E2A5AA59AA5AAA5BC1D4AA5CAA5DAA5EAA5FE2A3AA60E2A8B2FEE2A2AA61AA62AA63C3CDB2C2E2A7E2A6AA64AA65E2A4E2A9AA66AA67E2ABAA68AA69AA6AD0C9D6EDC3A8E2ACAA6BCFD7AA6CAA6DE2AEAA6EAA6FBAEFAA70AA71E9E0E2ADE2AAAA72AA73AA74AA75BBABD4B3AA76AA77AA78AA79AA7AAA7BAA7CAA7DAA7EAA80AA81AA82AA83E2B0AA84AA85E2AFAA86E9E1AA87AA88AA89AA8AE2B1AA8BAA8CAA8DAA8EAA8FAA90AA91AA92E2B2AA93AA94AA95AA96AA97AA98AA99AA9AAA9BAA9CAA9DE2B3CCA1AA9EE2B4AA9FAAA0AB40AB41AB42AB43AB44AB45AB46AB47AB48AB49AB4AAB4BE2B5AB4CAB4DAB4EAB4FAB50D0FEAB51AB52C2CAAB53D3F1AB54CDF5AB55AB56E7E0AB57AB58E7E1AB59AB5AAB5BAB5CBEC1AB5DAB5EAB5FAB60C2EAAB61AB62AB63E7E4AB64AB65E7E3AB66AB67AB68AB69AB6AAB6BCDE6AB6CC3B5AB6DAB6EE7E2BBB7CFD6AB6FC1E1E7E9AB70AB71AB72E7E8AB73AB74E7F4B2A3AB75AB76AB77AB78E7EAAB79E7E6AB7AAB7BAB7CAB7DAB7EE7ECE7EBC9BAAB80AB81D5E4AB82E7E5B7A9E7E7AB83AB84AB85AB86AB87AB88AB89E7EEAB8AAB8BAB8CAB8DE7F3AB8ED6E9AB8FAB90AB91AB92E7EDAB93E7F2AB94E7F1AB95AB96AB97B0E0AB98AB99AB9AAB9BE7F5AB9CAB9DAB9EAB9FABA0AC40AC41AC42AC43AC44AC45AC46AC47AC48AC49AC4AC7F2AC4BC0C5C0EDAC4CAC4DC1F0E7F0AC4EAC4FAC50AC51E7F6CBF6AC52AC53AC54AC55AC56AC57AC58AC59AC5AE8A2E8A1AC5BAC5CAC5DAC5EAC5FAC60D7C1AC61AC62E7FAE7F9AC63E7FBAC64E7F7AC65E7FEAC66E7FDAC67E7FCAC68AC69C1D5C7D9C5FDC5C3AC6AAC6BAC6CAC6DAC6EC7EDAC6FAC70AC71AC72E8A3AC73AC74AC75AC76AC77AC78AC79AC7AAC7BAC7CAC7DAC7EAC80AC81AC82AC83AC84AC85AC86E8A6AC87E8A5AC88E8A7BAF7E7F8E8A4AC89C8F0C9AAAC8AAC8BAC8CAC8DAC8EAC8FAC90AC91AC92AC93AC94AC95AC96E8A9AC97AC98B9E5AC99AC9AAC9BAC9CAC9DD1FEE8A8AC9EAC9FACA0AD40AD41AD42E8AAAD43E8ADE8AEAD44C1A7AD45AD46AD47E8AFAD48AD49AD4AE8B0AD4BAD4CE8ACAD4DE8B4AD4EAD4FAD50AD51AD52AD53AD54AD55AD56AD57AD58E8ABAD59E8B1AD5AAD5BAD5CAD5DAD5EAD5FAD60AD61E8B5E8B2E8B3AD62AD63AD64AD65AD66AD67AD68AD69AD6AAD6BAD6CAD6DAD6EAD6FAD70AD71E8B7AD72AD73AD74AD75AD76AD77AD78AD79AD7AAD7BAD7CAD7DAD7EAD80AD81AD82AD83AD84AD85AD86AD87AD88AD89E8B6AD8AAD8BAD8CAD8DAD8EAD8FAD90AD91AD92B9CFAD93F0ACAD94F0ADAD95C6B0B0EAC8BFAD96CDDFAD97AD98AD99AD9AAD9BAD9CAD9DCECDEAB1AD9EAD9FADA0AE40EAB2AE41C6BFB4C9AE42AE43AE44AE45AE46AE47AE48EAB3AE49AE4AAE4BAE4CD5E7AE4DAE4EAE4FAE50AE51AE52AE53AE54DDF9AE55EAB4AE56EAB5AE57EAB6AE58AE59AE5AAE5BB8CADFB0C9F5AE5CCCF0AE5DAE5EC9FAAE5FAE60AE61AE62AE63C9FBAE64AE65D3C3CBA6AE66B8A6F0AEB1C2AE67E5B8CCEFD3C9BCD7C9EAAE68B5E7AE69C4D0B5E9AE6AEEAEBBADAE6BAE6CE7DEAE6DEEAFAE6EAE6FAE70AE71B3A9AE72AE73EEB2AE74AE75EEB1BDE7AE76EEB0CEB7AE77AE78AE79AE7AC5CFAE7BAE7CAE7DAE7EC1F4DBCEEEB3D0F3AE80AE81AE82AE83AE84AE85AE86AE87C2D4C6E8AE88AE89AE8AB7ACAE8BAE8CAE8DAE8EAE8FAE90AE91EEB4AE92B3EBAE93AE94AE95BBFBEEB5AE96AE97AE98AE99AE9AE7DCAE9BAE9CAE9DEEB6AE9EAE9FBDAEAEA0AF40AF41AF42F1E2AF43AF44AF45CAE8AF46D2C9F0DAAF47F0DBAF48F0DCC1C6AF49B8EDBECEAF4AAF4BF0DEAF4CC5B1F0DDD1F1AF4DF0E0B0CCBDEAAF4EAF4FAF50AF51AF52D2DFF0DFAF53B4AFB7E8F0E6F0E5C6A3F0E1F0E2B4C3AF54AF55F0E3D5EEAF56AF57CCDBBED2BCB2AF58AF59AF5AF0E8F0E7F0E4B2A1AF5BD6A2D3B8BEB7C8ACAF5CAF5DF0EAAF5EAF5FAF60AF61D1F7AF62D6CCBADBF0E9AF63B6BBAF64AF65CDB4AF66AF67C6A6AF68AF69AF6AC1A1F0EBF0EEAF6BF0EDF0F0F0ECAF6CBBBEF0EFAF6DAF6EAF6FAF70CCB5F0F2AF71AF72B3D5AF73AF74AF75AF76B1D4AF77AF78F0F3AF79AF7AF0F4F0F6B4E1AF7BF0F1AF7CF0F7AF7DAF7EAF80AF81F0FAAF82F0F8AF83AF84AF85F0F5AF86AF87AF88AF89F0FDAF8AF0F9F0FCF0FEAF8BF1A1AF8CAF8DAF8ECEC1F1A4AF8FF1A3AF90C1F6F0FBCADDAF91AF92B4F1B1F1CCB1AF93F1A6AF94AF95F1A7AF96AF97F1ACD5CEF1A9AF98AF99C8B3AF9AAF9BAF9CF1A2AF9DF1ABF1A8F1A5AF9EAF9FF1AAAFA0B040B041B042B043B044B045B046B0A9F1ADB047B048B049B04AB04BB04CF1AFB04DF1B1B04EB04FB050B051B052F1B0B053F1AEB054B055B056B057D1A2B058B059B05AB05BB05CB05DB05EF1B2B05FB060B061F1B3B062B063B064B065B066B067B068B069B9EFB06AB06BB5C7B06CB0D7B0D9B06DB06EB06FD4EDB070B5C4B071BDD4BBCAF0A7B072B073B8DEB074B075F0A8B076B077B0A8B078F0A9B079B07ACDEEB07BB07CF0AAB07DB07EB080B081B082B083B084B085B086B087F0ABB088B089B08AB08BB08CB08DB08EB08FB090C6A4B091B092D6E5F1E4B093F1E5B094B095B096B097B098B099B09AB09BB09CB09DC3F3B09EB09FD3DBB0A0B140D6D1C5E8B141D3AFB142D2E6B143B144EEC1B0BBD5B5D1CEBCE0BAD0B145BFF8B146B8C7B5C1C5CCB147B148CAA2B149B14AB14BC3CBB14CB14DB14EB14FB150EEC2B151B152B153B154B155B156B157B158C4BFB6A2B159EDECC3A4B15AD6B1B15BB15CB15DCFE0EDEFB15EB15FC5CEB160B6DCB161B162CAA1B163B164EDEDB165B166EDF0EDF1C3BCB167BFB4B168EDEEB169B16AB16BB16CB16DB16EB16FB170B171B172B173EDF4EDF2B174B175B176B177D5E6C3DFB178EDF3B179B17AB17BEDF6B17CD5A3D1A3B17DB17EB180EDF5B181C3D0B182B183B184B185B186EDF7BFF4BEECEDF8B187CCF7B188D1DBB189B18AB18BD7C5D5F6B18CEDFCB18DB18EB18FEDFBB190B191B192B193B194B195B196B197EDF9EDFAB198B199B19AB19BB19CB19DB19EB19FEDFDBEA6B1A0B240B241B242B243CBAFEEA1B6BDB244EEA2C4C0B245EDFEB246B247BDDEB2C7B248B249B24AB24BB24CB24DB24EB24FB250B251B252B253B6C3B254B255B256EEA5D8BAEEA3EEA6B257B258B259C3E9B3F2B25AB25BB25CB25DB25EB25FEEA7EEA4CFB9B260B261EEA8C2F7B262B263B264B265B266B267B268B269B26AB26BB26CB26DEEA9EEAAB26EDEABB26FB270C6B3B271C7C6B272D6F5B5C9B273CBB2B274B275B276EEABB277B278CDABB279EEACB27AB27BB27CB27DB27ED5B0B280EEADB281F6C4B282B283B284B285B286B287B288B289B28AB28BB28CB28DB28EDBC7B28FB290B291B292B293B294B295B296B297B4A3B298B299B29AC3ACF1E6B29BB29CB29DB29EB29FCAB8D2D3B2A0D6AAB340EFF2B341BED8B342BDC3EFF3B6CCB0ABB343B344B345B346CAAFB347B348EDB6B349EDB7B34AB34BB34CB34DCEF9B7AFBFF3EDB8C2EBC9B0B34EB34FB350B351B352B353EDB9B354B355C6F6BFB3B356B357B358EDBCC5F8B359D1D0B35AD7A9EDBAEDBBB35BD1E2B35CEDBFEDC0B35DEDC4B35EB35FB360EDC8B361EDC6EDCED5E8B362EDC9B363B364EDC7EDBEB365B366C5E9B367B368B369C6C6B36AB36BC9E9D4D2EDC1EDC2EDC3EDC5B36CC0F9B36DB4A1B36EB36FB370B371B9E8B372EDD0B373B374B375B376EDD1B377EDCAB378EDCFB379CEF8B37AB37BCBB6EDCCEDCDB37CB37DB37EB380B381CFF5B382B383B384B385B386B387B388B389B38AB38BB38CB38DEDD2C1F2D3B2EDCBC8B7B38EB38FB390B391B392B393B394B395BCEFB396B397B398B399C5F0B39AB39BB39CB39DB39EB39FB3A0B440B441B442EDD6B443B5EFB444B445C2B5B0ADCBE9B446B447B1AEB448EDD4B449B44AB44BCDEBB5E2B44CEDD5EDD3EDD7B44DB44EB5FAB44FEDD8B450EDD9B451EDDCB452B1CCB453B454B455B456B457B458B459B45AC5F6BCEEEDDACCBCB2EAB45BB45CB45DB45EEDDBB45FB460B461B462C4EBB463B464B4C5B465B466B467B0F5B468B469B46AEDDFC0DAB4E8B46BB46CB46DB46EC5CDB46FB470B471EDDDBFC4B472B473B474EDDEB475B476B477B478B479B47AB47BB47CB47DB47EB480B481B482B483C4A5B484B485B486EDE0B487B488B489B48AB48BEDE1B48CEDE3B48DB48EC1D7B48FB490BBC7B491B492B493B494B495B496BDB8B497B498B499EDE2B49AB49BB49CB49DB49EB49FB4A0B540B541B542B543B544B545EDE4B546B547B548B549B54AB54BB54CB54DB54EB54FEDE6B550B551B552B553B554EDE5B555B556B557B558B559B55AB55BB55CB55DB55EB55FB560B561B562B563EDE7B564B565B566B567B568CABEECEAC0F1B569C9E7B56AECEBC6EEB56BB56CB56DB56EECECB56FC6EDECEDB570B571B572B573B574B575B576B577B578ECF0B579B57AD7E6ECF3B57BB57CECF1ECEEECEFD7A3C9F1CBEEECF4B57DECF2B57EB580CFE9B581ECF6C6B1B582B583B584B585BCC0B586ECF5B587B588B589B58AB58BB58CB58DB5BBBBF6B58EECF7B58FB590B591B592B593D9F7BDFBB594B595C2BBECF8B596B597B598B599ECF9B59AB59BB59CB59DB8A3B59EB59FB5A0B640B641B642B643B644B645B646ECFAB647B648B649B64AB64BB64CB64DB64EB64FB650B651B652ECFBB653B654B655B656B657B658B659B65AB65BB65CB65DECFCB65EB65FB660B661B662D3EDD8AEC0EBB663C7DDBACCB664D0E3CBBDB665CDBAB666B667B8D1B668B669B1FCB66AC7EFB66BD6D6B66CB66DB66EBFC6C3EBB66FB670EFF5B671B672C3D8B673B674B675B676B677B678D7E2B679B67AB67BEFF7B3D3B67CC7D8D1EDB67DD6C8B67EEFF8B680EFF6B681BBFDB3C6B682B683B684B685B686B687B688BDD5B689B68AD2C6B68BBBE0B68CB68DCFA1B68EEFFCEFFBB68FB690EFF9B691B692B693B694B3CCB695C9D4CBB0B696B697B698B699B69AEFFEB69BB69CB0DEB69DB69ED6C9B69FB6A0B740EFFDB741B3EDB742B743F6D5B744B745B746B747B748B749B74AB74BB74CB74DB74EB74FB750B751B752CEC8B753B754B755F0A2B756F0A1B757B5BEBCDABBFCB758B8E5B759B75AB75BB75CB75DB75EC4C2B75FB760B761B762B763B764B765B766B767B768F0A3B769B76AB76BB76CB76DCBEBB76EB76FB770B771B772B773B774B775B776B777B778B779B77AB77BB77CB77DB77EB780B781B782B783B784B785B786F0A6B787B788B789D1A8B78ABEBFC7EEF1B6F1B7BFD5B78BB78CB78DB78EB4A9F1B8CDBBB78FC7D4D5ADB790F1B9B791F1BAB792B793B794B795C7CFB796B797B798D2A4D6CFB799B79AF1BBBDD1B4B0BEBDB79BB79CB79DB4DCCED1B79EBFDFF1BDB79FB7A0B840B841BFFAF1BCB842F1BFB843B844B845F1BEF1C0B846B847B848B849B84AF1C1B84BB84CB84DB84EB84FB850B851B852B853B854B855C1FEB856B857B858B859B85AB85BB85CB85DB85EB85FB860C1A2B861B862B863B864B865B866B867B868B869B86ACAFAB86BB86CD5BEB86DB86EB86FB870BEBABEB9D5C2B871B872BFA2B873CDAFF1B5B874B875B876B877B878B879BDDFB87AB6CBB87BB87CB87DB87EB880B881B882B883B884D6F1F3C3B885B886F3C4B887B8CDB888B889B88AF3C6F3C7B88BB0CAB88CF3C5B88DF3C9CBF1B88EB88FB890F3CBB891D0A6B892B893B1CAF3C8B894B895B896F3CFB897B5D1B898B899F3D7B89AF3D2B89BB89CB89DF3D4F3D3B7FBB89EB1BFB89FF3CEF3CAB5DAB8A0F3D0B940B941F3D1B942F3D5B943B944B945B946F3CDB947BCE3B948C1FDB949F3D6B94AB94BB94CB94DB94EB94FF3DAB950F3CCB951B5C8B952BDEEF3DCB953B954B7A4BFF0D6FECDB2B955B4F0B956B2DFB957F3D8B958F3D9C9B8B959F3DDB95AB95BF3DEB95CF3E1B95DB95EB95FB960B961B962B963B964B965B966B967F3DFB968B969F3E3F3E2B96AB96BF3DBB96CBFEAB96DB3EFB96EF3E0B96FB970C7A9B971BCF2B972B973B974B975F3EBB976B977B978B979B97AB97BB97CB9BFB97DB97EF3E4B980B981B982B2ADBBFEB983CBE3B984B985B986B987F3EDF3E9B988B989B98AB9DCF3EEB98BB98CB98DF3E5F3E6F3EAC2E1F3ECF3EFF3E8BCFDB98EB98FB990CFE4B991B992F3F0B993B994B995F3E7B996B997B998B999B99AB99BB99CB99DF3F2B99EB99FB9A0BA40D7ADC6AABA41BA42BA43BA44F3F3BA45BA46BA47BA48F3F1BA49C2A8BA4ABA4BBA4CBA4DBA4EB8DDF3F5BA4FBA50F3F4BA51BA52BA53B4DBBA54BA55BA56F3F6F3F7BA57BA58BA59F3F8BA5ABA5BBA5CC0BABA5DBA5EC0E9BA5FBA60BA61BA62BA63C5F1BA64BA65BA66BA67F3FBBA68F3FABA69BA6ABA6BBA6CBA6DBA6EBA6FBA70B4D8BA71BA72BA73F3FEF3F9BA74BA75F3FCBA76BA77BA78BA79BA7ABA7BF3FDBA7CBA7DBA7EBA80BA81BA82BA83BA84F4A1BA85BA86BA87BA88BA89BA8AF4A3BBC9BA8BBA8CF4A2BA8DBA8EBA8FBA90BA91BA92BA93BA94BA95BA96BA97BA98BA99F4A4BA9ABA9BBA9CBA9DBA9EBA9FB2BEF4A6F4A5BAA0BB40BB41BB42BB43BB44BB45BB46BB47BB48BB49BCAEBB4ABB4BBB4CBB4DBB4EBB4FBB50BB51BB52BB53BB54BB55BB56BB57BB58BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB61BB62BB63BB64BB65BB66BB67BB68BB69BB6ABB6BBB6CBB6DBB6EC3D7D9E1BB6FBB70BB71BB72BB73BB74C0E0F4CCD7D1BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB80B7DBBB81BB82BB83BB84BB85BB86BB87F4CEC1A3BB88BB89C6C9BB8AB4D6D5B3BB8BBB8CBB8DF4D0F4CFF4D1CBDABB8EBB8FF4D2BB90D4C1D6E0BB91BB92BB93BB94B7E0BB95BB96BB97C1B8BB98BB99C1BBF4D3BEACBB9ABB9BBB9CBB9DBB9EB4E2BB9FBBA0F4D4F4D5BEABBC40BC41F4D6BC42BC43BC44F4DBBC45F4D7F4DABC46BAFDBC47F4D8F4D9BC48BC49BC4ABC4BBC4CBC4DBC4EB8E2CCC7F4DCBC4FB2DABC50BC51C3D3BC52BC53D4E3BFB7BC54BC55BC56BC57BC58BC59BC5AF4DDBC5BBC5CBC5DBC5EBC5FBC60C5B4BC61BC62BC63BC64BC65BC66BC67BC68F4E9BC69BC6ACFB5BC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78CEC9BC79BC7ABC7BBC7CBC7DBC7EBC80BC81BC82BC83BC84BC85BC86BC87BC88BC89BC8ABC8BBC8CBC8DBC8ECBD8BC8FCBF7BC90BC91BC92BC93BDF4BC94BC95BC96D7CFBC97BC98BC99C0DBBC9ABC9BBC9CBC9DBC9EBC9FBCA0BD40BD41BD42BD43BD44BD45BD46BD47BD48BD49BD4ABD4BBD4CBD4DBD4EBD4FBD50BD51BD52BD53BD54BD55BD56BD57BD58BD59BD5ABD5BBD5CBD5DBD5EBD5FBD60BD61BD62BD63BD64BD65BD66BD67BD68BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71BD72BD73BD74BD75BD76D0F5BD77BD78BD79BD7ABD7BBD7CBD7DBD7EF4EABD80BD81BD82BD83BD84BD85BD86BD87BD88BD89BD8ABD8BBD8CBD8DBD8EBD8FBD90BD91BD92BD93BD94BD95BD96BD97BD98BD99BD9ABD9BBD9CBD9DBD9EBD9FBDA0BE40BE41BE42BE43BE44BE45BE46BE47BE48BE49BE4ABE4BBE4CF4EBBE4DBE4EBE4FBE50BE51BE52BE53F4ECBE54BE55BE56BE57BE58BE59BE5ABE5BBE5CBE5DBE5EBE5FBE60BE61BE62BE63BE64BE65BE66BE67BE68BE69BE6ABE6BBE6CBE6DBE6EBE6FBE70BE71BE72BE73BE74BE75BE76BE77BE78BE79BE7ABE7BBE7CBE7DBE7EBE80BE81BE82BE83BE84BE85BE86BE87BE88BE89BE8ABE8BBE8CBE8DBE8EBE8FBE90BE91BE92BE93BE94BE95BE96BE97BE98BE99BE9ABE9BBE9CBE9DBE9EBE9FBEA0BF40BF41BF42BF43BF44BF45BF46BF47BF48BF49BF4ABF4BBF4CBF4DBF4EBF4FBF50BF51BF52BF53BF54BF55BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF80F7E3BF81BF82BF83BF84BF85B7B1BF86BF87BF88BF89BF8AF4EDBF8BBF8CBF8DBF8EBF8FBF90BF91BF92BF93BF94BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9DBF9EBF9FBFA0C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04EC04FC050C051C052C053C054C055C056C057C058C059C05AC05BC05CC05DC05EC05FC060C061C062C063D7EBC064C065C066C067C068C069C06AC06BC06CC06DC06EC06FC070C071C072C073C074C075C076C077C078C079C07AC07BF4EEC07CC07DC07EE6F9BEC0E6FABAECE6FBCFCBE6FCD4BCBCB6E6FDE6FEBCCDC8D2CEB3E7A1C080B4BFE7A2C9B4B8D9C4C9C081D7DDC2DAB7D7D6BDCEC6B7C4C082C083C5A6E7A3CFDFE7A4E7A5E7A6C1B7D7E9C9F0CFB8D6AFD6D5E7A7B0EDE7A8E7A9C9DCD2EFBEADE7AAB0F3C8DEBDE1E7ABC8C6C084E7ACBBE6B8F8D1A4E7ADC2E7BEF8BDCACDB3E7AEE7AFBEEED0E5C085CBE7CCD0BCCCE7B0BCA8D0F7E7B1C086D0F8E7B2E7B3B4C2E7B4E7B5C9FECEACC3E0E7B7B1C1B3F1C087E7B8E7B9D7DBD5C0E7BAC2CCD7BAE7BBE7BCE7BDBCEAC3E5C0C2E7BEE7BFBCA9C088E7C0E7C1E7B6B6D0E7C2C089E7C3E7C4BBBAB5DEC2C6B1E0E7C5D4B5E7C6B8BFE7C8E7C7B7ECC08AE7C9B2F8E7CAE7CBE7CCE7CDE7CEE7CFE7D0D3A7CBF5E7D1E7D2E7D3E7D4C9C9E7D5E7D6E7D7E7D8E7D9BDC9E7DAF3BEC08BB8D7C08CC8B1C08DC08EC08FC090C091C092C093F3BFC094F3C0F3C1C095C096C097C098C099C09AC09BC09CC09DC09EB9DECDF8C09FC0A0D8E8BAB1C140C2DEEEB7C141B7A3C142C143C144C145EEB9C146EEB8B0D5C147C148C149C14AC14BEEBBD5D6D7EFC14CC14DC14ED6C3C14FC150EEBDCAF0C151EEBCC152C153C154C155EEBEC156C157C158C159EEC0C15AC15BEEBFC15CC15DC15EC15FC160C161C162C163D1F2C164C7BCC165C3C0C166C167C168C169C16AB8E1C16BC16CC16DC16EC16FC1E7C170C171F4C6D0DFF4C7C172CFDBC173C174C8BAC175C176F4C8C177C178C179C17AC17BC17CC17DF4C9F4CAC17EF4CBC180C181C182C183C184D9FAB8FEC185C186E5F1D3F0C187F4E0C188CECCC189C18AC18BB3E1C18CC18DC18EC18FF1B4C190D2EEC191F4E1C192C193C194C195C196CFE8F4E2C197C198C7CCC199C19AC19BC19CC19DC19EB5D4B4E4F4E4C19FC1A0C240F4E3F4E5C241C242F4E6C243C244C245C246F4E7C247BAB2B0BFC248F4E8C249C24AC24BC24CC24DC24EC24FB7ADD2EDC250C251C252D2ABC0CFC253BFBCEBA3D5DFEAC8C254C255C256C257F1F3B6F8CBA3C258C259C4CDC25AF1E7C25BF1E8B8FBF1E9BAC4D4C5B0D2C25CC25DF1EAC25EC25FC260F1EBC261F1ECC262C263F1EDF1EEF1EFF1F1F1F0C5D5C264C265C266C267C268C269F1F2C26AB6FAC26BF1F4D2AEDEC7CBCAC26CC26DB3DCC26EB5A2C26FB9A2C270C271C4F4F1F5C272C273F1F6C274C275C276C1C4C1FBD6B0F1F7C277C278C279C27AF1F8C27BC1AAC27CC27DC27EC6B8C280BEDBC281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EF1F9B4CFC28FC290C291C292C293C294F1FAC295C296C297C298C299C29AC29BC29CC29DC29EC29FC2A0C340EDB2EDB1C341C342CBE0D2DEC343CBC1D5D8C344C8E2C345C0DFBCA1C346C347C348C349C34AC34BEBC1C34CC34DD0A4C34ED6E2C34FB6C7B8D8EBC0B8CEC350EBBFB3A6B9C9D6ABC351B7F4B7CAC352C353C354BCE7B7BEEBC6C355EBC7B0B9BFCFC356EBC5D3FDC357EBC8C358C359EBC9C35AC35BB7CEC35CEBC2EBC4C9F6D6D7D5CDD0B2EBCFCEB8EBD0C35DB5A8C35EC35FC360C361C362B1B3EBD2CCA5C363C364C365C366C367C368C369C5D6EBD3C36AEBD1C5DFEBCECAA4EBD5B0FBC36BC36CBAFAC36DC36ED8B7F1E3C36FEBCAEBCBEBCCEBCDEBD6E6C0EBD9C370BFE8D2C8EBD7EBDCB8ECEBD8C371BDBAC372D0D8C373B0B7C374EBDDC4DCC375C376C377C378D6ACC379C37AC37BB4E0C37CC37DC2F6BCB9C37EC380EBDAEBDBD4E0C6EAC4D4EBDFC5A7D9F5C381B2B1C382EBE4C383BDC5C384C385C386EBE2C387C388C389C38AC38BC38CC38DC38EC38FC390C391C392C393EBE3C394C395B8ACC396CDD1EBE5C397C398C399EBE1C39AC1B3C39BC39CC39DC39EC39FC6A2C3A0C440C441C442C443C444C445CCF3C446EBE6C447C0B0D2B8EBE7C448C449C44AB8AFB8ADC44BEBE8C7BBCDF3C44CC44DC44EEBEAEBEBC44FC450C451C452C453EBEDC454C455C456C457D0C8C458EBF2C459EBEEC45AC45BC45CEBF1C8F9C45DD1FCEBECC45EC45FEBE9C460C461C462C463B8B9CFD9C4E5EBEFEBF0CCDACDC8B0F2C464EBF6C465C466C467C468C469EBF5C46AB2B2C46BC46CC46DC46EB8E0C46FEBF7C470C471C472C473C474C475B1ECC476C477CCC5C4A4CFA5C478C479C47AC47BC47CEBF9C47DC47EECA2C480C5F2C481EBFAC482C483C484C485C486C487C488C489C9C5C48AC48BC48CC48DC48EC48FE2DFEBFEC490C491C492C493CDCEECA1B1DBD3B7C494C495D2DCC496C497C498EBFDC499EBFBC49AC49BC49CC49DC49EC49FC4A0C540C541C542C543C544C545C546C547C548C549C54AC54BC54CC54DC54EB3BCC54FC550C551EAB0C552C553D7D4C554F4ABB3F4C555C556C557C558C559D6C1D6C2C55AC55BC55CC55DC55EC55FD5E9BECAC560F4A7C561D2A8F4A8F4A9C562F4AABECBD3DFC563C564C565C566C567C9E0C9E1C568C569F3C2C56ACAE6C56BCCF2C56CC56DC56EC56FC570C571E2B6CBB4C572CEE8D6DBC573F4ADF4AEF4AFC574C575C576C577F4B2C578BABDF4B3B0E3F4B0C579F4B1BDA2B2D5C57AF4B6F4B7B6E6B2B0CFCFF4B4B4ACC57BF4B5C57CC57DF4B8C57EC580C581C582C583F4B9C584C585CDA7C586F4BAC587F4BBC588C589C58AF4BCC58BC58CC58DC58EC58FC590C591C592CBD2C593F4BDC594C595C596C597F4BEC598C599C59AC59BC59CC59DC59EC59FF4BFC5A0C640C641C642C643F4DEC1BCBCE8C644C9ABD1DEE5F5C645C646C647C648DCB3D2D5C649C64ADCB4B0ACDCB5C64BC64CBDDAC64DDCB9C64EC64FC650D8C2C651DCB7D3F3C652C9D6DCBADCB6C653DCBBC3A2C654C655C656C657DCBCDCC5DCBDC658C659CEDFD6A5C65ADCCFC65BDCCDC65CC65DDCD2BDE6C2ABC65EDCB8DCCBDCCEDCBEB7D2B0C5DCC7D0BEDCC1BBA8C65FB7BCDCCCC660C661DCC6DCBFC7DBC662C663C664D1BFDCC0C665C666DCCAC667C668DCD0C669C66ACEADDCC2C66BDCC3DCC8DCC9B2D4DCD1CBD5C66CD4B7DCDBDCDFCCA6DCE6C66DC3E7DCDCC66EC66FBFC1DCD9C670B0FAB9B6DCE5DCD3C671DCC4DCD6C8F4BFE0C672C673C674C675C9BBC676C677C678B1BDC679D3A2C67AC67BDCDAC67CC67DDCD5C67EC6BBC680DCDEC681C682C683C684C685D7C2C3AFB7B6C7D1C3A9DCE2DCD8DCEBDCD4C686C687DCDDC688BEA5DCD7C689DCE0C68AC68BDCE3DCE4C68CDCF8C68DC68EDCE1DDA2DCE7C68FC690C691C692C693C694C695C696C697C698BCEBB4C4C699C69AC3A3B2E7DCFAC69BDCF2C69CDCEFC69DDCFCDCEED2F0B2E8C69EC8D7C8E3DCFBC69FDCEDC6A0C740C741DCF7C742C743DCF5C744C745BEA3DCF4C746B2DDC747C748C749C74AC74BDCF3BCF6DCE8BBC4C74CC0F3C74DC74EC74FC750C751BCD4DCE9DCEAC752DCF1DCF6DCF9B5B4C753C8D9BBE7DCFEDCFDD3ABDDA1DDA3DDA5D2F1DDA4DDA6DDA7D2A9C754C755C756C757C758C759C75ABAC9DDA9C75BC75CDDB6DDB1DDB4C75DC75EC75FC760C761C762C763DDB0C6CEC764C765C0F2C766C767C768C769C9AFC76AC76BC76CDCECDDAEC76DC76EC76FC770DDB7C771C772DCF0DDAFC773DDB8C774DDACC775C776C777C778C779C77AC77BDDB9DDB3DDADC4AAC77CC77DC77EC780DDA8C0B3C1ABDDAADDABC781DDB2BBF1DDB5D3A8DDBAC782DDBBC3A7C783C784DDD2DDBCC785C786C787DDD1C788B9BDC789C78ABED5C78BBEFAC78CC78DBACAC78EC78FC790C791DDCAC792DDC5C793DDBFC794C795C796B2CBDDC3C797DDCBB2A4DDD5C798C799C79ADDBEC79BC79CC79DC6D0DDD0C79EC79FC7A0C840C841DDD4C1E2B7C6C842C843C844C845C846DDCEDDCFC847C848C849DDC4C84AC84BC84CDDBDC84DDDCDCCD1C84EDDC9C84FC850C851C852DDC2C3C8C6BCCEAEDDCCC853DDC8C854C855C856C857C858C859DDC1C85AC85BC85CDDC6C2DCC85DC85EC85FC860C861C862D3A9D3AADDD3CFF4C8F8C863C864C865C866C867C868C869C86ADDE6C86BC86CC86DC86EC86FC870DDC7C871C872C873DDE0C2E4C874C875C876C877C878C879C87AC87BDDE1C87CC87DC87EC880C881C882C883C884C885C886DDD7C887C888C889C88AC88BD6F8C88CDDD9DDD8B8F0DDD6C88DC88EC88FC890C6CFC891B6ADC892C893C894C895C896DDE2C897BAF9D4E1DDE7C898C899C89AB4D0C89BDDDAC89CBFFBDDE3C89DDDDFC89EDDDDC89FC8A0C940C941C942C943C944B5D9C945C946C947C948DDDBDDDCDDDEC949BDAFDDE4C94ADDE5C94BC94CC94DC94EC94FC950C951C952DDF5C953C3C9C954C955CBE2C956C957C958C959DDF2C95AC95BC95CC95DC95EC95FC960C961C962C963C964C965C966D8E1C967C968C6D1C969DDF4C96AC96BC96CD5F4DDF3DDF0C96DC96EDDECC96FDDEFC970DDE8C971C972D0EEC973C974C975C976C8D8DDEEC977C978DDE9C979C97ADDEACBF2C97BDDEDC97CC97DB1CDC97EC980C981C982C983C984C0B6C985BCBBDDF1C986C987DDF7C988DDF6DDEBC989C98AC98BC98CC98DC5EEC98EC98FC990DDFBC991C992C993C994C995C996C997C998C999C99AC99BDEA4C99CC99DDEA3C99EC99FC9A0CA40CA41CA42CA43CA44CA45CA46CA47CA48DDF8CA49CA4ACA4BCA4CC3EFCA4DC2FBCA4ECA4FCA50D5E1CA51CA52CEB5CA53CA54CA55CA56DDFDCA57B2CCCA58CA59CA5ACA5BCA5CCA5DCA5ECA5FCA60C4E8CADFCA61CA62CA63CA64CA65CA66CA67CA68CA69CA6AC7BEDDFADDFCDDFEDEA2B0AAB1CECA6BCA6CCA6DCA6ECA6FDEACCA70CA71CA72CA73DEA6BDB6C8EFCA74CA75CA76CA77CA78CA79CA7ACA7BCA7CCA7DCA7EDEA1CA80CA81DEA5CA82CA83CA84CA85DEA9CA86CA87CA88CA89CA8ADEA8CA8BCA8CCA8DDEA7CA8ECA8FCA90CA91CA92CA93CA94CA95CA96DEADCA97D4CCCA98CA99CA9ACA9BDEB3DEAADEAECA9CCA9DC0D9CA9ECA9FCAA0CB40CB41B1A1DEB6CB42DEB1CB43CB44CB45CB46CB47CB48CB49DEB2CB4ACB4BCB4CCB4DCB4ECB4FCB50CB51CB52CB53CB54D1A6DEB5CB55CB56CB57CB58CB59CB5ACB5BDEAFCB5CCB5DCB5EDEB0CB5FD0BDCB60CB61CB62DEB4CAEDDEB9CB63CB64CB65CB66CB67CB68DEB8CB69DEB7CB6ACB6BCB6CCB6DCB6ECB6FCB70DEBBCB71CB72CB73CB74CB75CB76CB77BDE5CB78CB79CB7ACB7BCB7CB2D8C3EACB7DCB7EDEBACB80C5BACB81CB82CB83CB84CB85CB86DEBCCB87CB88CB89CB8ACB8BCB8CCB8DCCD9CB8ECB8FCB90CB91B7AACB92CB93CB94CB95CB96CB97CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FCBA0CC40CC41D4E5CC42CC43CC44DEBDCC45CC46CC47CC48CC49DEBFCC4ACC4BCC4CCC4DCC4ECC4FCC50CC51CC52CC53CC54C4A2CC55CC56CC57CC58DEC1CC59CC5ACC5BCC5CCC5DCC5ECC5FCC60CC61CC62CC63CC64CC65CC66CC67CC68DEBECC69DEC0CC6ACC6BCC6CCC6DCC6ECC6FCC70CC71CC72CC73CC74CC75CC76CC77D5BACC78CC79CC7ADEC2CC7BCC7CCC7DCC7ECC80CC81CC82CC83CC84CC85CC86CC87CC88CC89CC8ACC8BF2AEBBA2C2B2C5B0C2C7CC8CCC8DF2AFCC8ECC8FCC90CC91CC92D0E9CC93CC94CC95D3DDCC96CC97CC98EBBDCC99CC9ACC9BCC9CCC9DCC9ECC9FCCA0B3E6F2B0CD40F2B1CD41CD42CAADCD43CD44CD45CD46CD47CD48CD49BAE7F2B3F2B5F2B4CBE4CFBAF2B2CAB4D2CFC2ECCD4ACD4BCD4CCD4DCD4ECD4FCD50CEC3F2B8B0F6F2B7CD51CD52CD53CD54CD55F2BECD56B2CFCD57CD58CD59CD5ACD5BCD5CD1C1F2BACD5DCD5ECD5FCD60CD61F2BCD4E9CD62CD63F2BBF2B6F2BFF2BDCD64F2B9CD65CD66F2C7F2C4F2C6CD67CD68F2CAF2C2F2C0CD69CD6ACD6BF2C5CD6CCD6DCD6ECD6FCD70D6FBCD71CD72CD73F2C1CD74C7F9C9DFCD75F2C8B9C6B5B0CD76CD77F2C3F2C9F2D0F2D6CD78CD79BBD7CD7ACD7BCD7CF2D5CDDCCD7DD6EBCD7ECD80F2D2F2D4CD81CD82CD83CD84B8F2CD85CD86CD87CD88F2CBCD89CD8ACD8BF2CEC2F9CD8CD5DDF2CCF2CDF2CFF2D3CD8DCD8ECD8FF2D9D3BCCD90CD91CD92CD93B6EACD94CAF1CD95B7E4F2D7CD96CD97CD98F2D8F2DAF2DDF2DBCD99CD9AF2DCCD9BCD9CCD9DCD9ED1D1F2D1CD9FCDC9CDA0CECFD6A9CE40F2E3CE41C3DBCE42F2E0CE43CE44C0AFF2ECF2DECE45F2E1CE46CE47CE48F2E8CE49CE4ACE4BCE4CF2E2CE4DCE4EF2E7CE4FCE50F2E6CE51CE52F2E9CE53CE54CE55F2DFCE56CE57F2E4F2EACE58CE59CE5ACE5BCE5CCE5DCE5ED3ACF2E5B2F5CE5FCE60F2F2CE61D0ABCE62CE63CE64CE65F2F5CE66CE67CE68BBC8CE69F2F9CE6ACE6BCE6CCE6DCE6ECE6FF2F0CE70CE71F2F6F2F8F2FACE72CE73CE74CE75CE76CE77CE78CE79F2F3CE7AF2F1CE7BCE7CCE7DBAFBCE7EB5FBCE80CE81CE82CE83F2EFF2F7F2EDF2EECE84CE85CE86F2EBF3A6CE87F3A3CE88CE89F3A2CE8ACE8BF2F4CE8CC8DACE8DCE8ECE8FCE90CE91F2FBCE92CE93CE94F3A5CE95CE96CE97CE98CE99CE9ACE9BC3F8CE9CCE9DCE9ECE9FCEA0CF40CF41CF42F2FDCF43CF44F3A7F3A9F3A4CF45F2FCCF46CF47CF48F3ABCF49F3AACF4ACF4BCF4CCF4DC2DDCF4ECF4FF3AECF50CF51F3B0CF52CF53CF54CF55CF56F3A1CF57CF58CF59F3B1F3ACCF5ACF5BCF5CCF5DCF5EF3AFF2FEF3ADCF5FCF60CF61CF62CF63CF64CF65F3B2CF66CF67CF68CF69F3B4CF6ACF6BCF6CCF6DF3A8CF6ECF6FCF70CF71F3B3CF72CF73CF74F3B5CF75CF76CF77CF78CF79CF7ACF7BCF7CCF7DCF7ED0B7CF80CF81CF82CF83F3B8CF84CF85CF86CF87D9F9CF88CF89CF8ACF8BCF8CCF8DF3B9CF8ECF8FCF90CF91CF92CF93CF94CF95F3B7CF96C8E4F3B6CF97CF98CF99CF9AF3BACF9BCF9CCF9DCF9ECF9FF3BBB4C0CFA0D040D041D042D043D044D045D046D047D048D049D04AD04BD04CD04DEEC3D04ED04FD050D051D052D053F3BCD054D055F3BDD056D057D058D1AAD059D05AD05BF4ACD0C6D05CD05DD05ED05FD060D061D0D0D1DCD062D063D064D065D066D067CFCED068D069BDD6D06AD1C3D06BD06CD06DD06ED06FD070D071BAE2E1E9D2C2F1C2B2B9D072D073B1EDF1C3D074C9C0B3C4D075D9F2D076CBA5D077F1C4D078D079D07AD07BD6D4D07CD07DD07ED080D081F1C5F4C0F1C6D082D4ACF1C7D083B0C0F4C1D084D085F4C2D086D087B4FCD088C5DBD089D08AD08BD08CCCBBD08DD08ED08FD0E4D090D091D092D093D094CDE0D095D096D097D098D099F1C8D09AD9F3D09BD09CD09DD09ED09FD0A0B1BBD140CFAED141D142D143B8A4D144D145D146D147D148F1CAD149D14AD14BD14CF1CBD14DD14ED14FD150B2C3C1D1D151D152D7B0F1C9D153D154F1CCD155D156D157D158F1CED159D15AD15BD9F6D15CD2E1D4A3D15DD15EF4C3C8B9D15FD160D161D162D163F4C4D164D165F1CDF1CFBFE3F1D0D166D167F1D4D168D169D16AD16BD16CD16DD16EF1D6F1D1D16FC9D1C5E1D170D171D172C2E3B9FCD173D174F1D3D175F1D5D176D177D178B9D3D179D17AD17BD17CD17DD17ED180F1DBD181D182D183D184D185BAD6D186B0FDF1D9D187D188D189D18AD18BF1D8F1D2F1DAD18CD18DD18ED18FD190F1D7D191D192D193C8ECD194D195D196D197CDCAF1DDD198D199D19AD19BE5BDD19CD19DD19EF1DCD19FF1DED1A0D240D241D242D243D244D245D246D247D248F1DFD249D24ACFE5D24BD24CD24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25BD25CD25DD25ED25FD260D261D262D263F4C5BDF3D264D265D266D267D268D269F1E0D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277D278D279D27AD27BD27CD27DF1E1D27ED280D281CEF7D282D2AAD283F1FBD284D285B8B2D286D287D288D289D28AD28BD28CD28DD28ED28FD290D291D292D293D294D295D296D297D298D299D29AD29BD29CD29DD29ED29FD2A0D340D341D342D343D344D345D346D347D348D349D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358D359D35AD35BD35CD35DD35EBCFBB9DBD35FB9E6C3D9CAD3EAE8C0C0BEF5EAE9EAEAEAEBD360EAECEAEDEAEEEAEFBDC7D361D362D363F5FBD364D365D366F5FDD367F5FED368F5FCD369D36AD36BD36CBDE2D36DF6A1B4A5D36ED36FD370D371F6A2D372D373D374F6A3D375D376D377ECB2D378D379D37AD37BD37CD37DD37ED380D381D382D383D384D1D4D385D386D387D388D389D38AD9EAD38BD38CD38DD38ED38FD390D391D392D393D394D395D396D397D398D399D39AD39BD39CD39DD39ED39FD3A0D440D441D442D443D444D445D446D447D448D449D44AD44BD44CD44DD44ED44FD450D451D452D453D454D455D456D457D458D459D45AD45BD45CD45DD45ED45FF6A4D460D461D462D463D464D465D466D467D468EEBAD469D46AD46BD46CD46DD46ED46FD470D471D472D473D474D475D476D477D478D479D47AD47BD47CD47DD47ED480D481D482D483D484D485D486D487D488D489D48AD48BD48CD48DD48ED48FD490D491D492D493D494D495D496D497D498D499D5B2D49AD49BD49CD49DD49ED49FD4A0D540D541D542D543D544D545D546D547D3FECCDCD548D549D54AD54BD54CD54DD54ED54FCAC4D550D551D552D553D554D555D556D557D558D559D55AD55BD55CD55DD55ED55FD560D561D562D563D564D565D566D567D568D569D56AD56BD56CD56DD56ED56FD570D571D572D573D574D575D576D577D578D579D57AD57BD57CD57DD57ED580D581D582D583D584D585D586D587D588D589D58AD58BD58CD58DD58ED58FD590D591D592D593D594D595D596D597D598D599D59AD59BD59CD59DD59ED59FD5A0D640D641D642D643D644D645D646D647D648D649D64AD64BD64CD64DD64ED64FD650D651D652D653D654D655D656D657D658D659D65AD65BD65CD65DD65ED65FD660D661D662E5C0D663D664D665D666D667D668D669D66AD66BD66CD66DD66ED66FD670D671D672D673D674D675D676D677D678D679D67AD67BD67CD67DD67ED680D681F6A5D682D683D684D685D686D687D688D689D68AD68BD68CD68DD68ED68FD690D691D692D693D694D695D696D697D698D699D69AD69BD69CD69DD69ED69FD6A0D740D741D742D743D744D745D746D747D748D749D74AD74BD74CD74DD74ED74FD750D751D752D753D754D755D756D757D758D759D75AD75BD75CD75DD75ED75FBEAFD760D761D762D763D764C6A9D765D766D767D768D769D76AD76BD76CD76DD76ED76FD770D771D772D773D774D775D776D777D778D779D77AD77BD77CD77DD77ED780D781D782D783D784D785D786D787D788D789D78AD78BD78CD78DD78ED78FD790D791D792D793D794D795D796D797D798DAA5BCC6B6A9B8BCC8CFBCA5DAA6DAA7CCD6C8C3DAA8C6FDD799D1B5D2E9D1B6BCC7D79ABDB2BBE4DAA9DAAAD1C8DAABD0EDB6EFC2DBD79BCBCFB7EDC9E8B7C3BEF7D6A4DAACDAADC6C0D7E7CAB6D79CD5A9CBDFD5EFDAAED6DFB4CADAB0DAAFD79DD2EBDAB1DAB2DAB3CAD4DAB4CAABDAB5DAB6B3CFD6EFDAB7BBB0B5AEDAB8DAB9B9EED1AFD2E8DABAB8C3CFEAB2EFDABBDABCD79EBDEBCEDCD3EFDABDCEF3DABED3D5BBE5DABFCBB5CBD0DAC0C7EBD6EEDAC1C5B5B6C1DAC2B7CCBFCEDAC3DAC4CBADDAC5B5F7DAC6C1C2D7BBDAC7CCB8D79FD2EAC4B1DAC8B5FDBBD1DAC9D0B3DACADACBCEBDDACCDACDDACEB2F7DAD1DACFD1E8DAD0C3D5DAD2D7A0DAD3DAD4DAD5D0BBD2A5B0F9DAD6C7ABDAD7BDF7C3A1DAD8DAD9C3FDCCB7DADADADBC0BEC6D7DADCDADDC7B4DADEDADFB9C8D840D841D842D843D844D845D846D847D848BBEDD849D84AD84BD84CB6B9F4F8D84DF4F9D84ED84FCDE3D850D851D852D853D854D855D856D857F5B9D858D859D85AD85BEBE0D85CD85DD85ED85FD860D861CFF3BBBFD862D863D864D865D866D867D868BAC0D4A5D869D86AD86BD86CD86DD86ED86FE1D9D870D871D872D873F5F4B1AAB2F2D874D875D876D877D878D879D87AF5F5D87BD87CF5F7D87DD87ED880BAD1F5F6D881C3B2D882D883D884D885D886D887D888F5F9D889D88AD88BF5F8D88CD88DD88ED88FD890D891D892D893D894D895D896D897D898D899D89AD89BD89CD89DD89ED89FD8A0D940D941D942D943D944D945D946D947D948D949D94AD94BD94CD94DD94ED94FD950D951D952D953D954D955D956D957D958D959D95AD95BD95CD95DD95ED95FD960D961D962D963D964D965D966D967D968D969D96AD96BD96CD96DD96ED96FD970D971D972D973D974D975D976D977D978D979D97AD97BD97CD97DD97ED980D981D982D983D984D985D986D987D988D989D98AD98BD98CD98DD98ED98FD990D991D992D993D994D995D996D997D998D999D99AD99BD99CD99DD99ED99FD9A0DA40DA41DA42DA43DA44DA45DA46DA47DA48DA49DA4ADA4BDA4CDA4DDA4EB1B4D5EAB8BADA4FB9B1B2C6D4F0CFCDB0DCD5CBBBF5D6CAB7B7CCB0C6B6B1E1B9BAD6FCB9E1B7A1BCFAEADAEADBCCF9B9F3EADCB4FBC3B3B7D1BAD8EADDD4F4EADEBCD6BBDFEADFC1DEC2B8D4DFD7CAEAE0EAE1EAE4EAE2EAE3C9DEB8B3B6C4EAE5CAEAC9CDB4CDDA50DA51E2D9C5E2EAE6C0B5DA52D7B8EAE7D7ACC8FCD8D3D8CDD4DEDA53D4F9C9C4D3AEB8D3B3E0DA54C9E2F4F6DA55DA56DA57BAD5DA58F4F7DA59DA5AD7DFDA5BDA5CF4F1B8B0D5D4B8CFC6F0DA5DDA5EDA5FDA60DA61DA62DA63DA64DA65B3C3DA66DA67F4F2B3ACDA68DA69DA6ADA6BD4BDC7F7DA6CDA6DDA6EDA6FDA70F4F4DA71DA72F4F3DA73DA74DA75DA76DA77DA78DA79DA7ADA7BDA7CCCCBDA7DDA7EDA80C8A4DA81DA82DA83DA84DA85DA86DA87DA88DA89DA8ADA8BDA8CDA8DF4F5DA8ED7E3C5BFF5C0DA8FDA90F5BBDA91F5C3DA92F5C2DA93D6BAF5C1DA94DA95DA96D4BEF5C4DA97F5CCDA98DA99DA9ADA9BB0CFB5F8DA9CF5C9F5CADA9DC5DCDA9EDA9FDAA0DB40F5C5F5C6DB41DB42F5C7F5CBDB43BEE0F5C8B8FADB44DB45DB46F5D0F5D3DB47DB48DB49BFE7DB4AB9F2F5BCF5CDDB4BDB4CC2B7DB4DDB4EDB4FCCF8DB50BCF9DB51F5CEF5CFF5D1B6E5F5D2DB52F5D5DB53DB54DB55DB56DB57DB58DB59F5BDDB5ADB5BDB5CF5D4D3BBDB5DB3ECDB5EDB5FCCA4DB60DB61DB62DB63F5D6DB64DB65DB66DB67DB68DB69DB6ADB6BF5D7BEE1F5D8DB6CDB6DCCDFF5DBDB6EDB6FDB70DB71DB72B2C8D7D9DB73F5D9DB74F5DAF5DCDB75F5E2DB76DB77DB78F5E0DB79DB7ADB7BF5DFF5DDDB7CDB7DF5E1DB7EDB80F5DEF5E4F5E5DB81CCE3DB82DB83E5BFB5B8F5E3F5E8CCA3DB84DB85DB86DB87DB88F5E6F5E7DB89DB8ADB8BDB8CDB8DDB8EF5BEDB8FDB90DB91DB92DB93DB94DB95DB96DB97DB98DB99DB9AB1C4DB9BDB9CF5BFDB9DDB9EB5C5B2E4DB9FF5ECF5E9DBA0B6D7DC40F5EDDC41F5EADC42DC43DC44DC45DC46F5EBDC47DC48B4DADC49D4EADC4ADC4BDC4CF5EEDC4DB3F9DC4EDC4FDC50DC51DC52DC53DC54F5EFF5F1DC55DC56DC57F5F0DC58DC59DC5ADC5BDC5CDC5DDC5EF5F2DC5FF5F3DC60DC61DC62DC63DC64DC65DC66DC67DC68DC69DC6ADC6BC9EDB9AADC6CDC6DC7FBDC6EDC6FB6E3DC70DC71DC72DC73DC74DC75DC76CCC9DC77DC78DC79DC7ADC7BDC7CDC7DDC7EDC80DC81DC82DC83DC84DC85DC86DC87DC88DC89DC8AEAA6DC8BDC8CDC8DDC8EDC8FDC90DC91DC92DC93DC94DC95DC96DC97DC98DC99DC9ADC9BDC9CDC9DDC9EDC9FDCA0DD40DD41DD42DD43DD44DD45DD46DD47DD48DD49DD4ADD4BDD4CDD4DDD4EDD4FDD50DD51DD52DD53DD54DD55DD56DD57DD58DD59DD5ADD5BDD5CDD5DDD5EDD5FDD60DD61DD62DD63DD64DD65DD66DD67DD68DD69DD6ADD6BDD6CDD6DDD6EDD6FDD70DD71DD72DD73DD74DD75DD76DD77DD78DD79DD7ADD7BDD7CDD7DDD7EDD80DD81DD82DD83DD84DD85DD86DD87DD88DD89DD8ADD8BDD8CDD8DDD8EDD8FDD90DD91DD92DD93DD94DD95DD96DD97DD98DD99DD9ADD9BDD9CDD9DDD9EDD9FDDA0DE40DE41DE42DE43DE44DE45DE46DE47DE48DE49DE4ADE4BDE4CDE4DDE4EDE4FDE50DE51DE52DE53DE54DE55DE56DE57DE58DE59DE5ADE5BDE5CDE5DDE5EDE5FDE60B3B5D4FEB9ECD0F9DE61E9EDD7AAE9EEC2D6C8EDBAE4E9EFE9F0E9F1D6E1E9F2E9F3E9F5E9F4E9F6E9F7C7E1E9F8D4D8E9F9BDCEDE62E9FAE9FBBDCFE9FCB8A8C1BEE9FDB1B2BBD4B9F5E9FEDE63EAA1EAA2EAA3B7F8BCADDE64CAE4E0CED4AFCFBDD5B7EAA4D5DEEAA5D0C1B9BCDE65B4C7B1D9DE66DE67DE68C0B1DE69DE6ADE6BDE6CB1E6B1E7DE6DB1E8DE6EDE6FDE70DE71B3BDC8E8DE72DE73DE74DE75E5C1DE76DE77B1DFDE78DE79DE7AC1C9B4EFDE7BDE7CC7A8D3D8DE7DC6F9D1B8DE7EB9FDC2F5DE80DE81DE82DE83DE84D3ADDE85D4CBBDFCDE86E5C2B7B5E5C3DE87DE88BBB9D5E2DE89BDF8D4B6CEA5C1ACB3D9DE8ADE8BCCF6DE8CE5C6E5C4E5C8DE8DE5CAE5C7B5CFC6C8DE8EB5FCE5C5DE8FCAF6DE90DE91E5C9DE92DE93DE94C3D4B1C5BCA3DE95DE96DE97D7B7DE98DE99CDCBCBCDCACACCD3E5CCE5CBC4E6DE9ADE9BD1A1D1B7E5CDDE9CE5D0DE9DCDB8D6F0E5CFB5DDDE9ECDBEDE9FE5D1B6BADEA0DF40CDA8B9E4DF41CAC5B3D1CBD9D4ECE5D2B7EADF42DF43DF44E5CEDF45DF46DF47DF48DF49DF4AE5D5B4FEE5D6DF4BDF4CDF4DDF4EDF4FE5D3E5D4DF50D2DDDF51DF52C2DFB1C6DF53D3E2DF54DF55B6DDCBECDF56E5D7DF57DF58D3F6DF59DF5ADF5BDF5CDF5DB1E9DF5EB6F4E5DAE5D8E5D9B5C0DF5FDF60DF61D2C5E5DCDF62DF63E5DEDF64DF65DF66DF67DF68DF69E5DDC7B2DF6AD2A3DF6BDF6CE5DBDF6DDF6EDF6FDF70D4E2D5DADF71DF72DF73DF74DF75E5E0D7F1DF76DF77DF78DF79DF7ADF7BDF7CE5E1DF7DB1DCD1FBDF7EE5E2E5E4DF80DF81DF82DF83E5E3DF84DF85E5E5DF86DF87DF88DF89DF8AD2D8DF8BB5CBDF8CE7DFDF8DDAF5DF8EDAF8DF8FDAF6DF90DAF7DF91DF92DF93DAFAD0CFC4C7DF94DF95B0EEDF96DF97DF98D0B0DF99DAF9DF9AD3CABAAADBA2C7F1DF9BDAFCDAFBC9DBDAFDDF9CDBA1D7DEDAFEC1DADF9DDF9EDBA5DF9FDFA0D3F4E040E041DBA7DBA4E042DBA8E043E044BDBCE045E046E047C0C9DBA3DBA6D6A3E048DBA9E049E04AE04BDBADE04CE04DE04EDBAEDBACBAC2E04FE050E051BFA4DBABE052E053E054DBAAD4C7B2BFE055E056DBAFE057B9F9E058DBB0E059E05AE05BE05CB3BBE05DE05EE05FB5A6E060E061E062E063B6BCDBB1E064E065E066B6F5E067DBB2E068E069E06AE06BE06CE06DE06EE06FE070E071E072E073E074E075E076E077E078E079E07AE07BB1C9E07CE07DE07EE080DBB4E081E082E083DBB3DBB5E084E085E086E087E088E089E08AE08BE08CE08DE08EDBB7E08FDBB6E090E091E092E093E094E095E096DBB8E097E098E099E09AE09BE09CE09DE09EE09FDBB9E0A0E140DBBAE141E142D3CFF4FAC7F5D7C3C5E4F4FCF4FDF4FBE143BEC6E144E145E146E147D0EFE148E149B7D3E14AE14BD4CDCCAAE14CE14DF5A2F5A1BAA8F4FECBD6E14EE14FE150F5A4C0D2E151B3EAE152CDAAF5A5F5A3BDB4F5A8E153F5A9BDCDC3B8BFE1CBE1F5AAE154E155E156F5A6F5A7C4F0E157E158E159E15AE15BF5ACE15CB4BCE15DD7EDE15EB4D7F5ABF5AEE15FE160F5ADF5AFD0D1E161E162E163E164E165E166E167C3D1C8A9E168E169E16AE16BE16CE16DF5B0F5B1E16EE16FE170E171E172E173F5B2E174E175F5B3F5B4F5B5E176E177E178E179F5B7F5B6E17AE17BE17CE17DF5B8E17EE180E181E182E183E184E185E186E187E188E189E18AB2C9E18BD3D4CACDE18CC0EFD6D8D2B0C1BFE18DBDF0E18EE18FE190E191E192E193E194E195E196E197B8AAE198E199E19AE19BE19CE19DE19EE19FE1A0E240E241E242E243E244E245E246E247E248E249E24AE24BE24CE24DE24EE24FE250E251E252E253E254E255E256E257E258E259E25AE25BE25CE25DE25EE25FE260E261E262E263E264E265E266E267E268E269E26AE26BE26CE26DE26EE26FE270E271E272E273E274E275E276E277E278E279E27AE27BE27CE27DE27EE280E281E282E283E284E285E286E287E288E289E28AE28BE28CE28DE28EE28FE290E291E292E293E294E295E296E297E298E299E29AE29BE29CE29DE29EE29FE2A0E340E341E342E343E344E345E346E347E348E349E34AE34BE34CE34DE34EE34FE350E351E352E353E354E355E356E357E358E359E35AE35BE35CE35DE35EE35FE360E361E362E363E364E365E366E367E368E369E36AE36BE36CE36DBCF8E36EE36FE370E371E372E373E374E375E376E377E378E379E37AE37BE37CE37DE37EE380E381E382E383E384E385E386E387F6C6E388E389E38AE38BE38CE38DE38EE38FE390E391E392E393E394E395E396E397E398E399E39AE39BE39CE39DE39EE39FE3A0E440E441E442E443E444E445F6C7E446E447E448E449E44AE44BE44CE44DE44EE44FE450E451E452E453E454E455E456E457E458E459E45AE45BE45CE45DE45EF6C8E45FE460E461E462E463E464E465E466E467E468E469E46AE46BE46CE46DE46EE46FE470E471E472E473E474E475E476E477E478E479E47AE47BE47CE47DE47EE480E481E482E483E484E485E486E487E488E489E48AE48BE48CE48DE48EE48FE490E491E492E493E494E495E496E497E498E499E49AE49BE49CE49DE49EE49FE4A0E540E541E542E543E544E545E546E547E548E549E54AE54BE54CE54DE54EE54FE550E551E552E553E554E555E556E557E558E559E55AE55BE55CE55DE55EE55FE560E561E562E563E564E565E566E567E568E569E56AE56BE56CE56DE56EE56FE570E571E572E573F6C9E574E575E576E577E578E579E57AE57BE57CE57DE57EE580E581E582E583E584E585E586E587E588E589E58AE58BE58CE58DE58EE58FE590E591E592E593E594E595E596E597E598E599E59AE59BE59CE59DE59EE59FF6CAE5A0E640E641E642E643E644E645E646E647E648E649E64AE64BE64CE64DE64EE64FE650E651E652E653E654E655E656E657E658E659E65AE65BE65CE65DE65EE65FE660E661E662F6CCE663E664E665E666E667E668E669E66AE66BE66CE66DE66EE66FE670E671E672E673E674E675E676E677E678E679E67AE67BE67CE67DE67EE680E681E682E683E684E685E686E687E688E689E68AE68BE68CE68DE68EE68FE690E691E692E693E694E695E696E697E698E699E69AE69BE69CE69DF6CBE69EE69FE6A0E740E741E742E743E744E745E746E747F7E9E748E749E74AE74BE74CE74DE74EE74FE750E751E752E753E754E755E756E757E758E759E75AE75BE75CE75DE75EE75FE760E761E762E763E764E765E766E767E768E769E76AE76BE76CE76DE76EE76FE770E771E772E773E774E775E776E777E778E779E77AE77BE77CE77DE77EE780E781E782E783E784E785E786E787E788E789E78AE78BE78CE78DE78EE78FE790E791E792E793E794E795E796E797E798E799E79AE79BE79CE79DE79EE79FE7A0E840E841E842E843E844E845E846E847E848E849E84AE84BE84CE84DE84EF6CDE84FE850E851E852E853E854E855E856E857E858E859E85AE85BE85CE85DE85EE85FE860E861E862E863E864E865E866E867E868E869E86AE86BE86CE86DE86EE86FE870E871E872E873E874E875E876E877E878E879E87AF6CEE87BE87CE87DE87EE880E881E882E883E884E885E886E887E888E889E88AE88BE88CE88DE88EE88FE890E891E892E893E894EEC4EEC5EEC6D5EBB6A4EEC8EEC7EEC9EECAC7A5EECBEECCE895B7B0B5F6EECDEECFE896EECEE897B8C6EED0EED1EED2B6DBB3AED6D3C4C6B1B5B8D6EED3EED4D4BFC7D5BEFBCED9B9B3EED6EED5EED8EED7C5A5EED9EEDAC7AEEEDBC7AFEEDCB2A7EEDDEEDEEEDFEEE0EEE1D7EAEEE2EEE3BCD8EEE4D3CBCCFAB2ACC1E5EEE5C7A6C3ADE898EEE6EEE7EEE8EEE9EEEAEEEBEEECE899EEEDEEEEEEEFE89AE89BEEF0EEF1EEF2EEF4EEF3E89CEEF5CDADC2C1EEF6EEF7EEF8D5A1EEF9CFB3EEFAEEFBE89DEEFCEEFDEFA1EEFEEFA2B8F5C3FAEFA3EFA4BDC2D2BFB2F9EFA5EFA6EFA7D2F8EFA8D6FDEFA9C6CCE89EEFAAEFABC1B4EFACCFFACBF8EFAEEFADB3FAB9F8EFAFEFB0D0E2EFB1EFB2B7E6D0BFEFB3EFB4EFB5C8F1CCE0EFB6EFB7EFB8EFB9EFBAD5E0EFBBB4EDC3AAEFBCE89FEFBDEFBEEFBFE8A0CEFDEFC0C2E0B4B8D7B6BDF5E940CFC7EFC3EFC1EFC2EFC4B6A7BCFCBEE2C3CCEFC5EFC6E941EFC7EFCFEFC8EFC9EFCAC7C2EFF1B6CDEFCBE942EFCCEFCDB6C6C3BEEFCEE943EFD0EFD1EFD2D5F2E944EFD3C4F7E945EFD4C4F8EFD5EFD6B8E4B0F7EFD7EFD8EFD9E946EFDAEFDBEFDCEFDDE947EFDEBEB5EFE1EFDFEFE0E948EFE2EFE3C1CDEFE4EFE5EFE6EFE7EFE8EFE9EFEAEFEBEFECC0D8E949EFEDC1ADEFEEEFEFEFF0E94AE94BCFE2E94CE94DE94EE94FE950E951E952E953B3A4E954E955E956E957E958E959E95AE95BE95CE95DE95EE95FE960E961E962E963E964E965E966E967E968E969E96AE96BE96CE96DE96EE96FE970E971E972E973E974E975E976E977E978E979E97AE97BE97CE97DE97EE980E981E982E983E984E985E986E987E988E989E98AE98BE98CE98DE98EE98FE990E991E992E993E994E995E996E997E998E999E99AE99BE99CE99DE99EE99FE9A0EA40EA41EA42EA43EA44EA45EA46EA47EA48EA49EA4AEA4BEA4CEA4DEA4EEA4FEA50EA51EA52EA53EA54EA55EA56EA57EA58EA59EA5AEA5BC3C5E3C5C9C1E3C6EA5CB1D5CECAB4B3C8F2E3C7CFD0E3C8BCE4E3C9E3CAC3C6D5A2C4D6B9EBCEC5E3CBC3F6E3CCEA5DB7A7B8F3BAD2E3CDE3CED4C4E3CFEA5EE3D0D1CBE3D1E3D2E3D3E3D4D1D6E3D5B2FBC0BBE3D6EA5FC0ABE3D7E3D8E3D9EA60E3DAE3DBEA61B8B7DAE2EA62B6D3EA63DAE4DAE3EA64EA65EA66EA67EA68EA69EA6ADAE6EA6BEA6CEA6DC8EEEA6EEA6FDAE5B7C0D1F4D2F5D5F3BDD7EA70EA71EA72EA73D7E8DAE8DAE7EA74B0A2CDD3EA75DAE9EA76B8BDBCCAC2BDC2A4B3C2DAEAEA77C2AAC4B0BDB5EA78EA79CFDEEA7AEA7BEA7CDAEBC9C2EA7DEA7EEA80EA81EA82B1DDEA83EA84EA85DAECEA86B6B8D4BAEA87B3FDEA88EA89DAEDD4C9CFD5C5E3EA8ADAEEEA8BEA8CEA8DEA8EEA8FDAEFEA90DAF0C1EACCD5CFDDEA91EA92EA93EA94EA95EA96EA97EA98EA99EA9AEA9BEA9CEA9DD3E7C2A1EA9EDAF1EA9FEAA0CBE5EB40DAF2EB41CBE6D2FEEB42EB43EB44B8F4EB45EB46DAF3B0AFCFB6EB47EB48D5CFEB49EB4AEB4BEB4CEB4DEB4EEB4FEB50EB51EB52CBEDEB53EB54EB55EB56EB57EB58EB59EB5ADAF4EB5BEB5CE3C4EB5DEB5EC1A5EB5FEB60F6BFEB61EB62F6C0F6C1C4D1EB63C8B8D1E3EB64EB65D0DBD1C5BCAFB9CDEB66EFF4EB67EB68B4C6D3BAF6C2B3FBEB69EB6AF6C3EB6BEB6CB5F1EB6DEB6EEB6FEB70EB71EB72EB73EB74EB75EB76F6C5EB77EB78EB79EB7AEB7BEB7CEB7DD3EAF6A7D1A9EB7EEB80EB81EB82F6A9EB83EB84EB85F6A8EB86EB87C1E3C0D7EB88B1A2EB89EB8AEB8BEB8CCEEDEB8DD0E8F6ABEB8EEB8FCFF6EB90F6AAD5F0F6ACC3B9EB91EB92EB93BBF4F6AEF6ADEB94EB95EB96C4DEEB97EB98C1D8EB99EB9AEB9BEB9CEB9DCBAAEB9ECFBCEB9FEBA0EC40EC41EC42EC43EC44EC45EC46EC47EC48F6AFEC49EC4AF6B0EC4BEC4CF6B1EC4DC2B6EC4EEC4FEC50EC51EC52B0D4C5F9EC53EC54EC55EC56F6B2EC57EC58EC59EC5AEC5BEC5CEC5DEC5EEC5FEC60EC61EC62EC63EC64EC65EC66EC67EC68EC69C7E0F6A6EC6AEC6BBEB8EC6CEC6DBEB2EC6EB5E5EC6FEC70B7C7EC71BFBFC3D2C3E6EC72EC73D8CCEC74EC75EC76B8EFEC77EC78EC79EC7AEC7BEC7CEC7DEC7EEC80BDF9D1A5EC81B0D0EC82EC83EC84EC85EC86F7B0EC87EC88EC89EC8AEC8BEC8CEC8DEC8EF7B1EC8FEC90EC91EC92EC93D0ACEC94B0B0EC95EC96EC97F7B2F7B3EC98F7B4EC99EC9AEC9BC7CAEC9CEC9DEC9EEC9FECA0ED40ED41BECFED42ED43F7B7ED44ED45ED46ED47ED48ED49ED4AF7B6ED4BB1DEED4CF7B5ED4DED4EF7B8ED4FF7B9ED50ED51ED52ED53ED54ED55ED56ED57ED58ED59ED5AED5BED5CED5DED5EED5FED60ED61ED62ED63ED64ED65ED66ED67ED68ED69ED6AED6BED6CED6DED6EED6FED70ED71ED72ED73ED74ED75ED76ED77ED78ED79ED7AED7BED7CED7DED7EED80ED81CEA4C8CDED82BAABE8B8E8B9E8BABEC2ED83ED84ED85ED86ED87D2F4ED88D4CFC9D8ED89ED8AED8BED8CED8DED8EED8FED90ED91ED92ED93ED94ED95ED96ED97ED98ED99ED9AED9BED9CED9DED9EED9FEDA0EE40EE41EE42EE43EE44EE45EE46EE47EE48EE49EE4AEE4BEE4CEE4DEE4EEE4FEE50EE51EE52EE53EE54EE55EE56EE57EE58EE59EE5AEE5BEE5CEE5DEE5EEE5FEE60EE61EE62EE63EE64EE65EE66EE67EE68EE69EE6AEE6BEE6CEE6DEE6EEE6FEE70EE71EE72EE73EE74EE75EE76EE77EE78EE79EE7AEE7BEE7CEE7DEE7EEE80EE81EE82EE83EE84EE85EE86EE87EE88EE89EE8AEE8BEE8CEE8DEE8EEE8FEE90EE91EE92EE93EE94EE95EE96EE97EE98EE99EE9AEE9BEE9CEE9DEE9EEE9FEEA0EF40EF41EF42EF43EF44EF45D2B3B6A5C7EAF1FCCFEECBB3D0EBE7EFCDE7B9CBB6D9F1FDB0E4CBCCF1FED4A4C2ADC1ECC6C4BEB1F2A1BCD5EF46F2A2F2A3EF47F2A4D2C3C6B5EF48CDC7F2A5EF49D3B1BFC5CCE2EF4AF2A6F2A7D1D5B6EEF2A8F2A9B5DFF2AAF2ABEF4BB2FCF2ACF2ADC8A7EF4CEF4DEF4EEF4FEF50EF51EF52EF53EF54EF55EF56EF57EF58EF59EF5AEF5BEF5CEF5DEF5EEF5FEF60EF61EF62EF63EF64EF65EF66EF67EF68EF69EF6AEF6BEF6CEF6DEF6EEF6FEF70EF71B7E7EF72EF73ECA9ECAAECABEF74ECACEF75EF76C6AEECADECAEEF77EF78EF79B7C9CAB3EF7AEF7BEF7CEF7DEF7EEF80EF81E2B8F7CFEF82EF83EF84EF85EF86EF87EF88EF89EF8AEF8BEF8CEF8DEF8EEF8FEF90EF91EF92EF93EF94EF95EF96EF97EF98EF99EF9AEF9BEF9CEF9DEF9EEF9FEFA0F040F041F042F043F044F7D0F045F046B2CDF047F048F049F04AF04BF04CF04DF04EF04FF050F051F052F053F054F055F056F057F058F059F05AF05BF05CF05DF05EF05FF060F061F062F063F7D1F064F065F066F067F068F069F06AF06BF06CF06DF06EF06FF070F071F072F073F074F075F076F077F078F079F07AF07BF07CF07DF07EF080F081F082F083F084F085F086F087F088F089F7D3F7D2F08AF08BF08CF08DF08EF08FF090F091F092F093F094F095F096E2BBF097BCA2F098E2BCE2BDE2BEE2BFE2C0E2C1B7B9D2FBBDA4CACEB1A5CBC7F099E2C2B6FCC8C4E2C3F09AF09BBDC8F09CB1FDE2C4F09DB6F6E2C5C4D9F09EF09FE2C6CFDAB9DDE2C7C0A1F0A0E2C8B2F6F140E2C9F141C1F3E2CAE2CBC2F8E2CCE2CDE2CECAD7D8B8D9E5CFE3F142F143F144F145F146F147F148F149F14AF14BF14CF0A5F14DF14EDCB0F14FF150F151F152F153F154F155F156F157F158F159F15AF15BF15CF15DF15EF15FF160F161F162F163F164F165F166F167F168F169F16AF16BF16CF16DF16EF16FF170F171F172F173F174F175F176F177F178F179F17AF17BF17CF17DF17EF180F181F182F183F184F185F186F187F188F189F18AF18BF18CF18DF18EF18FF190F191F192F193F194F195F196F197F198F199F19AF19BF19CF19DF19EF19FF1A0F240F241F242F243F244F245F246F247F248F249F24AF24BF24CF24DF24EF24FF250F251F252F253F254F255F256F257F258F259F25AF25BF25CF25DF25EF25FF260F261F262F263F264F265F266F267F268F269F26AF26BF26CF26DF26EF26FF270F271F272F273F274F275F276F277F278F279F27AF27BF27CF27DF27EF280F281F282F283F284F285F286F287F288F289F28AF28BF28CF28DF28EF28FF290F291F292F293F294F295F296F297F298F299F29AF29BF29CF29DF29EF29FF2A0F340F341F342F343F344F345F346F347F348F349F34AF34BF34CF34DF34EF34FF350F351C2EDD4A6CDD4D1B1B3DBC7FDF352B2B5C2BFE6E0CABBE6E1E6E2BED4E6E3D7A4CDD5E6E5BCDDE6E4E6E6E6E7C2EEF353BDBEE6E8C2E6BAA7E6E9F354E6EAB3D2D1E9F355F356BFA5E6EBC6EFE6ECE6EDF357F358E6EEC6ADE6EFF359C9A7E6F0E6F1E6F2E5B9E6F3E6F4C2E2E6F5E6F6D6E8E6F7F35AE6F8B9C7F35BF35CF35DF35EF35FF360F361F7BBF7BAF362F363F364F365F7BEF7BCBAA1F366F7BFF367F7C0F368F369F36AF7C2F7C1F7C4F36BF36CF7C3F36DF36EF36FF370F371F7C5F7C6F372F373F374F375F7C7F376CBE8F377F378F379F37AB8DFF37BF37CF37DF37EF380F381F7D4F382F7D5F383F384F385F386F7D6F387F388F389F38AF7D8F38BF7DAF38CF7D7F38DF38EF38FF390F391F392F393F394F395F7DBF396F7D9F397F398F399F39AF39BF39CF39DD7D7F39EF39FF3A0F440F7DCF441F442F443F444F445F446F7DDF447F448F449F7DEF44AF44BF44CF44DF44EF44FF450F451F452F453F454F7DFF455F456F457F7E0F458F459F45AF45BF45CF45DF45EF45FF460F461F462DBCBF463F464D8AAF465F466F467F468F469F46AF46BF46CE5F7B9EDF46DF46EF46FF470BFFDBBEAF7C9C6C7F7C8F471F7CAF7CCF7CBF472F473F474F7CDF475CEBAF476F7CEF477F478C4A7F479F47AF47BF47CF47DF47EF480F481F482F483F484F485F486F487F488F489F48AF48BF48CF48DF48EF48FF490F491F492F493F494F495F496F497F498F499F49AF49BF49CF49DF49EF49FF4A0F540F541F542F543F544F545F546F547F548F549F54AF54BF54CF54DF54EF54FF550F551F552F553F554F555F556F557F558F559F55AF55BF55CF55DF55EF55FF560F561F562F563F564F565F566F567F568F569F56AF56BF56CF56DF56EF56FF570F571F572F573F574F575F576F577F578F579F57AF57BF57CF57DF57EF580F581F582F583F584F585F586F587F588F589F58AF58BF58CF58DF58EF58FF590F591F592F593F594F595F596F597F598F599F59AF59BF59CF59DF59EF59FF5A0F640F641F642F643F644F645F646F647F648F649F64AF64BF64CF64DF64EF64FF650F651F652F653F654F655F656F657F658F659F65AF65BF65CF65DF65EF65FF660F661F662F663F664F665F666F667F668F669F66AF66BF66CF66DF66EF66FF670F671F672F673F674F675F676F677F678F679F67AF67BF67CF67DF67EF680F681F682F683F684F685F686F687F688F689F68AF68BF68CF68DF68EF68FF690F691F692F693F694F695F696F697F698F699F69AF69BF69CF69DF69EF69FF6A0F740F741F742F743F744F745F746F747F748F749F74AF74BF74CF74DF74EF74FF750F751F752F753F754F755F756F757F758F759F75AF75BF75CF75DF75EF75FF760F761F762F763F764F765F766F767F768F769F76AF76BF76CF76DF76EF76FF770F771F772F773F774F775F776F777F778F779F77AF77BF77CF77DF77EF780D3E3F781F782F6CFF783C2B3F6D0F784F785F6D1F6D2F6D3F6D4F786F787F6D6F788B1ABF6D7F789F6D8F6D9F6DAF78AF6DBF6DCF78BF78CF78DF78EF6DDF6DECFCAF78FF6DFF6E0F6E1F6E2F6E3F6E4C0F0F6E5F6E6F6E7F6E8F6E9F790F6EAF791F6EBF6ECF792F6EDF6EEF6EFF6F0F6F1F6F2F6F3F6F4BEA8F793F6F5F6F6F6F7F6F8F794F795F796F797F798C8FAF6F9F6FAF6FBF6FCF799F79AF6FDF6FEF7A1F7A2F7A3F7A4F7A5F79BF79CF7A6F7A7F7A8B1EEF7A9F7AAF7ABF79DF79EF7ACF7ADC1DBF7AEF79FF7A0F7AFF840F841F842F843F844F845F846F847F848F849F84AF84BF84CF84DF84EF84FF850F851F852F853F854F855F856F857F858F859F85AF85BF85CF85DF85EF85FF860F861F862F863F864F865F866F867F868F869F86AF86BF86CF86DF86EF86FF870F871F872F873F874F875F876F877F878F879F87AF87BF87CF87DF87EF880F881F882F883F884F885F886F887F888F889F88AF88BF88CF88DF88EF88FF890F891F892F893F894F895F896F897F898F899F89AF89BF89CF89DF89EF89FF8A0F940F941F942F943F944F945F946F947F948F949F94AF94BF94CF94DF94EF94FF950F951F952F953F954F955F956F957F958F959F95AF95BF95CF95DF95EF95FF960F961F962F963F964F965F966F967F968F969F96AF96BF96CF96DF96EF96FF970F971F972F973F974F975F976F977F978F979F97AF97BF97CF97DF97EF980F981F982F983F984F985F986F987F988F989F98AF98BF98CF98DF98EF98FF990F991F992F993F994F995F996F997F998F999F99AF99BF99CF99DF99EF99FF9A0FA40FA41FA42FA43FA44FA45FA46FA47FA48FA49FA4AFA4BFA4CFA4DFA4EFA4FFA50FA51FA52FA53FA54FA55FA56FA57FA58FA59FA5AFA5BFA5CFA5DFA5EFA5FFA60FA61FA62FA63FA64FA65FA66FA67FA68FA69FA6AFA6BFA6CFA6DFA6EFA6FFA70FA71FA72FA73FA74FA75FA76FA77FA78FA79FA7AFA7BFA7CFA7DFA7EFA80FA81FA82FA83FA84FA85FA86FA87FA88FA89FA8AFA8BFA8CFA8DFA8EFA8FFA90FA91FA92FA93FA94FA95FA96FA97FA98FA99FA9AFA9BFA9CFA9DFA9EFA9FFAA0FB40FB41FB42FB43FB44FB45FB46FB47FB48FB49FB4AFB4BFB4CFB4DFB4EFB4FFB50FB51FB52FB53FB54FB55FB56FB57FB58FB59FB5AFB5BC4F1F0AFBCA6F0B0C3F9FB5CC5B8D1BBFB5DF0B1F0B2F0B3F0B4F0B5D1BCFB5ED1ECFB5FF0B7F0B6D4A7FB60CDD2F0B8F0BAF0B9F0BBF0BCFB61FB62B8EBF0BDBAE8FB63F0BEF0BFBEE9F0C0B6ECF0C1F0C2F0C3F0C4C8B5F0C5F0C6FB64F0C7C5F4FB65F0C8FB66FB67FB68F0C9FB69F0CAF7BDFB6AF0CBF0CCF0CDFB6BF0CEFB6CFB6DFB6EFB6FF0CFBAD7FB70F0D0F0D1F0D2F0D3F0D4F0D5F0D6F0D8FB71FB72D3A5F0D7FB73F0D9FB74FB75FB76FB77FB78FB79FB7AFB7BFB7CFB7DF5BAC2B9FB7EFB80F7E4FB81FB82FB83FB84F7E5F7E6FB85FB86F7E7FB87FB88FB89FB8AFB8BFB8CF7E8C2B4FB8DFB8EFB8FFB90FB91FB92FB93FB94FB95F7EAFB96F7EBFB97FB98FB99FB9AFB9BFB9CC2F3FB9DFB9EFB9FFBA0FC40FC41FC42FC43FC44FC45FC46FC47FC48F4F0FC49FC4AFC4BF4EFFC4CFC4DC2E9FC4EF7E1F7E2FC4FFC50FC51FC52FC53BBC6FC54FC55FC56FC57D9E4FC58FC59FC5ACAF2C0E8F0A4FC5BBADAFC5CFC5DC7ADFC5EFC5FFC60C4ACFC61FC62F7ECF7EDF7EEFC63F7F0F7EFFC64F7F1FC65FC66F7F4FC67F7F3FC68F7F2F7F5FC69FC6AFC6BFC6CF7F6FC6DFC6EFC6FFC70FC71FC72FC73FC74FC75EDE9FC76EDEAEDEBFC77F6BCFC78FC79FC7AFC7BFC7CFC7DFC7EFC80FC81FC82FC83FC84F6BDFC85F6BEB6A6FC86D8BEFC87FC88B9C4FC89FC8AFC8BD8BBFC8CDCB1FC8DFC8EFC8FFC90FC91FC92CAF3FC93F7F7FC94FC95FC96FC97FC98FC99FC9AFC9BFC9CF7F8FC9DFC9EF7F9FC9FFCA0FD40FD41FD42FD43FD44F7FBFD45F7FAFD46B1C7FD47F7FCF7FDFD48FD49FD4AFD4BFD4CF7FEFD4DFD4EFD4FFD50FD51FD52FD53FD54FD55FD56FD57C6EBECB4FD58FD59FD5AFD5BFD5CFD5DFD5EFD5FFD60FD61FD62FD63FD64FD65FD66FD67FD68FD69FD6AFD6BFD6CFD6DFD6EFD6FFD70FD71FD72FD73FD74FD75FD76FD77FD78FD79FD7AFD7BFD7CFD7DFD7EFD80FD81FD82FD83FD84FD85B3DDF6B3FD86FD87F6B4C1E4F6B5F6B6F6B7F6B8F6B9F6BAC8A3F6BBFD88FD89FD8AFD8BFD8CFD8DFD8EFD8FFD90FD91FD92FD93C1FAB9A8EDE8FD94FD95FD96B9EAD9DFFD97FD98FD99FD9AFD9";
68
68
  encodeToGb2312(D) {
69
69
  for (var C = "", B = 0; B < D.length; B++) {
@@ -71,8 +71,8 @@ class CC {
71
71
  if (F == " ")
72
72
  C += "+";
73
73
  else if (A >= 19968 && A <= 40869) {
74
- let e = A - 19968;
75
- C += "%" + this.z.substr(e * 4, 2) + "%" + this.z.substr(e * 4 + 2, 2);
74
+ let t = A - 19968;
75
+ C += "%" + this.z.substr(t * 4, 2) + "%" + this.z.substr(t * 4 + 2, 2);
76
76
  } else
77
77
  C += "%" + D.charCodeAt(B).toString(16);
78
78
  }
@@ -90,11 +90,11 @@ class CC {
90
90
  var A = D.charAt(B);
91
91
  if (isNaN(parseInt(A)))
92
92
  try {
93
- var e = D.substr(B, 2) + D.substr(B + 3, 2);
93
+ var t = D.substr(B, 2) + D.substr(B + 3, 2);
94
94
  B = B + 4;
95
- for (var t = -1; (t = this.z.indexOf(e, t + 1)) != -1; )
96
- if (t % 4 == 0) {
97
- C += String.fromCharCode(t / 4 + 19968);
95
+ for (var e = -1; (e = this.z.indexOf(t, e + 1)) != -1; )
96
+ if (e % 4 == 0) {
97
+ C += String.fromCharCode(e / 4 + 19968);
98
98
  break;
99
99
  }
100
100
  } catch {
@@ -112,8 +112,8 @@ class CC {
112
112
  return C;
113
113
  }
114
114
  }
115
- let w = new CC();
116
- class l {
115
+ let g = new DC();
116
+ class a {
117
117
  static kOrigin;
118
118
  imp;
119
119
  constructor(D, C, B) {
@@ -132,7 +132,7 @@ class l {
132
132
  return this.imp.subvec(D.imp), this;
133
133
  }
134
134
  sub(D) {
135
- return new g(this.imp.sub(D.imp));
135
+ return new w(this.imp.sub(D.imp));
136
136
  }
137
137
  distanceTo(D) {
138
138
  return this.imp.distanceTo(D.imp);
@@ -141,7 +141,7 @@ class l {
141
141
  return this.imp.isEqualTo(D.imp);
142
142
  }
143
143
  clone() {
144
- return new l(this.imp);
144
+ return new a(this.imp);
145
145
  }
146
146
  get x() {
147
147
  return this.imp.x;
@@ -162,7 +162,7 @@ class l {
162
162
  this.imp.z = D;
163
163
  }
164
164
  }
165
- class g {
165
+ class w {
166
166
  static kXAxis;
167
167
  static kYAxis;
168
168
  static kZAxis;
@@ -174,7 +174,7 @@ class g {
174
174
  return this.imp.x = D.imp.x, this.imp.y = D.imp.y, this.imp.z = D.imp.z, this;
175
175
  }
176
176
  clone() {
177
- return new g(this.imp);
177
+ return new w(this.imp);
178
178
  }
179
179
  rotateBy(D, C) {
180
180
  return this.imp.rotateBy(D, C.imp), this;
@@ -207,7 +207,7 @@ class g {
207
207
  return this.imp.dotProduct(D.imp);
208
208
  }
209
209
  crossProduct(D) {
210
- let C = new g();
210
+ let C = new w();
211
211
  return C.imp = this.imp.crossProduct(D.imp), C;
212
212
  }
213
213
  isEqualTo(D) {
@@ -232,7 +232,7 @@ class g {
232
232
  this.imp.z = D;
233
233
  }
234
234
  }
235
- class W {
235
+ class z {
236
236
  static kIdentity;
237
237
  imp;
238
238
  constructor(D) {
@@ -242,7 +242,7 @@ class W {
242
242
  return this.imp.copy(D.imp), this;
243
243
  }
244
244
  clone() {
245
- return new W(this.imp);
245
+ return new z(this.imp);
246
246
  }
247
247
  setToIdentity() {
248
248
  return this.imp.setToIdentity(), this;
@@ -290,7 +290,7 @@ class W {
290
290
  return this.imp.getData(D, C);
291
291
  }
292
292
  }
293
- class BC {
293
+ class CC {
294
294
  imp;
295
295
  constructor(D) {
296
296
  this.imp = new i.mxcadassemblyimp.MdGeLongArray(), D instanceof Object && this.imp.copy(D);
@@ -311,7 +311,7 @@ class BC {
311
311
  this.imp.setAt(D, C);
312
312
  }
313
313
  }
314
- class hD {
314
+ class wD {
315
315
  imp;
316
316
  constructor(D) {
317
317
  this.imp = new i.mxcadassemblyimp.MdGeStringArray(), D instanceof Object && this.imp.copy(D);
@@ -326,18 +326,18 @@ class hD {
326
326
  return this.imp.length();
327
327
  }
328
328
  at(D, C = !0) {
329
- return C ? w.decodeFromGb2312(this.imp.at(D)) : this.imp.at(D);
329
+ return C ? g.decodeFromGb2312(this.imp.at(D)) : this.imp.at(D);
330
330
  }
331
331
  setAt(D, C, B = !0) {
332
- B ? this.imp.setAt(D, w.encodeToGb2312(C)) : this.imp.setAt(D, C);
332
+ B ? this.imp.setAt(D, g.encodeToGb2312(C)) : this.imp.setAt(D, C);
333
333
  }
334
334
  forEach(D, C = !0) {
335
335
  let B = this.imp.length();
336
336
  for (let F = 0; F < B; F++)
337
- D(C ? w.decodeFromGb2312(this.imp.at(F)) : this.imp.at(F), F);
337
+ D(C ? g.decodeFromGb2312(this.imp.at(F)) : this.imp.at(F), F);
338
338
  }
339
339
  }
340
- class EC {
340
+ class BC {
341
341
  imp;
342
342
  constructor(D) {
343
343
  this.imp = new i.mxcadassemblyimp.MdGePoint3dArray(), D instanceof Object && this.imp.copy(D);
@@ -352,19 +352,19 @@ class EC {
352
352
  return this.imp.length();
353
353
  }
354
354
  at(D) {
355
- return new l(this.imp.at(D));
355
+ return new a(this.imp.at(D));
356
356
  }
357
357
  setAt(D, C) {
358
358
  this.imp.setAt(D, C.imp);
359
359
  }
360
360
  }
361
- const FC = new FinalizationRegistry((E) => {
361
+ const EC = new FinalizationRegistry((E) => {
362
362
  i.App.DestroyObject(E);
363
- }), AC = {};
364
- class O {
363
+ }), FC = {};
364
+ class j {
365
365
  imp = 0;
366
366
  constructor(D) {
367
- this.imp = D, this.imp && FC.register(this, D, AC);
367
+ this.imp = D, this.imp && EC.register(this, D, FC);
368
368
  }
369
369
  getImp() {
370
370
  return this.imp;
@@ -380,10 +380,10 @@ class O {
380
380
  }
381
381
  getJson() {
382
382
  let D = this.imp.getJson();
383
- return w.decodeFromGb2312(D);
383
+ return g.decodeFromGb2312(D);
384
384
  }
385
385
  setJson(D) {
386
- let C = w.encodeToGb2312(D);
386
+ let C = g.encodeToGb2312(D);
387
387
  return this.imp.setJson(C);
388
388
  }
389
389
  }
@@ -398,7 +398,7 @@ class T {
398
398
  return this.type != 2 && this.id != 0;
399
399
  }
400
400
  erase() {
401
- this.type == 1 ? d.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && iD.eraseEntity(this.id);
401
+ this.type == 1 ? h.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && rD.eraseEntity(this.id);
402
402
  }
403
403
  getMcDbObject() {
404
404
  return this.type == 0 ? i.App.ObjectIdToObject(this.id) : null;
@@ -407,17 +407,17 @@ class T {
407
407
  if (this.type == 0)
408
408
  return i.App.getImp().ObjectIdToObjectName(this.id);
409
409
  if (this.type == 1) {
410
- let D = d.getCurrentDraw().getMxEntity(this.id);
410
+ let D = h.getCurrentDraw().getMxEntity(this.id);
411
411
  if (D)
412
412
  return D.getTypeName();
413
413
  }
414
414
  return "";
415
415
  }
416
416
  getMxDbEntity() {
417
- return this.type == 1 ? d.getCurrentDraw().getMxEntity(this.id) : null;
417
+ return this.type == 1 ? h.getCurrentDraw().getMxEntity(this.id) : null;
418
418
  }
419
419
  }
420
- class v extends O {
420
+ class v extends j {
421
421
  constructor(D) {
422
422
  super(D);
423
423
  }
@@ -453,7 +453,7 @@ var CD;
453
453
  D[D.kLnWt000 = 0] = "kLnWt000", D[D.kLnWt005 = 5] = "kLnWt005", D[D.kLnWt009 = 9] = "kLnWt009", D[D.kLnWt013 = 13] = "kLnWt013", D[D.kLnWt015 = 15] = "kLnWt015", D[D.kLnWt018 = 18] = "kLnWt018", D[D.kLnWt020 = 20] = "kLnWt020", D[D.kLnWt025 = 25] = "kLnWt025", D[D.kLnWt030 = 30] = "kLnWt030", D[D.kLnWt035 = 35] = "kLnWt035", D[D.kLnWt040 = 40] = "kLnWt040", D[D.kLnWt050 = 50] = "kLnWt050", D[D.kLnWt053 = 53] = "kLnWt053", D[D.kLnWt060 = 60] = "kLnWt060", D[D.kLnWt070 = 70] = "kLnWt070", D[D.kLnWt080 = 80] = "kLnWt080", D[D.kLnWt090 = 90] = "kLnWt090", D[D.kLnWt100 = 100] = "kLnWt100", D[D.kLnWt106 = 106] = "kLnWt106", D[D.kLnWt120 = 120] = "kLnWt120", D[D.kLnWt140 = 140] = "kLnWt140", D[D.kLnWt158 = 158] = "kLnWt158", D[D.kLnWt200 = 200] = "kLnWt200", D[D.kLnWt211 = 211] = "kLnWt211", D[D.kLnWtByLayer = -1] = "kLnWtByLayer", D[D.kLnWtByBlock = -2] = "kLnWtByBlock", D[D.kLnWtByLwDefault = -3] = "kLnWtByLwDefault";
454
454
  })(E.LineWeight || (E.LineWeight = {}));
455
455
  })(CD || (CD = {}));
456
- class j {
456
+ class G {
457
457
  imp;
458
458
  constructor(D, C, B) {
459
459
  this.imp = new i.mxcadassemblyimp.MdCmColor(), D instanceof Object ? (this.imp.red = D.red, this.imp.green = D.green, this.imp.blue = D.blue, this.imp.method = D.method, this.imp.n = D.n, this.imp.colorIndex = D.colorIndex) : typeof D == "number" && typeof C == "number" && typeof B == "number" && this.imp.setRGB(D, C, B);
@@ -465,7 +465,7 @@ class j {
465
465
  return this.imp.red = D.imp.red, this.imp.green = D.imp.green, this.imp.blue = D.imp.blue, this.imp.method = D.imp.method, this.imp.n = D.imp.n, this.imp.colorIndex = D.imp.colorIndex, this;
466
466
  }
467
467
  clone() {
468
- return new j(this.imp);
468
+ return new G(this.imp);
469
469
  }
470
470
  setColorIndex(D) {
471
471
  this.imp.setColorIndex(D);
@@ -510,7 +510,7 @@ class j {
510
510
  this.imp.colorIndex = D;
511
511
  }
512
512
  }
513
- class tC extends v {
513
+ class AC extends v {
514
514
  constructor(D) {
515
515
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbLayerTableRecord());
516
516
  }
@@ -539,7 +539,7 @@ class tC extends v {
539
539
  this.imp.setIsLocked(D);
540
540
  }
541
541
  get color() {
542
- return new j(this.imp.color());
542
+ return new G(this.imp.color());
543
543
  }
544
544
  set color(D) {
545
545
  this.imp.setColor(D.getImp());
@@ -557,36 +557,36 @@ class tC extends v {
557
557
  this.imp.setLineWeight(D);
558
558
  }
559
559
  }
560
- class wD extends v {
560
+ class yD extends v {
561
561
  constructor(D) {
562
562
  super(D);
563
563
  }
564
564
  }
565
- class yD extends v {
565
+ class gD extends v {
566
566
  constructor(D) {
567
567
  super(D);
568
568
  }
569
569
  }
570
- class gD extends v {
570
+ class bD extends v {
571
571
  constructor(D) {
572
572
  super(D);
573
573
  }
574
574
  }
575
- class ED extends O {
575
+ class ED extends j {
576
576
  constructor(D) {
577
577
  super(D);
578
578
  }
579
579
  GetLayerTable() {
580
- return new wD(this.imp.GetLayerTable());
580
+ return new yD(this.imp.GetLayerTable());
581
581
  }
582
582
  GetLinetypeTable() {
583
- return new yD(this.imp.GetLinetypeTable());
583
+ return new gD(this.imp.GetLinetypeTable());
584
584
  }
585
585
  GetTextStyleTable() {
586
- return new gD(this.imp.GetTextStyleTable());
586
+ return new bD(this.imp.GetTextStyleTable());
587
587
  }
588
588
  GetBlockTable() {
589
- return new fD(this.imp.GetBlockTable());
589
+ return new MD(this.imp.GetBlockTable());
590
590
  }
591
591
  CurrentSpace() {
592
592
  return new Y(this.imp.CurrentSpace());
@@ -599,22 +599,22 @@ class ED extends O {
599
599
  }
600
600
  GetCurrentlyLineTypeName() {
601
601
  let D = this.imp.GetCurrentlyLineTypeName();
602
- return w.decodeFromGb2312(D);
602
+ return g.decodeFromGb2312(D);
603
603
  }
604
604
  SetCurrentlyLineTypeName(D) {
605
- let C = w.encodeToGb2312(D);
605
+ let C = g.encodeToGb2312(D);
606
606
  this.imp.SetCurrentlyLineTypeName(C);
607
607
  }
608
608
  GetCurrentlyLayerName() {
609
609
  let D = this.imp.GetCurrentlyLayerName();
610
- return w.decodeFromGb2312(D);
610
+ return g.decodeFromGb2312(D);
611
611
  }
612
612
  SetCurrentlyLayerName(D) {
613
- let C = w.encodeToGb2312(D);
613
+ let C = g.encodeToGb2312(D);
614
614
  this.imp.SetCurrentlyLayerName(C);
615
615
  }
616
616
  GetCurrentlyTrueColor() {
617
- return new j(this.imp.GetCurrentlyTrueColor());
617
+ return new G(this.imp.GetCurrentlyTrueColor());
618
618
  }
619
619
  GetCurrentlyDrawColor() {
620
620
  let D = this.imp.GetCurrentlyDrawColor(), C = new THREE.Color();
@@ -631,14 +631,14 @@ class ED extends O {
631
631
  }
632
632
  GetCurrentlyTextStyleName() {
633
633
  let D = this.imp.GetCurrentlyTextStyleName();
634
- return w.decodeFromGb2312(D);
634
+ return g.decodeFromGb2312(D);
635
635
  }
636
636
  SetCurrentlyTextStyle(D) {
637
- let C = w.encodeToGb2312(D);
637
+ let C = g.encodeToGb2312(D);
638
638
  this.imp.SetCurrentlyTextStyle(C);
639
639
  }
640
640
  }
641
- class bD extends O {
641
+ class xD extends j {
642
642
  constructor(D) {
643
643
  super(D);
644
644
  }
@@ -667,16 +667,16 @@ class Y extends v {
667
667
  }
668
668
  newIterator(D = !0, C = !0) {
669
669
  let B = this.imp.newIterator(D, C);
670
- return new bD(B);
670
+ return new xD(B);
671
671
  }
672
672
  get origin() {
673
- return new l(this.imp.origin());
673
+ return new a(this.imp.origin());
674
674
  }
675
675
  set origin(D) {
676
676
  this.imp.setOrigin(D.imp);
677
677
  }
678
678
  }
679
- class xD extends O {
679
+ class fD extends j {
680
680
  constructor(D) {
681
681
  super(D);
682
682
  }
@@ -694,7 +694,7 @@ class xD extends O {
694
694
  this.imp.start(D, C);
695
695
  }
696
696
  }
697
- class fD extends v {
697
+ class MD extends v {
698
698
  constructor(D) {
699
699
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTable());
700
700
  }
@@ -707,22 +707,22 @@ class fD extends v {
707
707
  }
708
708
  newIterator(D = !0, C = !0) {
709
709
  let B = this.imp.newIterator(D, C);
710
- return new xD(B);
710
+ return new fD(B);
711
711
  }
712
712
  add(D) {
713
713
  return this.imp.add(D.getImp());
714
714
  }
715
715
  }
716
- class V extends v {
716
+ class K extends v {
717
717
  constructor(D) {
718
718
  super(D);
719
719
  }
720
720
  explode() {
721
721
  let D = this.imp.explode();
722
- return new H(D);
722
+ return new q(D);
723
723
  }
724
724
  get trueColor() {
725
- return new j(this.imp.TrueColor());
725
+ return new G(this.imp.TrueColor());
726
726
  }
727
727
  set trueColor(D) {
728
728
  this.imp.SetTrueColor(D.getImp());
@@ -785,16 +785,16 @@ class V extends v {
785
785
  let D = this.imp.GetBoundingBox();
786
786
  if (D) {
787
787
  let C = {
788
- minPt: new l(D.AtPoint(0).val),
789
- maxPt: new l(D.AtPoint(1).val),
788
+ minPt: new a(D.AtPoint(0).val),
789
+ maxPt: new a(D.AtPoint(1).val),
790
790
  ret: 0
791
791
  };
792
792
  return i.App.DestroyObject(D), C;
793
793
  } else
794
- return { minPt: new l(), maxPt: new l(), ret: 1 };
794
+ return { minPt: new a(), maxPt: new a(), ret: 1 };
795
795
  }
796
796
  }
797
- class q extends V {
797
+ class H extends K {
798
798
  constructor(D) {
799
799
  super(D);
800
800
  }
@@ -815,25 +815,25 @@ class q extends V {
815
815
  }
816
816
  getPointAtDist(D) {
817
817
  return {
818
- val: new l(this.imp.getPointAtDist(D)),
818
+ val: new a(this.imp.getPointAtDist(D)),
819
819
  ret: i.getCallResult()
820
820
  };
821
821
  }
822
822
  getStartPoint() {
823
823
  return {
824
- val: new l(this.imp.getStartPoint()),
824
+ val: new a(this.imp.getStartPoint()),
825
825
  ret: i.getCallResult()
826
826
  };
827
827
  }
828
828
  getEndPoint() {
829
829
  return {
830
- val: new l(this.imp.getStartPoint()),
830
+ val: new a(this.imp.getStartPoint()),
831
831
  ret: i.getCallResult()
832
832
  };
833
833
  }
834
834
  getPointAtParam(D) {
835
835
  return {
836
- val: new l(this.imp.getPointAtParam(D)),
836
+ val: new a(this.imp.getPointAtParam(D)),
837
837
  ret: i.getCallResult()
838
838
  };
839
839
  }
@@ -845,70 +845,70 @@ class q extends V {
845
845
  }
846
846
  getFirstDeriv(D) {
847
847
  return {
848
- val: new g(this.imp.getFirstDeriv(D)),
848
+ val: new w(this.imp.getFirstDeriv(D)),
849
849
  ret: i.getCallResult()
850
850
  };
851
851
  }
852
852
  getFirstDerivEx(D) {
853
853
  return {
854
- val: new g(this.imp.getFirstDerivEx(D.imp)),
854
+ val: new w(this.imp.getFirstDerivEx(D.imp)),
855
855
  ret: i.getCallResult()
856
856
  };
857
857
  }
858
858
  getClosestPointTo(D, C) {
859
859
  return {
860
- val: new l(this.imp.getClosestPointTo(D.imp, C)),
860
+ val: new a(this.imp.getClosestPointTo(D.imp, C)),
861
861
  ret: i.getCallResult()
862
862
  };
863
863
  }
864
864
  offsetCurves(D, C) {
865
865
  let B = this.imp.offsetCurves(D, C.imp);
866
- return new H(B);
866
+ return new q(B);
867
867
  }
868
868
  splitCurves(D) {
869
869
  let C = this.imp.splitCurves(D);
870
- return new H(C);
870
+ return new q(C);
871
871
  }
872
872
  getArea() {
873
873
  return { val: this.imp.getArea(), ret: i.getCallResult() };
874
874
  }
875
875
  getSamplePoints(D) {
876
876
  let C = this.imp.getSamplePoints(D);
877
- return new H(C);
877
+ return new q(C);
878
878
  }
879
879
  getLength() {
880
880
  return { val: this.imp.getLength(), ret: i.getCallResult() };
881
881
  }
882
882
  }
883
- class Z extends q {
884
- constructor(D, C, B, F, A, e) {
885
- D instanceof Object ? D instanceof l ? (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), C instanceof l && (this.startPoint = D, this.endPoint = C)) : super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), this.startPoint = new l(D, C, B), this.endPoint = new l(F, A, e));
883
+ class Z extends H {
884
+ constructor(D, C, B, F, A, t) {
885
+ D instanceof Object ? D instanceof a ? (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), C instanceof a && (this.startPoint = D, this.endPoint = C)) : super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), this.startPoint = new a(D, C, B), this.endPoint = new a(F, A, t));
886
886
  }
887
887
  get startPoint() {
888
- return new l(this.imp.startPoint());
888
+ return new a(this.imp.startPoint());
889
889
  }
890
890
  set startPoint(D) {
891
891
  this.imp.setStartPoint(D.imp);
892
892
  }
893
893
  get endPoint() {
894
- return new l(this.imp.endPoint());
894
+ return new a(this.imp.endPoint());
895
895
  }
896
896
  set endPoint(D) {
897
897
  this.imp.setEndPoint(D.imp);
898
898
  }
899
899
  }
900
- class BD extends V {
900
+ class BD extends K {
901
901
  constructor(D) {
902
902
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbText());
903
903
  }
904
904
  get position() {
905
- return new l(this.imp.position());
905
+ return new a(this.imp.position());
906
906
  }
907
907
  set position(D) {
908
908
  this.imp.setPosition(D.imp);
909
909
  }
910
910
  get alignmentPoint() {
911
- return new l(this.imp.position());
911
+ return new a(this.imp.position());
912
912
  }
913
913
  set alignmentPoint(D) {
914
914
  this.imp.setAlignmentPoint(D.imp);
@@ -938,10 +938,10 @@ class BD extends V {
938
938
  this.imp.setWidthFactor(D);
939
939
  }
940
940
  get textString() {
941
- return w.decodeFromGb2312(this.imp.textString());
941
+ return g.decodeFromGb2312(this.imp.textString());
942
942
  }
943
943
  set textString(D) {
944
- this.imp.setTextString(w.encodeToGb2312(D));
944
+ this.imp.setTextString(g.encodeToGb2312(D));
945
945
  }
946
946
  get horizontalMode() {
947
947
  return this.imp.horizontalMode();
@@ -956,12 +956,12 @@ class BD extends V {
956
956
  this.imp.setVerticalMode(D);
957
957
  }
958
958
  }
959
- class FD extends V {
959
+ class FD extends K {
960
960
  constructor(D) {
961
961
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbMText());
962
962
  }
963
963
  get location() {
964
- return new l(this.imp.location());
964
+ return new a(this.imp.location());
965
965
  }
966
966
  set location(D) {
967
967
  this.imp.setLocation(D.imp);
@@ -991,21 +991,21 @@ class FD extends V {
991
991
  this.imp.setAttachment(D);
992
992
  }
993
993
  get contents() {
994
- return w.decodeFromGb2312(this.imp.contents());
994
+ return g.decodeFromGb2312(this.imp.contents());
995
995
  }
996
996
  set contents(D) {
997
- this.imp.setContents(w.encodeToGb2312(D));
997
+ this.imp.setContents(g.encodeToGb2312(D));
998
998
  }
999
999
  }
1000
- class AD extends q {
1001
- constructor(D) {
1002
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbCircle());
1000
+ class O extends H {
1001
+ constructor(D, C, B, F) {
1002
+ D instanceof Object ? super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbCircle()), typeof D == "number" && (this.imp.setCenter(new a(D, C, B).imp), this.imp.setRadius(F)));
1003
1003
  }
1004
1004
  setCenter(D, C, B) {
1005
- this.imp.setCenter(new l(D, C, B).imp);
1005
+ this.imp.setCenter(new a(D, C, B).imp);
1006
1006
  }
1007
1007
  get center() {
1008
- return new l(this.imp.center());
1008
+ return new a(this.imp.center());
1009
1009
  }
1010
1010
  set center(D) {
1011
1011
  this.imp.setCenter(D.imp);
@@ -1017,7 +1017,7 @@ class AD extends q {
1017
1017
  this.imp.setRadius(D);
1018
1018
  }
1019
1019
  }
1020
- class MD extends q {
1020
+ class AD extends H {
1021
1021
  constructor(D) {
1022
1022
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbPolyline());
1023
1023
  }
@@ -1033,8 +1033,12 @@ class MD extends q {
1033
1033
  set constantWidth(D) {
1034
1034
  this.imp.setConstantWidth(D);
1035
1035
  }
1036
- addVertexAt(D, C, B, F, A) {
1037
- return this.imp.addVertexAt(D, C.imp, B, F, A);
1036
+ addVertexAt(D, C = 0, B = 0, F = 0, A = 0) {
1037
+ if (D instanceof THREE.Vector3) {
1038
+ let t = new i.mxcadassemblyimp.MdGePoint3d();
1039
+ return t.x = D.x, t.y = D.y, t.z = D.z, this.imp.addVertexAt(A, t, C, B, F);
1040
+ } else
1041
+ return this.imp.addVertexAt(A, D.imp, C, B, F);
1038
1042
  }
1039
1043
  removeVertexAt(D) {
1040
1044
  return this.imp.removeVertexAt(D);
@@ -1062,7 +1066,7 @@ class MD extends q {
1062
1066
  return this.imp.setBulgeAt(D, C);
1063
1067
  }
1064
1068
  }
1065
- class TD extends V {
1069
+ class TD extends K {
1066
1070
  constructor(D) {
1067
1071
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockReference());
1068
1072
  }
@@ -1073,7 +1077,7 @@ class TD extends V {
1073
1077
  this.imp.setBlockTableRecordId(D.id);
1074
1078
  }
1075
1079
  get position() {
1076
- return new l(this.imp.position());
1080
+ return new a(this.imp.position());
1077
1081
  }
1078
1082
  set position(D) {
1079
1083
  this.imp.setPosition(D.imp);
@@ -1091,18 +1095,18 @@ class TD extends V {
1091
1095
  this.imp.setRotation(D);
1092
1096
  }
1093
1097
  get blockTransform() {
1094
- return new W(this.imp.blockTransform());
1098
+ return new z(this.imp.blockTransform());
1095
1099
  }
1096
1100
  set blockTransform(D) {
1097
1101
  this.imp.setBlockTransform(D.imp);
1098
1102
  }
1099
1103
  }
1100
- class tD extends V {
1104
+ class tD extends K {
1101
1105
  constructor(D) {
1102
1106
  super(D);
1103
1107
  }
1104
1108
  get textPosition() {
1105
- return new l(this.imp.textPosition());
1109
+ return new a(this.imp.textPosition());
1106
1110
  }
1107
1111
  set textPosition(D) {
1108
1112
  this.imp.setTextPosition(D.imp);
@@ -1188,19 +1192,19 @@ class kD extends tD {
1188
1192
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbAlignedDimension());
1189
1193
  }
1190
1194
  get xLine1Point() {
1191
- return new l(this.imp.xLine1Point());
1195
+ return new a(this.imp.xLine1Point());
1192
1196
  }
1193
1197
  set xLine1Point(D) {
1194
1198
  this.imp.setXLine1Point(D.imp);
1195
1199
  }
1196
1200
  get xLine2Point() {
1197
- return new l(this.imp.xLine2Point());
1201
+ return new a(this.imp.xLine2Point());
1198
1202
  }
1199
1203
  set xLine2Point(D) {
1200
1204
  this.imp.setXLine2Point(D.imp);
1201
1205
  }
1202
1206
  get dimLinePoint() {
1203
- return new l(this.imp.dimLinePoint());
1207
+ return new a(this.imp.dimLinePoint());
1204
1208
  }
1205
1209
  set dimLinePoint(D) {
1206
1210
  this.imp.setDimLinePoint(D.imp);
@@ -1217,19 +1221,19 @@ class PD extends tD {
1217
1221
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbRotatedDimension());
1218
1222
  }
1219
1223
  get xLine1Point() {
1220
- return new l(this.imp.xLine1Point());
1224
+ return new a(this.imp.xLine1Point());
1221
1225
  }
1222
1226
  set xLine1Point(D) {
1223
1227
  this.imp.setXLine1Point(D.imp);
1224
1228
  }
1225
1229
  get xLine2Point() {
1226
- return new l(this.imp.xLine2Point());
1230
+ return new a(this.imp.xLine2Point());
1227
1231
  }
1228
1232
  set xLine2Point(D) {
1229
1233
  this.imp.setXLine2Point(D.imp);
1230
1234
  }
1231
1235
  get dimLinePoint() {
1232
- return new l(this.imp.dimLinePoint());
1236
+ return new a(this.imp.dimLinePoint());
1233
1237
  }
1234
1238
  set dimLinePoint(D) {
1235
1239
  this.imp.setDimLinePoint(D.imp);
@@ -1247,15 +1251,15 @@ class PD extends tD {
1247
1251
  this.imp.setRotation(D);
1248
1252
  }
1249
1253
  }
1250
- class eD extends q {
1254
+ class eD extends H {
1251
1255
  constructor(D) {
1252
1256
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbArc());
1253
1257
  }
1254
1258
  setCenter(D, C, B) {
1255
- this.imp.setCenter(new l(D, C, B).imp);
1259
+ this.imp.setCenter(new a(D, C, B).imp);
1256
1260
  }
1257
1261
  get center() {
1258
- return new l(this.imp.center());
1262
+ return new a(this.imp.center());
1259
1263
  }
1260
1264
  set center(D) {
1261
1265
  this.imp.setCenter(D.imp);
@@ -1278,15 +1282,72 @@ class eD extends q {
1278
1282
  set endAngle(D) {
1279
1283
  this.imp.setEndAngle(D);
1280
1284
  }
1281
- computeArc(D, C, B, F, A, e) {
1282
- return this.imp.computeArc(D, C, B, F, A, e);
1285
+ computeArc(D, C, B, F, A, t) {
1286
+ return this.imp.computeArc(
1287
+ D,
1288
+ C,
1289
+ B,
1290
+ F,
1291
+ A,
1292
+ t
1293
+ );
1294
+ }
1295
+ }
1296
+ class iD extends H {
1297
+ constructor(D, C, B, F, A, t, e, r, s) {
1298
+ D instanceof Object ? super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbEllipse()), typeof D == "number" && (e || (e = 1), typeof r != "number" && (r = 0), typeof s != "number" && (s = 6.283185307179586), this.imp.Init(new a(D, C, B).imp, new w(F, A, t).imp, e, r, s)));
1299
+ }
1300
+ setCenter(D, C, B) {
1301
+ this.imp.setCenter(new a(D, C, B).imp);
1302
+ }
1303
+ get center() {
1304
+ return new a(this.imp.center());
1305
+ }
1306
+ set center(D) {
1307
+ this.imp.setCenter(D.imp);
1308
+ }
1309
+ setMajorAxis(D, C, B) {
1310
+ this.imp.setMajorAxis(new w(D, C, B).imp);
1311
+ }
1312
+ get majorAxis() {
1313
+ return new w(this.imp.majorAxis());
1314
+ }
1315
+ set majorAxis(D) {
1316
+ this.imp.setMajorAxis(D.imp);
1317
+ }
1318
+ setMinorAxis(D, C, B) {
1319
+ this.imp.setMinorAxis(new w(D, C, B).imp);
1320
+ }
1321
+ get minorAxis() {
1322
+ return new w(this.imp.minorAxis());
1323
+ }
1324
+ set minorAxis(D) {
1325
+ this.imp.setMinorAxis(D.imp);
1326
+ }
1327
+ get radiusRatio() {
1328
+ return this.imp.radiusRatio();
1329
+ }
1330
+ set radiusRatio(D) {
1331
+ this.imp.setRadiusRatio(D);
1332
+ }
1333
+ get startAngle() {
1334
+ return this.imp.startAngle();
1335
+ }
1336
+ set startAngle(D) {
1337
+ this.imp.setStartAngle(D);
1338
+ }
1339
+ get endAngle() {
1340
+ return this.imp.endAngle();
1341
+ }
1342
+ set endAngle(D) {
1343
+ this.imp.setEndAngle(D);
1283
1344
  }
1284
1345
  }
1285
- function K(E = null) {
1346
+ function N(E = null) {
1286
1347
  let D;
1287
1348
  return E == null ? D = new i.mxcadassemblyimp.McDrawResbuf() : D = E.getImp(), D;
1288
1349
  }
1289
- class H extends O {
1350
+ class q extends j {
1290
1351
  constructor(D) {
1291
1352
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.McDrawResbuf());
1292
1353
  }
@@ -1317,10 +1378,10 @@ class H extends O {
1317
1378
  return { val: new T(this.imp.AtObjectId(D), f.kMxCAD), ret: i.getCallResult() };
1318
1379
  }
1319
1380
  AtString(D, C = !0) {
1320
- return C ? { val: w.decodeFromGb2312(this.imp.AtString(D)), ret: i.getCallResult() } : { val: this.imp.AtString(D), ret: i.getCallResult() };
1381
+ return C ? { val: g.decodeFromGb2312(this.imp.AtString(D)), ret: i.getCallResult() } : { val: this.imp.AtString(D), ret: i.getCallResult() };
1321
1382
  }
1322
1383
  AtPoint(D) {
1323
- return { val: new l(this.imp.AtPoint(D)), ret: i.getCallResult() };
1384
+ return { val: new a(this.imp.AtPoint(D)), ret: i.getCallResult() };
1324
1385
  }
1325
1386
  ItemDataType() {
1326
1387
  return this.imp.ItemDataType();
@@ -1335,7 +1396,7 @@ class H extends O {
1335
1396
  return this.imp.AddObjectId(D, C);
1336
1397
  }
1337
1398
  AddString(D, C = -10, B = !0) {
1338
- return B ? this.imp.AddString(w.encodeToGb2312(D), C) : this.imp.AddString(D, C);
1399
+ return B ? this.imp.AddString(g.encodeToGb2312(D), C) : this.imp.AddString(D, C);
1339
1400
  }
1340
1401
  AddPoint(D, C = -10) {
1341
1402
  return this.imp.AddPoint(D.imp, C);
@@ -1347,7 +1408,7 @@ class H extends O {
1347
1408
  this.imp.Remove(D);
1348
1409
  }
1349
1410
  }
1350
- class LD {
1411
+ class RD {
1351
1412
  imp;
1352
1413
  constructor() {
1353
1414
  }
@@ -1359,25 +1420,25 @@ class LD {
1359
1420
  }
1360
1421
  findEntAtPoint(D, C, B, F = -1, A = null) {
1361
1422
  this.init();
1362
- let e = this.imp.findEntAtPoint(D, C, B, F, K(A));
1363
- return new T(e, f.kMxCAD);
1423
+ let t = this.imp.findEntAtPoint(D, C, B, F, N(A));
1424
+ return new T(t, f.kMxCAD);
1364
1425
  }
1365
1426
  selectEnt(D, C = null) {
1366
1427
  return this.init(), new Promise(async (B) => {
1367
1428
  const F = new S();
1368
- D && F.setMessage(D), F.setCursorType(_D.kRect);
1429
+ D && F.setMessage(D), F.setCursorType(qD.kRect);
1369
1430
  let A = await F.go();
1370
1431
  if (!A) {
1371
1432
  B([]);
1372
1433
  return;
1373
1434
  }
1374
- $D.findEntAtPoint(A).then((e) => {
1375
- let t = [];
1376
- e.forEach((r) => {
1377
- t.push(new T(r, f.kMxDraw));
1435
+ _D.findEntAtPoint(A).then((t) => {
1436
+ let e = [];
1437
+ t.forEach((s) => {
1438
+ e.push(new T(s, f.kMxDraw));
1378
1439
  });
1379
- let n = this.findEntAtPoint(A.x, A.y, A.z, -1, C);
1380
- n.isValid() && t.push(n), B(t);
1440
+ let r = this.findEntAtPoint(A.x, A.y, A.z, -1, C);
1441
+ r.isValid() && e.push(r), B(e);
1381
1442
  });
1382
1443
  });
1383
1444
  }
@@ -1385,19 +1446,19 @@ class LD {
1385
1446
  this.imp || (this.imp = new i.mxcadassemblyimp.McDrawUtility());
1386
1447
  }
1387
1448
  }
1388
- let iD = new LD();
1389
- class eC extends O {
1449
+ let rD = new RD();
1450
+ class tC extends j {
1390
1451
  constructor() {
1391
1452
  super(), this.initTempObject(new i.mxcadassemblyimp.McDrawSelSet());
1392
1453
  }
1393
1454
  allSelect(D = null) {
1394
- return this.imp.allSelect(K(D));
1455
+ return this.imp.allSelect(N(D));
1395
1456
  }
1396
1457
  pointSelect(D, C, B = null, F = -1) {
1397
- return this.imp.pointSelect(D, C, K(B), F);
1458
+ return this.imp.pointSelect(D, C, N(B), F);
1398
1459
  }
1399
1460
  crossingSelect(D, C, B, F, A = null) {
1400
- return this.imp.crossingSelect(D, C, B, F, K(A));
1461
+ return this.imp.crossingSelect(D, C, B, F, N(A));
1401
1462
  }
1402
1463
  count() {
1403
1464
  return this.imp.count();
@@ -1434,10 +1495,10 @@ class U {
1434
1495
  openWebFile(D, C, B = !0) {
1435
1496
  let F = Math.round(Math.random() * 1e7);
1436
1497
  if (C) {
1437
- let A = this, e = (t, n) => {
1438
- A.mxObject.removeEventFuction("openFileComplete", e), F == n && C(t);
1498
+ let A = this, t = (e, r) => {
1499
+ A.mxObject.removeEventFuction("openFileComplete", t), F == r && C(e);
1439
1500
  };
1440
- A.mxObject.addEvent("openFileComplete", e);
1501
+ A.mxObject.addEvent("openFileComplete", t);
1441
1502
  }
1442
1503
  return U.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, B, F);
1443
1504
  }
@@ -1453,12 +1514,12 @@ class U {
1453
1514
  saveFile(D, C, B = !0, F = !0) {
1454
1515
  D || (D = this.getCurrentFileName()), D.indexOf(".") == -1 && (D += ".mxweb");
1455
1516
  const A = window;
1456
- return A.mx_saveFile_call = (e) => {
1457
- if (C && C(e), !!e) {
1517
+ return A.mx_saveFile_call = (t) => {
1518
+ if (C && C(t), !!t) {
1458
1519
  if (B) {
1459
- let t;
1460
- /^((?!chrome|android).)*safari/i.test(navigator.userAgent) ? t = new Blob([e.buffer], { type: "application/octet-stream" }) : t = new Blob([e.buffer], { type: "application/octet-binary" }), F ? N.saveAsFileDialog({
1461
- blob: t,
1520
+ let e;
1521
+ /^((?!chrome|android).)*safari/i.test(navigator.userAgent) ? e = new Blob([t.buffer], { type: "application/octet-stream" }) : e = new Blob([t.buffer], { type: "application/octet-binary" }), F ? _.saveAsFileDialog({
1522
+ blob: e,
1462
1523
  filename: D,
1463
1524
  types: [{
1464
1525
  description: "mxweb File",
@@ -1466,7 +1527,7 @@ class U {
1466
1527
  "application/octet-stream": [".mxweb"]
1467
1528
  }
1468
1529
  }]
1469
- }) : N.downloadFile(t, D);
1530
+ }) : _.downloadFile(e, D);
1470
1531
  }
1471
1532
  A.mx_saveFile_call = null;
1472
1533
  }
@@ -1494,7 +1555,7 @@ class U {
1494
1555
  return this.imp.SetSysVarLong(D, C);
1495
1556
  }
1496
1557
  get DrawColor() {
1497
- return new j(this.imp.GetDrawColor());
1558
+ return new G(this.imp.GetDrawColor());
1498
1559
  }
1499
1560
  set DrawColor(D) {
1500
1561
  this.imp.SetDrawColor(D.getImp());
@@ -1541,8 +1602,8 @@ class U {
1541
1602
  AddLinetypeEx(D, C, B) {
1542
1603
  this.imp.AddLinetypeEx(D, C, B);
1543
1604
  }
1544
- DrawLine(D, C, B, F, A, e) {
1545
- return this.imp.DrawLine(D, C, B, F, A, e);
1605
+ DrawLine(D, C, B, F, A, t) {
1606
+ return this.imp.DrawLine(D, C, B, F, A, t);
1546
1607
  }
1547
1608
  AddDimStyle(D, C, B, F, A) {
1548
1609
  return this.imp.AddDimStyle(D, C, B, F, A);
@@ -1568,8 +1629,8 @@ class U {
1568
1629
  DrawArc(D, C, B, F, A) {
1569
1630
  return this.imp.DrawArc(D, C, B, F, A);
1570
1631
  }
1571
- DrawArc2(D, C, B, F, A, e) {
1572
- return this.imp.DrawArc2(D, C, B, F, A, e);
1632
+ DrawArc2(D, C, B, F, A, t) {
1633
+ return this.imp.DrawArc2(D, C, B, F, A, t);
1573
1634
  }
1574
1635
  DrawCircle(D, C, B) {
1575
1636
  return this.imp.DrawCircle(D, C, B);
@@ -1577,35 +1638,35 @@ class U {
1577
1638
  DrawEllipse(D, C, B, F, A) {
1578
1639
  return this.imp.DrawEllipse(D, C, B, F, A);
1579
1640
  }
1580
- DrawEllipseArc(D, C, B, F, A, e, t) {
1581
- return this.imp.DrawEllipseArc(D, C, B, F, A, e, t);
1641
+ DrawEllipseArc(D, C, B, F, A, t, e) {
1642
+ return this.imp.DrawEllipseArc(D, C, B, F, A, t, e);
1582
1643
  }
1583
1644
  DrawPoint(D, C) {
1584
1645
  return this.imp.DrawPoint(D, C);
1585
1646
  }
1586
- DrawSolid(D, C, B, F, A, e, t, n) {
1587
- return this.imp.DrawSolid(D, C, B, F, A, e, t, n);
1647
+ DrawSolid(D, C, B, F, A, t, e, r) {
1648
+ return this.imp.DrawSolid(D, C, B, F, A, t, e, r);
1588
1649
  }
1589
- DrawMText(D, C, B, F, A, e, t) {
1590
- return this.imp.DrawMText(D, C, B, F, A, e, t);
1650
+ DrawMText(D, C, B, F, A, t, e) {
1651
+ return this.imp.DrawMText(D, C, B, F, A, t, e);
1591
1652
  }
1592
- DrawText(D, C, B, F, A, e, t) {
1593
- return this.imp.DrawTextDrawText(D, C, B, F, A, e, t);
1653
+ DrawText(D, C, B, F, A, t, e) {
1654
+ return this.imp.DrawTextDrawText(D, C, B, F, A, t, e);
1594
1655
  }
1595
1656
  DrawBlockReference(D, C, B, F, A) {
1596
1657
  return this.imp.DrawBlockReference(D, C, B, F, A);
1597
1658
  }
1598
- DrawDimAligned(D, C, B, F, A, e) {
1599
- return this.imp.DrawDimAligned(D, C, B, F, A, e);
1659
+ DrawDimAligned(D, C, B, F, A, t) {
1660
+ return this.imp.DrawDimAligned(D, C, B, F, A, t);
1600
1661
  }
1601
- DrawDimAngular(D, C, B, F, A, e, t, n) {
1602
- return this.imp.DrawDimAngular(D, C, B, F, A, e, t, n);
1662
+ DrawDimAngular(D, C, B, F, A, t, e, r) {
1663
+ return this.imp.DrawDimAngular(D, C, B, F, A, t, e, r);
1603
1664
  }
1604
1665
  DrawDimDiametric(D, C, B, F, A) {
1605
1666
  return this.imp.DrawDimDiametric(D, C, B, F, A);
1606
1667
  }
1607
- DrawDimRotated(D, C, B, F, A, e, t) {
1608
- return this.imp.DrawDimRotated(D, C, B, F, A, e, t);
1668
+ DrawDimRotated(D, C, B, F, A, t, e) {
1669
+ return this.imp.DrawDimRotated(D, C, B, F, A, t, e);
1609
1670
  }
1610
1671
  DrawDimOrdinate(D, C, B, F, A) {
1611
1672
  return this.imp.DrawDimOrdinate(D, C, B, F, A);
@@ -1654,16 +1715,16 @@ class U {
1654
1715
  !D || i.App.getImp().DestroyObject(D);
1655
1716
  }
1656
1717
  GetAllLayoutName() {
1657
- return new hD(this.imp.GetAllLayoutName());
1718
+ return new wD(this.imp.GetAllLayoutName());
1658
1719
  }
1659
1720
  SetCurrentLayout(D) {
1660
- this.imp.SetCurrentLayout(w.encodeToGb2312(D));
1721
+ this.imp.SetCurrentLayout(g.encodeToGb2312(D));
1661
1722
  }
1662
1723
  }
1663
- class RD {
1724
+ class LD {
1664
1725
  imp;
1665
1726
  init(D) {
1666
- this.imp = D, g.kZAxis = new g(0, 0, 1), g.kXAxis = new g(1, 0, 0), g.kYAxis = new g(0, 1, 0), l.kOrigin = new l(0, 0, 0), W.kIdentity = new W();
1727
+ this.imp = D, w.kZAxis = new w(0, 0, 1), w.kXAxis = new w(1, 0, 0), w.kYAxis = new w(0, 1, 0), a.kOrigin = new a(0, 0, 0), z.kIdentity = new z();
1667
1728
  }
1668
1729
  getImp() {
1669
1730
  return this.imp;
@@ -1672,8 +1733,8 @@ class RD {
1672
1733
  return this.imp.getLastCallResult();
1673
1734
  }
1674
1735
  CreateMxCAD(D, C, B, F, A) {
1675
- let e = this.imp.CreateMxDraw(D, C, B, F, A);
1676
- return new U(e);
1736
+ let t = this.imp.CreateMxDraw(D, C, B, F, A);
1737
+ return new U(t);
1677
1738
  }
1678
1739
  DestroyObject(D) {
1679
1740
  this.imp.DestroyObject(D);
@@ -1697,10 +1758,10 @@ class RD {
1697
1758
  return new BD(B);
1698
1759
  } else if (C == "McDbPolyline") {
1699
1760
  let B = this.imp.ObjectIdToMdDbPolyline(D);
1700
- return new MD(B);
1761
+ return new AD(B);
1701
1762
  } else if (C == "McDbCircle") {
1702
1763
  let B = this.imp.ObjectIdToMdDbCircle(D);
1703
- return new AD(B);
1764
+ return new O(B);
1704
1765
  } else if (C == "McDbArc") {
1705
1766
  let B = this.imp.ObjectIdToMdDbArc(D);
1706
1767
  return new eD(B);
@@ -1741,16 +1802,16 @@ class RD {
1741
1802
  }
1742
1803
  class SD {
1743
1804
  mxcadassemblyimp;
1744
- App = new RD();
1805
+ App = new LD();
1745
1806
  getCallResult() {
1746
1807
  return this.App.getLastCallResult();
1747
1808
  }
1748
1809
  NewMcGePoint3d(D, C) {
1749
1810
  if (C && D && D.x && D.y) {
1750
1811
  let F = D.z || 0;
1751
- D = d.getCurrentDraw().docCoord2Cad(D.x, D.y, F);
1812
+ D = h.getCurrentDraw().docCoord2Cad(D.x, D.y, F);
1752
1813
  }
1753
- let B = new l();
1814
+ let B = new a();
1754
1815
  return D && D.x && D.y && (B.x = D.x, B.y = D.y, D.z && (B.y = D.z)), B;
1755
1816
  }
1756
1817
  GetCurrentMxCAD() {
@@ -1760,43 +1821,43 @@ class SD {
1760
1821
  return this.App.GetCurrentMxCAD().GetDatabase();
1761
1822
  }
1762
1823
  }
1763
- const rD = "1.0.68", iC = "SharedArrayBuffer" in window, Q = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), rC = (E, D = self.location.href) => Q ? `https://unpkg.com/mxcad@${rD}/dist/wasm/2d-st/${E}` : D + E, sC = (E, D = self.location.href) => Q ? `https://unpkg.com/mxcad@${rD}/dist/wasm/2d/${E}` : D + E, nC = (E, D = self.location.href) => Q ? `https://unpkg.com/mxcad@${rD}/dist/wasm/3d/${E}` : D + E, vD = (E) => new Promise((D, C) => {
1824
+ const sD = "1.0.70", eC = "SharedArrayBuffer" in window, Q = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), iC = (E, D = self.location.href) => Q ? `https://unpkg.com/mxcad@${sD}/dist/wasm/2d-st/${E}` : D + E, rC = (E, D = self.location.href) => Q ? `https://unpkg.com/mxcad@${sD}/dist/wasm/2d/${E}` : D + E, sC = (E, D = self.location.href) => Q ? `https://unpkg.com/mxcad@${sD}/dist/wasm/3d/${E}` : D + E, vD = (E) => new Promise((D, C) => {
1764
1825
  const B = document.createElement("script");
1765
1826
  B.src = E, B.type = "text/javascript", B.crossOrigin = "anonymous", document.body.appendChild(B), B.onload = () => {
1766
1827
  D();
1767
1828
  }, B.onerror = (F) => {
1768
1829
  C(F);
1769
1830
  };
1770
- }), oC = async (E, D, C) => {
1831
+ }), nC = async (E, D, C) => {
1771
1832
  const { locateFile: B } = C, F = B(E + ".js");
1772
1833
  return await vD(F), await globalThis[D](C);
1773
1834
  };
1774
1835
  let i;
1775
- async function OD(E, D = iC || !Q ? rC : sC, C, B, F) {
1776
- return new Promise(async (A, e) => {
1836
+ async function OD(E, D = eC || !Q ? iC : rC, C, B, F) {
1837
+ return new Promise(async (A, t) => {
1777
1838
  try {
1778
1839
  if (i || (i = new SD()), i.mxcadassemblyimp)
1779
1840
  return E && E(i), A(i);
1780
- const n = await oC("mxdrawassembly_min", "mxdrawassembly", {
1841
+ const r = await nC("mxdrawassembly_min", "mxdrawassembly", {
1781
1842
  locateFile: D,
1782
1843
  wasmBinary: C
1783
1844
  });
1784
- i.mxcadassemblyimp = n;
1785
- let r = new n.McApp();
1786
- B && r.setFontFilePath(B), r.Init(), i.App.init(r), F && i.App.addNetworkLoadingFont(F), E && E(i), A(i);
1787
- } catch (t) {
1788
- e(t);
1845
+ i.mxcadassemblyimp = r;
1846
+ let s = new r.McApp();
1847
+ B && s.setFontFilePath(B), s.Init(), i.App.init(s), F && i.App.addNetworkLoadingFont(F), E && E(i), A(i);
1848
+ } catch (e) {
1849
+ t(e);
1789
1850
  }
1790
1851
  });
1791
1852
  }
1792
- const aC = (E) => {
1853
+ const oC = (E) => {
1793
1854
  let D = null;
1794
1855
  if (typeof E == "string" ? D = document.querySelector(E) : E instanceof HTMLCanvasElement && (D = E), !!D)
1795
1856
  return D.id || (D.id = Math.random().toString(16).slice(2)), D.id;
1796
- }, uC = (E, D) => new Promise((C, B) => {
1857
+ }, aC = (E, D) => new Promise((C, B) => {
1797
1858
  try {
1798
- d.createMxObject({
1799
- canvasId: aC(E),
1859
+ h.createMxObject({
1860
+ canvasId: oC(E),
1800
1861
  isCPPMxCAD: !0,
1801
1862
  userIdentitySign: D,
1802
1863
  callback(F) {
@@ -1808,27 +1869,27 @@ const aC = (E) => {
1808
1869
  } catch (F) {
1809
1870
  B(F);
1810
1871
  }
1811
- }), lC = async (E) => {
1812
- aD.state.MxFun || await JD();
1813
- const { networkFonts: D, fontspath: C, locateFile: B, wasmBinary: F, canvas: A, userIdentitySign: e, onOpenFileComplete: t, fileUrl: n, onInit: r = () => {
1814
- d.setIniset({
1872
+ }), uC = async (E) => {
1873
+ uD.state.MxFun || await $D();
1874
+ const { networkFonts: D, fontspath: C, locateFile: B, wasmBinary: F, canvas: A, userIdentitySign: t, onOpenFileComplete: e, fileUrl: r, onInit: s = () => {
1875
+ h.setIniset({
1815
1876
  EnableIntelliSelect: !0,
1816
1877
  IntelliSelectType: 1,
1817
1878
  multipleSelect: !1
1818
1879
  });
1819
1880
  } } = E || {};
1820
1881
  await OD(() => {
1821
- }, B, F, C, D), r();
1822
- let o = await uC(A, e);
1823
- const u = d.getMxFunTHREE();
1824
- let c = new u.Vector2();
1825
- o.getRenderer().getSize(c);
1826
- const s = i.App.CreateMxCAD(c.width, c.height, o.getCanvas().id, o.isWebgl2(), o.getId());
1827
- return o.initMxCpp(s), o.addEvent("openFileComplete", () => {
1828
- t && t();
1829
- }), n && s.openWebFile(n), s;
1882
+ }, B, F, C, D), s();
1883
+ let o = await aC(A, t);
1884
+ const u = h.getMxFunTHREE();
1885
+ let l = new u.Vector2();
1886
+ o.getRenderer().getSize(l);
1887
+ const d = i.App.CreateMxCAD(l.width, l.height, o.getCanvas().id, o.isWebgl2(), o.getId());
1888
+ return o.initMxCpp(d), o.addEvent("openFileComplete", () => {
1889
+ e && e();
1890
+ }), r && d.openWebFile(r), d;
1830
1891
  };
1831
- async function cC() {
1892
+ async function lC() {
1832
1893
  const E = new S();
1833
1894
  E.setMessage(`
1834
1895
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
@@ -1838,98 +1899,98 @@ async function cC() {
1838
1899
  let C = "\u6D4B\u8BD5";
1839
1900
  if (C.length <= 0)
1840
1901
  return;
1841
- let B = d.screenCoordLong2Doc(50);
1842
- C = N.b64Encode(C);
1902
+ let B = h.screenCoordLong2Doc(50);
1903
+ C = _.b64Encode(C);
1843
1904
  const F = {
1844
1905
  postx: D.x,
1845
1906
  posty: D.y,
1846
1907
  text: C,
1847
1908
  height: B
1848
1909
  };
1849
- d.call("Mx_Text", F);
1910
+ h.call("Mx_Text", F);
1850
1911
  }
1851
- class mC extends uD {
1912
+ class cC extends lD {
1852
1913
  getGripPoints() {
1853
1914
  const { x: D, y: C, z: B } = this.center;
1854
- let F = new THREE.Vector3(D, C + this.radius, B), A = new THREE.Vector3(D, C - this.radius, B), e = new THREE.Vector3(D - this.radius, C, B), t = new THREE.Vector3(D + this.radius, C, B);
1855
- return [this.center, F, A, e, t];
1915
+ let F = new THREE.Vector3(D, C + this.radius, B), A = new THREE.Vector3(D, C - this.radius, B), t = new THREE.Vector3(D - this.radius, C, B), e = new THREE.Vector3(D + this.radius, C, B);
1916
+ return [this.center, F, A, t, e];
1856
1917
  }
1857
1918
  moveGripPointsAt(D, C) {
1858
- const [B, F, A, e, t] = this.getGripPoints();
1859
- return D === 0 && (this.center = B.add(C)), D === 1 && (this.radius = F.add(C).distanceTo(this.center)), D === 2 && (this.radius = A.add(C).distanceTo(this.center)), D === 3 && (this.radius = e.add(C).distanceTo(this.center)), D === 4 && (this.radius = t.add(C).distanceTo(this.center)), !0;
1919
+ const [B, F, A, t, e] = this.getGripPoints();
1920
+ return D === 0 && (this.center = B.add(C)), D === 1 && (this.radius = F.add(C).distanceTo(this.center)), D === 2 && (this.radius = A.add(C).distanceTo(this.center)), D === 3 && (this.radius = t.add(C).distanceTo(this.center)), D === 4 && (this.radius = e.add(C).distanceTo(this.center)), !0;
1860
1921
  }
1861
1922
  }
1862
- const nD = (E) => {
1863
- const [D, C, B] = E, { x: F, y: A, z: e } = D, { x: t, y: n, z: r } = C, { x: o, y: u, z: c } = B, s = A * r - n * e - A * c + u * e + n * c - u * r, a = -(F * r - t * e - F * c + o * e + t * c - o * r), h = F * n - t * A - F * u + o * A + t * u - o * n, b = -(F * n * c - F * u * r - t * A * c + t * u * e + o * A * r - o * n * e), y = 2 * (t - F), m = 2 * (n - A), p = 2 * (r - e), G = F * F + A * A + e * e - t * t - n * n - r * r, k = 2 * (o - F), P = 2 * (u - A), L = 2 * (c - e), I = F * F + A * A + e * e - o * o - u * u - c * c, KD = -(a * p * I - a * L * G - m * h * I + m * L * b + P * h * G - P * p * b) / (s * m * L - s * P * p - y * a * L + y * P * h + k * a * p - k * m * h), HD = (s * p * I - s * L * G - y * h * I + y * L * b + k * h * G - k * p * b) / (s * m * L - s * P * p - y * a * L + y * P * h + k * a * p - k * m * h), ND = -(s * m * I - s * P * G - y * a * I + y * P * b + k * a * G - k * m * b) / (s * m * L - s * P * p - y * a * L + y * P * h + k * a * p - k * m * h);
1923
+ const oD = (E) => {
1924
+ const [D, C, B] = E, { x: F, y: A, z: t } = D, { x: e, y: r, z: s } = C, { x: o, y: u, z: l } = B, d = A * s - r * t - A * l + u * t + r * l - u * s, n = -(F * s - e * t - F * l + o * t + e * l - o * s), m = F * r - e * A - F * u + o * A + e * u - o * r, y = -(F * r * l - F * u * s - e * A * l + e * u * t + o * A * s - o * r * t), b = 2 * (e - F), c = 2 * (r - A), p = 2 * (s - t), I = F * F + A * A + t * t - e * e - r * r - s * s, k = 2 * (o - F), P = 2 * (u - A), R = 2 * (l - t), W = F * F + A * A + t * t - o * o - u * u - l * l, KD = -(n * p * W - n * R * I - c * m * W + c * R * y + P * m * I - P * p * y) / (d * c * R - d * P * p - b * n * R + b * P * m + k * n * p - k * c * m), HD = (d * p * W - d * R * I - b * m * W + b * R * y + k * m * I - k * p * y) / (d * c * R - d * P * p - b * n * R + b * P * m + k * n * p - k * c * m), ND = -(d * c * W - d * P * I - b * n * W + b * P * y + k * n * I - k * c * y) / (d * c * R - d * P * p - b * n * R + b * P * m + k * n * p - k * c * m);
1864
1925
  return new THREE.Vector3(KD, HD, ND);
1865
1926
  };
1866
1927
  function jD() {
1867
1928
  const E = new S();
1868
- let D = new mC();
1869
- R.use(D), D.closed = !1;
1870
- let C = 0, B = "default", F = !0;
1871
- const A = () => {
1929
+ let D = new cC(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor();
1930
+ L.use(D), D.closed = !1, D.setColor(C);
1931
+ let B = 0, F = "default", A = !0;
1932
+ const t = () => {
1872
1933
  E.setUserDraw(
1873
- (s, a) => {
1874
- D.radius = F ? D.center.distanceTo(s) : D.center.distanceTo(s) / 2, a.drawCustomEntity(D), a.drawLine(D.center, s);
1934
+ (n, m) => {
1935
+ D.radius = A ? D.center.distanceTo(n) : D.center.distanceTo(n) / 2, m.drawCustomEntity(D), m.drawLine(D.center, n);
1875
1936
  }
1876
1937
  );
1877
- }, e = (s) => {
1878
- if (B === "default") {
1879
- if (s === x.kOk) {
1880
- if (C === 0)
1938
+ }, e = (n) => {
1939
+ if (F === "default") {
1940
+ if (n === x.kOk) {
1941
+ if (B === 0)
1881
1942
  E.setMessage(`
1882
- \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(), A();
1883
- else if (C === 1)
1884
- return i.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius), !0;
1885
- C++;
1943
+ \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(), t();
1944
+ else if (B === 1)
1945
+ return i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius)), !0;
1946
+ B++;
1886
1947
  }
1887
- s === x.kKeyWord && E.isKeyWordPicked("D") && (F = !1, A(), E.setMessage(`
1948
+ n === x.kKeyWord && E.isKeyWordPicked("D") && (A = !1, t(), E.setMessage(`
1888
1949
  \u6307\u5B9A\u5706\u7684\u76F4\u5F84:`), E.setKeyWords(""));
1889
1950
  }
1890
1951
  };
1891
- let t = [];
1892
- const n = (s) => {
1893
- if (B === "3P" && (E.setMessage(`
1894
- \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E00\u4E2A\u70B9:`), s === x.kOk)) {
1895
- if (C === 0 && (t.push(E.value()), E.setUserDraw((a, h) => {
1896
- h.drawLine(t[0], a);
1952
+ let r = [];
1953
+ const s = (n) => {
1954
+ if (F === "3P" && (E.setMessage(`
1955
+ \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E00\u4E2A\u70B9:`), n === x.kOk)) {
1956
+ if (B === 0 && (r.push(E.value()), E.setUserDraw((m, y) => {
1957
+ y.drawLine(r[0], m);
1897
1958
  }), E.setMessage(`
1898
- \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), C === 1 && (t.push(E.value()), E.setUserDraw((a, h) => {
1899
- const [b, y] = t, m = a;
1900
- D.center = nD([
1959
+ \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), B === 1 && (r.push(E.value()), E.setUserDraw((m, y) => {
1960
+ const [b, c] = r, p = m;
1961
+ D.center = oD([
1901
1962
  b,
1902
- y,
1903
- m
1904
- ]), D.radius = D.center.distanceTo(b), h.drawCustomEntity(D);
1963
+ c,
1964
+ p
1965
+ ]), D.radius = D.center.distanceTo(b), y.drawCustomEntity(D);
1905
1966
  }), E.setMessage(`
1906
- \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E09\u4E2A\u70B9:`)), C === 2)
1907
- return t.push(E.value()), D.center = nD(t), D.radius = D.center.distanceTo(t[0]), i.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius), !0;
1908
- C++;
1967
+ \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E09\u4E2A\u70B9:`)), B === 2)
1968
+ return r.push(E.value()), D.center = oD(r), D.radius = D.center.distanceTo(r[0]), i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius)), !0;
1969
+ B++;
1909
1970
  }
1910
1971
  };
1911
- let r;
1912
- const o = (s, a) => {
1913
- new THREE.Line3(s, a).getCenter(D.center), D.radius = a.distanceTo(s) / 2;
1914
- }, u = (s) => {
1915
- if (B === "2P" && (E.setMessage(`
1916
- \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E00\u4E2A\u7AEF\u70B9:`), s === x.kOk)) {
1917
- if (C === 0 && (r = E.value(), E.setUserDraw((a, h) => {
1918
- o(r, a), h.drawCustomEntity(D), h.drawLine(r, a);
1972
+ let o;
1973
+ const u = (n, m) => {
1974
+ new THREE.Line3(n, m).getCenter(D.center), D.radius = m.distanceTo(n) / 2;
1975
+ }, l = (n) => {
1976
+ if (F === "2P" && (E.setMessage(`
1977
+ \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E00\u4E2A\u7AEF\u70B9:`), n === x.kOk)) {
1978
+ if (B === 0 && (o = E.value(), E.setUserDraw((m, y) => {
1979
+ u(o, m), y.drawCustomEntity(D), y.drawLine(o, m);
1919
1980
  }), E.setMessage(`
1920
- \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E8C\u4E2A\u7AEF\u70B9:`)), C === 1)
1921
- return o(r, E.value()), i.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius), !0;
1922
- C++;
1981
+ \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E8C\u4E2A\u7AEF\u70B9:`)), B === 1)
1982
+ return u(o, E.value()), i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius)), !0;
1983
+ B++;
1923
1984
  }
1924
- }, c = (s) => {
1925
- if (B === "T") {
1985
+ }, d = (n) => {
1986
+ if (F === "T") {
1926
1987
  if (E.setMessage(`
1927
- \u6307\u5B9A\u5BF9\u8C61\u4E0E\u5706\u7684\u7B2C\u4E00\u4E2A\u5207\u70B9:`), s === x.kOk) {
1928
- if (C === 0) {
1929
- const a = E.value();
1930
- console.log(a), d.getCurrentDraw();
1988
+ \u6307\u5B9A\u5BF9\u8C61\u4E0E\u5706\u7684\u7B2C\u4E00\u4E2A\u5207\u70B9:`), n === x.kOk) {
1989
+ if (B === 0) {
1990
+ const m = E.value();
1991
+ console.log(m), h.getCurrentDraw();
1931
1992
  }
1932
- C++;
1993
+ B++;
1933
1994
  }
1934
1995
  return !0;
1935
1996
  }
@@ -1938,68 +1999,77 @@ function jD() {
1938
1999
  `
1939
2000
  \u6307\u5B9A\u5706\u7684\u5706\u5FC3\u6216[\u4E09\u70B9(3P)/\u4E24\u70B9(2P)/\u5207\u70B9\u3001\u5207\u70B9\u3001\u534A\u5F84(T)]:`
1940
2001
  ), E.setKeyWords("3P 2P T"), E.goWhile(
1941
- (s) => {
1942
- if (s === x.kKeyWord && (E.isKeyWordPicked("3P") ? B = "3P" : E.isKeyWordPicked("2P") ? B = "2P" : E.isKeyWordPicked("T") && (B = "T")), e(s))
2002
+ (n) => {
2003
+ if (n === x.kKeyWord && (E.isKeyWordPicked("3P") ? F = "3P" : E.isKeyWordPicked("2P") ? F = "2P" : E.isKeyWordPicked("T") && (F = "T")), e(n))
1943
2004
  return { exit: !0 };
1944
- if (n(s))
2005
+ if (s(n))
1945
2006
  return { exit: !0 };
1946
- if (u(s))
2007
+ if (l(n))
1947
2008
  return { exit: !0 };
1948
- if (c(s))
2009
+ if (d(n))
1949
2010
  return { exit: !0 };
1950
2011
  },
1951
- (s) => {
1952
- s === x.kCancel && i.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius);
2012
+ (n) => {
2013
+ n === x.kCancel && i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius));
1953
2014
  }
1954
2015
  );
1955
2016
  }
1956
- d.on("init", () => {
1957
- d.addCommand("Mx_Circle", jD);
2017
+ h.on("init", () => {
2018
+ h.addCommand("Mx_Circle", jD);
1958
2019
  });
1959
- const oD = () => aD.state.MxFun.stopRunCommand();
2020
+ const aD = () => uD.state.MxFun.stopRunCommand();
1960
2021
  function X(E, D, C, B) {
1961
2022
  const F = E - C, A = D - B;
1962
- let e = 0;
1963
- return F == 0 ? e = Math.PI / 2 : e = Math.atan(Math.abs(A / F)), F < 0 && A >= 0 ? e = Math.PI - e : F < 0 && A < 0 ? e = Math.PI + e : F >= 0 && A < 0 && (e = Math.PI * 2 - e), e;
2023
+ let t = 0;
2024
+ return F == 0 ? t = Math.PI / 2 : t = Math.atan(Math.abs(A / F)), F < 0 && A >= 0 ? t = Math.PI - t : F < 0 && A < 0 ? t = Math.PI + t : F >= 0 && A < 0 && (t = Math.PI * 2 - t), t;
1964
2025
  }
2026
+ const M = (E, D, C) => {
2027
+ const B = () => {
2028
+ E.go((F) => {
2029
+ if (F === x.kKeyWord && C() && B(), F === x.kOk && D() && B(), F === x.kNone && B(), F === x.kCancel)
2030
+ return { exit: !0 };
2031
+ });
2032
+ };
2033
+ return B;
2034
+ };
1965
2035
  async function GD() {
1966
2036
  const E = new S();
1967
2037
  let D = new J(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor(), B = [];
1968
2038
  E.setMessage(`
1969
2039
  \u6307\u5B9A\u7B2C\u4E00\u70B9:`);
1970
2040
  let F = await E.go();
1971
- E.setUserDraw((e, t) => {
1972
- t.setColor(C), B.forEach((n) => {
1973
- n.color = C, t.drawCustomEntity(n);
1974
- }), t.drawLine(F, e);
2041
+ E.setUserDraw((t, e) => {
2042
+ e.setColor(C), B.forEach((r) => {
2043
+ r.color = C, e.drawCustomEntity(r);
2044
+ }), e.drawLine(F, t);
1975
2045
  });
1976
2046
  const A = () => {
1977
2047
  E.setMessage(`
1978
2048
  \u6307\u5B9A\u4E0B\u4E00\u4E2A\u70B9:`), B.length > 1 ? E.setKeyWords("[\u9000\u51FA(E)/\u95ED\u5408(C)/\u653E\u5F03(U)]") : E.setKeyWords("[\u9000\u51FA(E)/\u653E\u5F03(U)]");
1979
2049
  };
1980
2050
  A(), E.goWhile(
1981
- (e) => {
1982
- if (e === x.kOk && (D = new J(), R.use(D), D.pt1 = F, D.pt2 = E.value(), F = D.pt2.clone(), B.push(D), A()), e === x.kKeyWord) {
2051
+ (t) => {
2052
+ if (t === x.kOk && (D = new J(), L.use(D), D.pt1 = F, D.pt2 = E.value(), F = D.pt2.clone(), B.push(D), A()), t === x.kKeyWord) {
1983
2053
  if (E.isKeyWordPicked("E"))
1984
- oD();
2054
+ aD();
1985
2055
  else if (E.isKeyWordPicked("C")) {
1986
- const t = new J();
1987
- return t.pt1 = F.clone(), t.pt2 = B[0].pt1.clone(), R.use(t), B.push(t), F = t.pt2.clone(), oD(), { exit: !0 };
2056
+ const e = new J();
2057
+ return e.pt1 = F.clone(), e.pt2 = B[0].pt1.clone(), L.use(e), B.push(e), F = e.pt2.clone(), aD(), { exit: !0 };
1988
2058
  } else if (E.isKeyWordPicked("U")) {
1989
- const t = B.pop();
1990
- t && (F = t.pt1);
2059
+ const e = B.pop();
2060
+ e && (F = e.pt1);
1991
2061
  }
1992
2062
  }
1993
2063
  },
1994
- (e) => (e === x.kCancel && B.forEach((t) => {
1995
- i.GetCurrentMxCAD().DrawEntity(new Z(t.pt1.x, t.pt1.y, 0, t.pt2.x, t.pt2.y, 0));
2064
+ (t) => (t === x.kCancel && B.forEach((e) => {
2065
+ i.GetCurrentMxCAD().DrawEntity(new Z(e.pt1.x, e.pt1.y, 0, e.pt2.x, e.pt2.y, 0));
1996
2066
  }), { exit: !0 })
1997
2067
  );
1998
2068
  }
1999
- d.on("init", () => {
2000
- d.addCommand("Mx_Line", GD);
2069
+ h.on("init", () => {
2070
+ h.addCommand("Mx_Line", GD);
2001
2071
  });
2002
- async function pC() {
2072
+ async function mC() {
2003
2073
  const E = new S();
2004
2074
  E.setMessage(`
2005
2075
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
@@ -2010,96 +2080,89 @@ async function pC() {
2010
2080
  \u6D4B\u8BD5`;
2011
2081
  if (C.length <= 0)
2012
2082
  return;
2013
- let B = d.screenCoordLong2Doc(50);
2014
- C = N.b64Encode(C);
2083
+ let B = h.screenCoordLong2Doc(50);
2084
+ C = _.b64Encode(C);
2015
2085
  const F = {
2016
2086
  postx: D.x,
2017
2087
  posty: D.y,
2018
2088
  text: C,
2019
2089
  height: B
2020
2090
  };
2021
- d.call("Mx_MText", F);
2091
+ h.call("Mx_MText", F);
2022
2092
  }
2023
2093
  async function ID() {
2024
- const E = new S(), D = new ZD();
2025
- R.use(D), E.setMessage(`
2094
+ const E = new S();
2095
+ let D = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2096
+ const C = new JD();
2097
+ L.use(C), C.color = D, E.setMessage(`
2026
2098
  \u6307\u5B9A\u8D77\u70B9:`);
2027
- let C;
2028
- E.setUserDraw((B, F) => {
2029
- F.drawCustomEntity(D), C && F.drawLine(C, B);
2099
+ let B;
2100
+ E.setUserDraw((F, A) => {
2101
+ A.setColor(D), A.drawCustomEntity(C), B && A.drawLine(B, F);
2030
2102
  }), E.goWhile(
2031
- (B) => {
2032
- if (B === x.kOk) {
2033
- const F = E.value();
2034
- D.points.push(E.value()), C = F, E.setMessage(`
2103
+ (F) => {
2104
+ if (F === x.kOk) {
2105
+ const A = E.value();
2106
+ C.points.push(E.value()), B = A, E.setMessage(`
2035
2107
  \u6307\u5B9A\u4E0B\u4E00\u4E2A\u70B9:`), E.setKeyWords("[\u5706\u5F27(A)/\u5BBD\u5EA6(W)]");
2036
2108
  } else
2037
- B === x.kKeyWord && (E.isKeyWordPicked("A"), E.isKeyWordPicked("W"));
2109
+ F === x.kKeyWord && (E.isKeyWordPicked("A"), E.isKeyWordPicked("W"));
2038
2110
  },
2039
- (B) => {
2040
- if (B === x.kCancel) {
2041
- let F = i.GetCurrentMxCAD();
2042
- for (let A = 0; A < D.points.length; A++)
2043
- A == 0 ? F.PathMoveTo(D.points[A].x, D.points[A].y) : F.PathLineTo(D.points[A].x, D.points[A].y);
2044
- F.DrawPathToPolyline();
2111
+ (F) => {
2112
+ if (F === x.kCancel) {
2113
+ let A = i.GetCurrentMxCAD(), t = new AD();
2114
+ for (let e = 0; e < C.points.length; e++)
2115
+ t.addVertexAt(C.points[e]);
2116
+ A.DrawEntity(t);
2045
2117
  }
2046
2118
  }
2047
2119
  );
2048
2120
  }
2049
- d.on("init", () => {
2050
- d.addCommand("Mx_Pline", ID);
2121
+ h.on("init", () => {
2122
+ h.addCommand("Mx_Pline", ID);
2051
2123
  });
2052
2124
  async function WD() {
2053
2125
  const E = new S();
2054
2126
  E.setMessage(`
2055
2127
  \u6307\u5B9A\u4E00\u70B9:`);
2056
- let D = await E.go(), C = new AD();
2128
+ let D = await E.go(), C = new O();
2057
2129
  C.setCenter(D.x, D.y, D.z);
2058
- let B = 5;
2059
- E.setUserDraw((F, A) => {
2060
- C.radius = D.distanceTo(F);
2061
- let e = C.getEndParam().val, n = C.getDistAtParam(e).val / B, r = 0, o = new THREE.Vector3(), u = new THREE.Vector3();
2062
- for (let c = 0; c < B; c++) {
2063
- let s = C.getPointAtDist(r).val;
2064
- r += n, c > 0 ? A.drawMcDbLine(s.x, s.y, s.z, o.x, o.y, o.z) : u = new THREE.Vector3(s.x, s.y, s.z), c == B - 1 && A.drawMcDbLine(s.x, s.y, s.z, u.x, u.y, u.z), o = new THREE.Vector3(s.x, s.y, s.z);
2130
+ let B = 5, F = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2131
+ E.setUserDraw((A, t) => {
2132
+ t.setColor(F), C.radius = D.distanceTo(A);
2133
+ let e = C.getEndParam().val, s = C.getDistAtParam(e).val / B, o = 0, u = new THREE.Vector3(), l = new THREE.Vector3();
2134
+ for (let d = 0; d < B; d++) {
2135
+ let n = C.getPointAtDist(o).val;
2136
+ o += s, d > 0 ? t.drawMcDbLine(n.x, n.y, n.z, u.x, u.y, u.z) : l = new THREE.Vector3(n.x, n.y, n.z), d == B - 1 && t.drawMcDbLine(n.x, n.y, n.z, l.x, l.y, l.z), u = new THREE.Vector3(n.x, n.y, n.z);
2065
2137
  }
2066
2138
  }), E.setMessage(`
2067
2139
  \u6307\u5B9A\u4E8C\u70B9:`), await E.go(), E.drawReserve();
2068
2140
  }
2069
- d.addCommand("Mx_Polygon", WD);
2070
- function dC(E, D, C) {
2071
- const B = E.x, F = D.x, A = C.x, e = E.y, t = D.y, n = C.y, r = B - F, o = e - t, u = B - A, c = e - n, s = (B * B - F * F + (e * e - t * t)) / 2, a = (B * B - A * A + (e * e - n * n)) / 2, h = o * u - r * c, b = -(c * s - o * a) / h, y = -(r * a - u * s) / h;
2072
- return new THREE.Vector3(b, y, 0);
2141
+ h.addCommand("Mx_Polygon", WD);
2142
+ function pC(E, D, C) {
2143
+ const B = E.x, F = D.x, A = C.x, t = E.y, e = D.y, r = C.y, s = B - F, o = t - e, u = B - A, l = t - r, d = (B * B - F * F + (t * t - e * e)) / 2, n = (B * B - A * A + (t * t - r * r)) / 2, m = o * u - s * l, y = -(l * d - o * n) / m, b = -(s * n - u * d) / m;
2144
+ return new THREE.Vector3(y, b, 0);
2073
2145
  }
2074
- function hC(E, D) {
2146
+ function dC(E, D) {
2075
2147
  const C = E.x, B = E.y, F = D.x, A = D.y;
2076
2148
  return Math.sqrt((C - F) * (C - F) + (B - A) * (B - A));
2077
2149
  }
2078
- function wC(E, D, C) {
2150
+ function hC(E, D, C) {
2079
2151
  let B;
2080
2152
  E < C ? B = C - E : B = C - E + 360;
2081
2153
  let F;
2082
2154
  return E < D ? F = D - E : F = D - E + 360, F > B;
2083
2155
  }
2084
2156
  function DD(E, D, C) {
2085
- const B = E.x, F = D.x, A = E.y, e = D.y;
2086
- let t, n, r;
2087
- return t = (A - e) / C, n = (B - F) / C, n >= 0.99999 && (n = 0.99999), n <= -0.99999 && (n = -0.99999), r = Math.acos(n), r = r / Math.PI * 180, t < -0.05 && (r = 360 - r), {
2088
- sin: t,
2089
- cos: n,
2090
- angle: r
2157
+ const B = E.x, F = D.x, A = E.y, t = D.y;
2158
+ let e, r, s;
2159
+ return e = (A - t) / C, r = (B - F) / C, r >= 0.99999 && (r = 0.99999), r <= -0.99999 && (r = -0.99999), s = Math.acos(r), s = s / Math.PI * 180, e < -0.05 && (s = 360 - s), {
2160
+ sin: e,
2161
+ cos: r,
2162
+ angle: s
2091
2163
  };
2092
2164
  }
2093
- const $ = qD.MrxDbgUiPrBaseReturn, M = (E, D, C) => {
2094
- const B = () => {
2095
- E.go((F) => {
2096
- if (F === $.kKeyWord && C() && B(), F === $.kOk && D() && B(), F === $.kNone && B(), F === $.kCancel)
2097
- return { exit: !0 };
2098
- });
2099
- };
2100
- return B;
2101
- };
2102
- class sD extends uD {
2165
+ class nD extends lD {
2103
2166
  constructor() {
2104
2167
  super(), this._propertyDbKeys = [...this._propertyDbKeys, "bulge"];
2105
2168
  }
@@ -2107,24 +2170,24 @@ class sD extends uD {
2107
2170
  return "MxDbCircle";
2108
2171
  }
2109
2172
  create() {
2110
- return new sD();
2173
+ return new nD();
2111
2174
  }
2112
2175
  getArcBulge(D, C, B) {
2113
2176
  const F = D.distanceTo(C);
2114
- let t = 2 * new THREE.Line3(D, C).getCenter(
2177
+ let e = 2 * new THREE.Line3(D, C).getCenter(
2115
2178
  new THREE.Vector3()
2116
2179
  ).distanceTo(B) / F;
2117
- return t > 0.9999 && t < 1.0001 ? t = 1 : t < -0.9999 && t > -1.0001 ? t = -1 : Math.abs(t) < 1e-10 && (t = 0), t;
2180
+ return e > 0.9999 && e < 1.0001 ? e = 1 : e < -0.9999 && e > -1.0001 ? e = -1 : Math.abs(e) < 1e-10 && (e = 0), e;
2118
2181
  }
2119
2182
  getArcMidPoint(D, C, B, F, A) {
2120
- const e = D, t = B * Math.PI / 180;
2121
- let n = F * Math.PI / 180;
2122
- const r = new THREE.Vector3(), o = new THREE.Vector3();
2123
- r.x = e.x + C * Math.cos(t), r.y = e.y + C * Math.sin(t), o.x = e.x + C * Math.cos(n), o.y = e.y + C * Math.sin(n);
2183
+ const t = D, e = B * Math.PI / 180;
2184
+ let r = F * Math.PI / 180;
2185
+ const s = new THREE.Vector3(), o = new THREE.Vector3();
2186
+ s.x = t.x + C * Math.cos(e), s.y = t.y + C * Math.sin(e), o.x = t.x + C * Math.cos(r), o.y = t.y + C * Math.sin(r);
2124
2187
  const u = C;
2125
- (A ? B < F : B > F) && (n += Math.PI * 2);
2126
- const c = new THREE.Vector3();
2127
- return c.x = e.x + u * Math.cos((t + n) / 2), c.y = e.y + u * Math.sin((t + n) / 2), [r, c, o, this.center];
2188
+ (A ? B < F : B > F) && (r += Math.PI * 2);
2189
+ const l = new THREE.Vector3();
2190
+ return l.x = t.x + u * Math.cos((e + r) / 2), l.y = t.y + u * Math.sin((e + r) / 2), [s, l, o, this.center];
2128
2191
  }
2129
2192
  getGripPoints() {
2130
2193
  return this.getArcMidPoint(
@@ -2143,130 +2206,131 @@ class sD extends uD {
2143
2206
  }
2144
2207
  upDatePoints(D, C, B) {
2145
2208
  D[C].add(B);
2146
- const [F, A, e] = D;
2147
- this.center = dC(F, e, A), this.radius = hC(A, this.center);
2148
- const t = DD(F, this.center, this.radius), n = DD(e, this.center, this.radius), r = DD(A, this.center, this.radius);
2149
- this.clockwise = wC(
2150
- n.angle,
2151
- t.angle,
2152
- r.angle
2153
- ), this.startAngle = THREE.MathUtils.degToRad(t.angle), this.endAngle = THREE.MathUtils.degToRad(n.angle);
2209
+ const [F, A, t] = D;
2210
+ this.center = pC(F, t, A), this.radius = dC(A, this.center);
2211
+ const e = DD(F, this.center, this.radius), r = DD(t, this.center, this.radius), s = DD(A, this.center, this.radius);
2212
+ this.clockwise = hC(
2213
+ r.angle,
2214
+ e.angle,
2215
+ s.angle
2216
+ ), this.startAngle = THREE.MathUtils.degToRad(e.angle), this.endAngle = THREE.MathUtils.degToRad(r.angle);
2154
2217
  }
2155
2218
  }
2156
- async function UD() {
2219
+ async function zD() {
2157
2220
  let E = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2221
+ i.GetCurrentDatabase().SetCurrentlyColorIndex(4);
2158
2222
  const D = new S();
2159
2223
  D.setMessage(`
2160
2224
  \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)]");
2161
- let C = new sD();
2162
- C.closed = !1, R.use(C);
2225
+ let C = new nD();
2226
+ C.closed = !1, L.use(C);
2163
2227
  let B, F, A;
2164
- const e = M(
2228
+ const t = M(
2165
2229
  D,
2166
2230
  () => {
2167
2231
  B = D.value(), D.setMessage(`
2168
- \u6307\u5B9A\u5706\u5F27\u7684\u7B2C\u4E8C\u4E2A\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)/\u7AEF\u70B9(E)]"), D.setUserDraw((m, p) => {
2169
- p.setColor(E), p.drawLine(B, m);
2170
- }), h();
2232
+ \u6307\u5B9A\u5706\u5F27\u7684\u7B2C\u4E8C\u4E2A\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)/\u7AEF\u70B9(E)]"), D.setUserDraw((c, p) => {
2233
+ p.setColor(E), p.drawLine(B, c);
2234
+ }), m();
2171
2235
  },
2172
2236
  () => {
2173
2237
  if (D.isKeyWordPicked("C")) {
2174
- const m = new _();
2175
- m.color = E, C.center = D.value(), m.center = D.value(), D.setMessage(`
2176
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), D.setKeyWords(""), n();
2238
+ const c = new $();
2239
+ c.color = E, C.center = D.value(), c.center = D.value(), D.setMessage(`
2240
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), D.setKeyWords(""), r();
2177
2241
  } else
2178
2242
  return !0;
2179
2243
  }
2180
2244
  );
2181
- let t;
2182
- const n = M(
2245
+ let e;
2246
+ const r = M(
2183
2247
  D,
2184
2248
  () => {
2185
- t = D.value(), A = new _(), A.closed = !1, R.use(A), A.color = E, A.center = t, C.center = t, D.setMessage(`
2186
- \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setUserDraw((m, p) => {
2187
- p.drawCustomEntity(A), p.setColor(E), p.drawLine(t, m);
2249
+ e = D.value(), A = new $(), A.closed = !1, L.use(A), A.color = E, A.center = e, C.center = e, D.setMessage(`
2250
+ \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setUserDraw((c, p) => {
2251
+ p.drawCustomEntity(A), p.setColor(E), p.drawLine(e, c);
2188
2252
  }), u();
2189
2253
  },
2190
2254
  () => {
2191
2255
  }
2192
2256
  );
2193
- let r, o;
2257
+ let s, o;
2194
2258
  const u = M(
2195
2259
  D,
2196
2260
  () => {
2197
- r = D.value(), A.endPoint = r, D.setMessage(
2261
+ s = D.value(), A.endPoint = s, D.setMessage(
2198
2262
  `
2199
2263
  \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u89D2\u5EA6(A)/\u5F26\u957F(L)/\u4FEE\u6539\u534A\u5F84(R)]:`
2200
- ), D.setKeyWords("A L R"), o = new J(), o.setDashLineDisplay(!0), o.setDashArray(0.05), o.setLineWidth(2), o.setColor("#ffd30d"), o.pt1 = A.center, D.setUserDraw((m, p) => {
2201
- A.startPoint = m, o.pt2 = m, p.drawCustomEntity(A), p.drawCustomEntity(o);
2202
- }), s();
2264
+ ), D.setKeyWords("A L R"), o = new J(), o.setDashLineDisplay(!0), o.setDashArray(0.05), o.setLineWidth(2), o.setColor("#ffd30d"), o.pt1 = A.center, D.setUserDraw((c, p) => {
2265
+ A.startPoint = c, o.pt2 = c, p.drawCustomEntity(A), p.drawCustomEntity(o);
2266
+ }), d();
2203
2267
  },
2204
2268
  () => {
2205
2269
  }
2206
2270
  );
2207
- let c;
2208
- const s = M(
2271
+ let l;
2272
+ const d = M(
2209
2273
  D,
2210
2274
  () => {
2211
- c = D.value(), A.startPoint = c, A.endPoint = r, d.getCurrentDraw().addMxEntity(A);
2275
+ l = D.value(), A.startPoint = l, A.endPoint = s, y.DrawArc(A.center.x, A.center.y, A.radius, A.startAngle, A.endAngle);
2212
2276
  },
2213
2277
  () => {
2214
2278
  if (D.isKeyWordPicked("A"))
2215
2279
  return D.setMessage(
2216
2280
  `
2217
2281
  \u6307\u5B9A\u5706\u5F27\u7684\u5939\u89D2(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u4FEE\u6539\u534A\u5F84(R)]:`
2218
- ), D.setKeyWords("R"), D.setUserDraw((m, p) => {
2219
- A.startPoint = m, p.drawCustomEntity(A), p.drawCustomEntity(o);
2282
+ ), D.setKeyWords("R"), D.setUserDraw((c, p) => {
2283
+ A.startPoint = c, p.drawCustomEntity(A), p.drawCustomEntity(o);
2220
2284
  }), !0;
2221
2285
  if (D.isKeyWordPicked("L"))
2222
2286
  return D.setMessage(
2223
2287
  `
2224
2288
  \u6307\u5B9A\u5706\u5F27\u7684\u5939\u89D2(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u4FEE\u6539\u534A\u5F84(R)]:`
2225
- ), D.setKeyWords("R"), D.setUserDraw((m, p) => {
2226
- A.startPoint = m, p.drawCustomEntity(A), p.drawCustomEntity(o);
2289
+ ), D.setKeyWords("R"), D.setUserDraw((c, p) => {
2290
+ A.startPoint = c, p.drawCustomEntity(A), p.drawCustomEntity(o);
2227
2291
  }), !0;
2228
2292
  if (D.isKeyWordPicked("R"))
2229
2293
  D.setMessage(
2230
2294
  `
2231
2295
  \u6307\u5B9A\u5706\u5F27\u7684\u534A\u5F84${A.radius ? "<" + A.radius + ">" : ""}:`
2232
- ), D.setKeyWords(""), D.setUserDraw((m, p) => {
2233
- p.drawLine(m, A.center), A.startPoint = m, p.drawCustomEntity(A);
2296
+ ), D.setKeyWords(""), D.setUserDraw((c, p) => {
2297
+ p.drawLine(c, A.center), A.startPoint = c, p.drawCustomEntity(A);
2234
2298
  }), u();
2235
2299
  else
2236
2300
  return !0;
2237
2301
  }
2238
2302
  );
2239
- let a;
2240
- const h = M(
2303
+ let n;
2304
+ const m = M(
2241
2305
  D,
2242
2306
  () => {
2243
- a = D.value(), D.setMessage(`
2244
- \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), F = new YD(), F.color = E, F.autoClockwise = !0, F.closed = !1, R.use(F), D.setUserDraw((m, p) => {
2245
- F.point1 = B, F.point3 = a, F.point2 = m, p.drawCustomEntity(F);
2246
- }), y();
2307
+ n = D.value(), D.setMessage(`
2308
+ \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), F = new ZD(), F.color = E, F.autoClockwise = !0, F.closed = !1, L.use(F), D.setUserDraw((c, p) => {
2309
+ F.point1 = B, F.point3 = n, F.point2 = c, p.drawCustomEntity(F);
2310
+ }), b();
2247
2311
  },
2248
2312
  () => {
2249
2313
  if (D.isKeyWordPicked("C"))
2250
- A = new _(), A.closed = !1, R.use(A), A.color = E, D.setMessage(`
2251
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((m, p) => {
2252
- A.startPoint = B, p.drawLine(m, A.startPoint);
2253
- }), n();
2314
+ A = new $(), A.closed = !1, L.use(A), A.color = E, D.setMessage(`
2315
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((c, p) => {
2316
+ A.startPoint = B, p.drawLine(c, A.startPoint);
2317
+ }), r();
2254
2318
  else if (D.isKeyWordPicked("E"))
2255
- A = new _(), A.closed = !1, R.use(A), A.color = E, D.setMessage(`
2256
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((m, p) => {
2257
- A.startPoint = B, p.drawLine(m, A.startPoint);
2258
- }), n();
2319
+ A = new $(), A.closed = !1, L.use(A), A.color = E, D.setMessage(`
2320
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((c, p) => {
2321
+ A.startPoint = B, p.drawLine(c, A.startPoint);
2322
+ }), r();
2259
2323
  else
2260
2324
  return !0;
2261
2325
  }
2262
2326
  );
2263
- let b = i.GetCurrentMxCAD();
2264
- const y = M(
2327
+ let y = i.GetCurrentMxCAD();
2328
+ const b = M(
2265
2329
  D,
2266
2330
  () => {
2267
- F.point1 = B, F.point2 = D.value(), F.point3 = a;
2268
- let m = new eD();
2269
- m.computeArc(F.point1.x, F.point1.y, F.point3.x, F.point3.y, F.point2.x, F.point2.y), b.DrawEntity(m);
2331
+ F.point1 = B, F.point2 = D.value(), F.point3 = n;
2332
+ let c = new eD();
2333
+ c.computeArc(F.point1.x, F.point1.y, F.point3.x, F.point3.y, F.point2.x, F.point2.y), y.DrawEntity(c);
2270
2334
  },
2271
2335
  () => {
2272
2336
  if (D.isKeyWordPicked("C"))
@@ -2277,22 +2341,22 @@ async function UD() {
2277
2341
  return !0;
2278
2342
  }
2279
2343
  );
2280
- e();
2344
+ t();
2281
2345
  }
2282
- d.on("init", () => {
2283
- d.addCommand("Mx_Arc", UD);
2346
+ h.on("init", () => {
2347
+ h.addCommand("Mx_Arc", zD);
2284
2348
  });
2285
- function zD() {
2286
- const E = new S(), D = new QD();
2287
- D.closed = !1, R.use(D), E.setMessage(`
2349
+ function UD() {
2350
+ const E = new S(), D = new YD();
2351
+ D.closed = !1, L.use(D), E.setMessage(`
2288
2352
  \u6307\u5B9A\u692D\u5706\u7684\u8F74\u7AEF\u70B9`), E.setKeyWords("[\u4E2D\u5FC3\u70B9(C)]");
2289
2353
  let C, B = new THREE.Vector3();
2290
2354
  M(
2291
2355
  E,
2292
2356
  () => {
2293
- C = E.value(), E.setUserDraw((r, o) => {
2294
- const u = new THREE.Line3(C, r);
2295
- u.getCenter(B), D.center = B, D.xRadius = u.distance() / 2, D.yRadius = D.xRadius, D.rotation = X(r.x, r.y, B.x, B.y), o.drawLine(r, C);
2357
+ C = E.value(), E.setUserDraw((s, o) => {
2358
+ const u = new THREE.Line3(C, s);
2359
+ u.getCenter(B), D.center = B, D.xRadius = u.distance() / 2, D.yRadius = D.xRadius, D.rotation = X(s.x, s.y, B.x, B.y), o.drawLine(s, C);
2296
2360
  }), E.setMessage(`
2297
2361
  \u6307\u5B9A\u692D\u5706\u5F27\u8F74\u7684\u53E6\u4E00\u4E2A\u7AEF\u70B9:`), E.setKeyWords(""), A();
2298
2362
  },
@@ -2302,75 +2366,76 @@ function zD() {
2302
2366
  const A = M(
2303
2367
  E,
2304
2368
  () => {
2305
- E.setUserDraw((r, o) => {
2306
- D.yRadius = B.distanceTo(r), o.drawLine(B, r), o.drawCustomEntity(D);
2369
+ E.setUserDraw((s, o) => {
2370
+ D.yRadius = B.distanceTo(s), o.drawLine(B, s), o.drawCustomEntity(D);
2307
2371
  }), E.setMessage(`
2308
- \u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), E.setKeyWords(""), e();
2372
+ \u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), E.setKeyWords(""), t();
2309
2373
  },
2310
2374
  () => {
2311
2375
  }
2312
- ), e = M(
2376
+ ), t = M(
2313
2377
  E,
2314
2378
  () => {
2315
2379
  E.setMessage(`
2316
- \u6307\u5B9A\u8D77\u59CB\u89D2\u5EA6`), E.setKeyWords(""), E.setUserDraw((r, o) => {
2317
- D.startAngle = X(r.x, r.y, B.x, B.y) - D.rotation, o.drawLine(B, r), o.drawCustomEntity(D);
2318
- }), t();
2380
+ \u6307\u5B9A\u8D77\u59CB\u89D2\u5EA6`), E.setKeyWords(""), E.setUserDraw((s, o) => {
2381
+ D.startAngle = X(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2382
+ }), e();
2319
2383
  },
2320
2384
  () => {
2321
2385
  }
2322
- ), t = M(
2386
+ ), e = M(
2323
2387
  E,
2324
2388
  () => {
2325
- E.setUserDraw((r, o) => {
2326
- D.endAngle = X(r.x, r.y, B.x, B.y) - D.rotation, o.drawLine(B, r), o.drawCustomEntity(D);
2389
+ E.setUserDraw((s, o) => {
2390
+ D.endAngle = X(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2327
2391
  }), E.setMessage(`
2328
- \u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), E.setKeyWords(""), n();
2392
+ \u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), E.setKeyWords(""), r();
2329
2393
  },
2330
2394
  () => {
2331
2395
  }
2332
- ), n = M(
2396
+ ), r = M(
2333
2397
  E,
2334
2398
  () => {
2335
- let r = new g(D.xRadius, 0, 0);
2336
- r.rotateBy(D.rotation, g.kZAxis), i.GetCurrentMxCAD().DrawEllipseArc(D.center.x, D.center.y, r.x, r.y, D.yRadius / D.xRadius, D.startAngle, D.endAngle);
2399
+ let s = new w(D.xRadius, 0, 0);
2400
+ s.rotateBy(D.rotation, w.kZAxis), i.GetCurrentMxCAD().DrawEntity(new iD(D.center.x, D.center.y, 0, s.x, s.y, 0, D.yRadius / D.xRadius, D.startAngle, D.endAngle));
2337
2401
  },
2338
2402
  () => {
2339
2403
  }
2340
2404
  );
2341
2405
  }
2342
- function yC() {
2343
- const E = new S(), D = new XD(), C = new DC();
2344
- E.setMessage(`
2406
+ function wC() {
2407
+ const E = new S(), D = new QD(), C = new XD();
2408
+ let B = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2409
+ C.setColor(B), E.setMessage(`
2345
2410
  \u70B9\u51FB\u5F00\u59CB\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2346
- C.point1 = E.value(), D.setDraw((B) => {
2347
- C.point2 = B, D.drawCustomEntity(C);
2411
+ C.point1 = E.value(), D.setDraw((F) => {
2412
+ C.point2 = F, D.drawCustomEntity(C);
2348
2413
  }), E.setUserDraw(D), E.setMessage(`
2349
2414
  \u518D\u6B21\u70B9\u51FB\u7ED3\u675F\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2350
- i.GetCurrentMxCAD().DrawEllipse(C.center.x, C.center.y, C.xRadius, 0, C.yRadius / C.xRadius);
2415
+ i.GetCurrentMxCAD().DrawEntity(new iD(C.center.x, C.center.y, 0, C.xRadius, 0, 0, C.yRadius / C.xRadius));
2351
2416
  });
2352
2417
  });
2353
2418
  }
2354
- d.on("init", () => {
2355
- d.addCommand("Mx_EllipseArc", zD), d.addCommand("Mx_Ellipse", yC);
2419
+ h.on("init", () => {
2420
+ h.addCommand("Mx_EllipseArc", UD), h.addCommand("Mx_Ellipse", wC);
2356
2421
  });
2357
2422
  async function VD() {
2358
- (await iD.selectEnt(`
2423
+ (await rD.selectEnt(`
2359
2424
  \u9009\u62E9\u5220\u9664\u5BF9\u8C61`)).forEach((D) => {
2360
2425
  D.erase();
2361
2426
  });
2362
2427
  }
2363
- d.addCommand("Mx_Erase", VD);
2364
- const gC = async (E, D, C) => {
2428
+ h.addCommand("Mx_Erase", VD);
2429
+ const yC = async (E, D, C) => {
2365
2430
  const { locateFile: B } = C, F = B(E + ".js");
2366
2431
  return await vD(F), await globalThis[D](C);
2367
2432
  };
2368
- function bC(E) {
2433
+ function gC(E) {
2369
2434
  return typeof ResizeObserver == "function" ? new ResizeObserver(E) : null;
2370
2435
  }
2371
- function xC(E, D) {
2436
+ function bC(E, D) {
2372
2437
  const C = () => requestAnimationFrame(D);
2373
- let B = bC(C);
2438
+ let B = gC(C);
2374
2439
  if (B) {
2375
2440
  B.observe(E);
2376
2441
  return;
@@ -2380,7 +2445,7 @@ function xC(E, D) {
2380
2445
  return;
2381
2446
  }
2382
2447
  }
2383
- function fC(E, D) {
2448
+ function xC(E, D) {
2384
2449
  let C = null;
2385
2450
  return function(...B) {
2386
2451
  C || (C = setTimeout(() => {
@@ -2388,52 +2453,52 @@ function fC(E, D) {
2388
2453
  }, D));
2389
2454
  };
2390
2455
  }
2391
- class z {
2456
+ class V {
2392
2457
  static onloadWasmMxDraw3dModel;
2393
2458
  canvas;
2394
2459
  constructor(D) {
2395
2460
  const C = () => {
2396
- const u = this.canvas.parentElement?.clientWidth || window.innerWidth, c = this.canvas.parentElement?.clientHeight || window.innerHeight;
2397
- let s = Math.min(u, window.screen.availWidth), a = Math.min(c, window.screen.availHeight);
2398
- s = Math.max(A, s), a = Math.max(e, a), this.canvas.style.width = s + 1 + "px", this.canvas.style.height = a + "px";
2399
- const h = window.devicePixelRatio || 1;
2400
- this.canvas.width = s * h, this.canvas.height = a * h;
2401
- }, B = fC(C, 50), {
2461
+ const u = this.canvas.parentElement?.clientWidth || window.innerWidth, l = this.canvas.parentElement?.clientHeight || window.innerHeight;
2462
+ let d = Math.min(u, window.screen.availWidth), n = Math.min(l, window.screen.availHeight);
2463
+ d = Math.max(A, d), n = Math.max(t, n), this.canvas.style.width = d + 1 + "px", this.canvas.style.height = n + "px";
2464
+ const m = window.devicePixelRatio || 1;
2465
+ this.canvas.width = d * m, this.canvas.height = n * m;
2466
+ }, B = xC(C, 50), {
2402
2467
  canvas: F,
2403
2468
  minWidth: A = 300,
2404
- minHeight: e = 300,
2405
- updateCanvasSize: t = B,
2406
- ...n
2469
+ minHeight: t = 300,
2470
+ updateCanvasSize: e = B,
2471
+ ...r
2407
2472
  } = D;
2408
- let r = typeof F == "string" ? document.querySelectorAll(F)[0] : F, o = r.getContext("webgl2", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 });
2409
- o == null && (o = r.getContext("webgl", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 })), this.canvas = r, this.ctx = o, n.canvas = this.canvas;
2410
- for (let u in n)
2411
- this[u] = n[u];
2473
+ let s = typeof F == "string" ? document.querySelectorAll(F)[0] : F, o = s.getContext("webgl2", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 });
2474
+ o == null && (o = s.getContext("webgl", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 })), this.canvas = s, this.ctx = o, r.canvas = this.canvas;
2475
+ for (let u in r)
2476
+ this[u] = r[u];
2412
2477
  if (this.canvas instanceof HTMLCanvasElement) {
2413
2478
  const u = this.canvas.parentElement || document.body;
2414
- xC(u, t);
2479
+ bC(u, e);
2415
2480
  } else
2416
2481
  console.error("createMxDraw3d canvas \u53C2\u6570\u4E0D\u6B63\u786E \u65E0\u6CD5\u83B7\u53D6\u5230canvas\u5143\u7D20");
2417
- window.onresize = C, C(), gC("mxdraw3d_min", "mxdraw3d", this).then(() => {
2418
- z.onloadWasmMxDraw3dModel && z.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = t, this.open3DFile = (u) => {
2419
- const c = new FileReader();
2420
- c.onload = () => {
2421
- if (!!c.result && c.result instanceof ArrayBuffer) {
2422
- var s = new Uint8Array(c.result);
2423
- const a = this._malloc(s.length);
2424
- this.HEAPU8.set(s, a), this.openFromMemory(u.name, a, s.length, !0), this.displayGround(!0), this.canvas.focus();
2482
+ window.onresize = C, C(), yC("mxdraw3d_min", "mxdraw3d", this).then(() => {
2483
+ V.onloadWasmMxDraw3dModel && V.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = e, this.open3DFile = (u) => {
2484
+ const l = new FileReader();
2485
+ l.onload = () => {
2486
+ if (!!l.result && l.result instanceof ArrayBuffer) {
2487
+ var d = new Uint8Array(l.result);
2488
+ const n = this._malloc(d.length);
2489
+ this.HEAPU8.set(d, n), this.openFromMemory(u.name, n, d.length, !0), this.displayGround(!0), this.canvas.focus();
2425
2490
  }
2426
- }, c.readAsArrayBuffer(u);
2491
+ }, l.readAsArrayBuffer(u);
2427
2492
  };
2428
2493
  });
2429
2494
  }
2430
2495
  }
2431
- function MC(E, D) {
2496
+ function fC(E, D) {
2432
2497
  return new Promise(async (C, B) => {
2433
2498
  try {
2434
- E.locateFile || (E.locateFile = nC);
2435
- const F = new z(E);
2436
- z.onloadWasmMxDraw3dModel = () => {
2499
+ E.locateFile || (E.locateFile = sC);
2500
+ const F = new V(E);
2501
+ V.onloadWasmMxDraw3dModel = () => {
2437
2502
  C(F), D && D(F);
2438
2503
  };
2439
2504
  } catch (F) {
@@ -2441,135 +2506,137 @@ function MC(E, D) {
2441
2506
  }
2442
2507
  });
2443
2508
  }
2444
- const kC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2509
+ const TC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2445
2510
  __proto__: null,
2446
- b64Encode: lD,
2447
- b64Decode: cD,
2448
- saveAsFileDialog: mD,
2449
- downloadFile: pD,
2450
- downloadFileFromUrl: dD,
2451
- MxTools: N,
2452
- McGePoint3d: l,
2453
- McGeVector3d: g,
2454
- McGeMatrix3d: W,
2455
- McGeLongArray: BC,
2456
- McGeStringArray: hD,
2457
- McGePoint3dArray: EC,
2458
- getFilterImp: K,
2459
- McDrawResbuf: H,
2460
- McDrawUtilityClass: LD,
2461
- McDrawUtility: iD,
2462
- McDrawSelSet: eC,
2463
- McRxObject: O,
2511
+ b64Encode: cD,
2512
+ b64Decode: mD,
2513
+ saveAsFileDialog: pD,
2514
+ downloadFile: dD,
2515
+ downloadFileFromUrl: hD,
2516
+ MxTools: _,
2517
+ McGePoint3d: a,
2518
+ McGeVector3d: w,
2519
+ McGeMatrix3d: z,
2520
+ McGeLongArray: CC,
2521
+ McGeStringArray: wD,
2522
+ McGePoint3dArray: BC,
2523
+ getFilterImp: N,
2524
+ McDrawResbuf: q,
2525
+ McDrawUtilityClass: RD,
2526
+ McDrawUtility: rD,
2527
+ McDrawSelSet: tC,
2528
+ McRxObject: j,
2464
2529
  McObjectIdType: f,
2465
2530
  McObjectId: T,
2466
2531
  McDbObject: v,
2467
2532
  get McDb() {
2468
2533
  return CD;
2469
2534
  },
2470
- McCmColor: j,
2471
- McDbLayerTableRecord: tC,
2472
- McDbLayerTable: wD,
2473
- McDbLinetypeTable: yD,
2474
- McDbTextStyleTable: gD,
2535
+ McCmColor: G,
2536
+ McDbLayerTableRecord: AC,
2537
+ McDbLayerTable: yD,
2538
+ McDbLinetypeTable: gD,
2539
+ McDbTextStyleTable: bD,
2475
2540
  McDbDatabase: ED,
2476
- McDbBlockTableRecordIterator: bD,
2541
+ McDbBlockTableRecordIterator: xD,
2477
2542
  McDbBlockTableRecord: Y,
2478
- McDbBlockTableIterator: xD,
2479
- McDbBlockTable: fD,
2480
- McDbEntity: V,
2481
- McDbCurve: q,
2543
+ McDbBlockTableIterator: fD,
2544
+ McDbBlockTable: MD,
2545
+ McDbEntity: K,
2546
+ McDbCurve: H,
2482
2547
  McDbLine: Z,
2483
2548
  McDbText: BD,
2484
2549
  McDbMText: FD,
2485
- McDbCircle: AD,
2486
- McDbPolyline: MD,
2550
+ McDbCircle: O,
2551
+ McDbPolyline: AD,
2487
2552
  McDbBlockReference: TD,
2488
2553
  McDbDimension: tD,
2489
2554
  McDbAlignedDimension: kD,
2490
2555
  McDbRotatedDimension: PD,
2491
2556
  McDbArc: eD,
2557
+ McDbEllipse: iD,
2492
2558
  McObject: U,
2493
- McAppType: RD,
2559
+ McAppType: LD,
2494
2560
  MxCppType: SD,
2495
2561
  get MxCpp() {
2496
2562
  return i;
2497
2563
  },
2498
2564
  loadMxCADassembly: OD,
2499
- createMxCad: lC,
2500
- drawText: cC,
2565
+ createMxCad: uC,
2566
+ drawText: lC,
2501
2567
  drawCircle: jD,
2502
2568
  drawLine: GD,
2503
- drawMText: pC,
2569
+ drawMText: mC,
2504
2570
  drawPolyLine: ID,
2505
2571
  drawPolygon: WD,
2506
- drawArc: UD,
2507
- drawEllipticalArc: zD,
2572
+ drawArc: zD,
2573
+ drawEllipticalArc: UD,
2508
2574
  mxErase: VD,
2509
- MxDraw3d: z,
2510
- loadMxCADassembly3d: MC
2575
+ MxDraw3d: V,
2576
+ loadMxCADassembly3d: fC
2511
2577
  }, Symbol.toStringTag, { value: "Module" }));
2512
2578
  export {
2513
- RD as McAppType,
2514
- j as McCmColor,
2579
+ LD as McAppType,
2580
+ G as McCmColor,
2515
2581
  CD as McDb,
2516
2582
  kD as McDbAlignedDimension,
2517
2583
  eD as McDbArc,
2518
2584
  TD as McDbBlockReference,
2519
- fD as McDbBlockTable,
2520
- xD as McDbBlockTableIterator,
2585
+ MD as McDbBlockTable,
2586
+ fD as McDbBlockTableIterator,
2521
2587
  Y as McDbBlockTableRecord,
2522
- bD as McDbBlockTableRecordIterator,
2523
- AD as McDbCircle,
2524
- q as McDbCurve,
2588
+ xD as McDbBlockTableRecordIterator,
2589
+ O as McDbCircle,
2590
+ H as McDbCurve,
2525
2591
  ED as McDbDatabase,
2526
2592
  tD as McDbDimension,
2527
- V as McDbEntity,
2528
- wD as McDbLayerTable,
2529
- tC as McDbLayerTableRecord,
2593
+ iD as McDbEllipse,
2594
+ K as McDbEntity,
2595
+ yD as McDbLayerTable,
2596
+ AC as McDbLayerTableRecord,
2530
2597
  Z as McDbLine,
2531
- yD as McDbLinetypeTable,
2598
+ gD as McDbLinetypeTable,
2532
2599
  FD as McDbMText,
2533
2600
  v as McDbObject,
2534
- MD as McDbPolyline,
2601
+ AD as McDbPolyline,
2535
2602
  PD as McDbRotatedDimension,
2536
2603
  BD as McDbText,
2537
- gD as McDbTextStyleTable,
2538
- H as McDrawResbuf,
2539
- eC as McDrawSelSet,
2540
- iD as McDrawUtility,
2541
- LD as McDrawUtilityClass,
2542
- BC as McGeLongArray,
2543
- W as McGeMatrix3d,
2544
- l as McGePoint3d,
2545
- EC as McGePoint3dArray,
2546
- hD as McGeStringArray,
2547
- g as McGeVector3d,
2604
+ bD as McDbTextStyleTable,
2605
+ q as McDrawResbuf,
2606
+ tC as McDrawSelSet,
2607
+ rD as McDrawUtility,
2608
+ RD as McDrawUtilityClass,
2609
+ CC as McGeLongArray,
2610
+ z as McGeMatrix3d,
2611
+ a as McGePoint3d,
2612
+ BC as McGePoint3dArray,
2613
+ wD as McGeStringArray,
2614
+ w as McGeVector3d,
2548
2615
  U as McObject,
2549
2616
  T as McObjectId,
2550
2617
  f as McObjectIdType,
2551
- O as McRxObject,
2618
+ j as McRxObject,
2552
2619
  i as MxCpp,
2553
2620
  SD as MxCppType,
2554
- z as MxDraw3d,
2555
- N as MxTools,
2556
- cD as b64Decode,
2557
- lD as b64Encode,
2558
- lC as createMxCad,
2559
- kC as default,
2560
- pD as downloadFile,
2561
- dD as downloadFileFromUrl,
2562
- UD as drawArc,
2621
+ V as MxDraw3d,
2622
+ _ as MxTools,
2623
+ mD as b64Decode,
2624
+ cD as b64Encode,
2625
+ uC as createMxCad,
2626
+ TC as default,
2627
+ dD as downloadFile,
2628
+ hD as downloadFileFromUrl,
2629
+ zD as drawArc,
2563
2630
  jD as drawCircle,
2564
- zD as drawEllipticalArc,
2631
+ UD as drawEllipticalArc,
2565
2632
  GD as drawLine,
2566
- pC as drawMText,
2633
+ mC as drawMText,
2567
2634
  ID as drawPolyLine,
2568
2635
  WD as drawPolygon,
2569
- cC as drawText,
2570
- K as getFilterImp,
2636
+ lC as drawText,
2637
+ N as getFilterImp,
2571
2638
  OD as loadMxCADassembly,
2572
- MC as loadMxCADassembly3d,
2639
+ fC as loadMxCADassembly3d,
2573
2640
  VD as mxErase,
2574
- mD as saveAsFileDialog
2641
+ pD as saveAsFileDialog
2575
2642
  };