mxcad 1.0.72 → 1.0.74

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 { MxFun as h, MrxDbgUiPrPoint as k, MxCursorType as lD, MrxDbgUtils as cD, DynamicInputType as ZD, DetailedResult as X, store as mD, loadCoreCode as YD, MxPaintBrush as L, MrxDbgUiPrBaseReturn as x, MxDbCircleShape as pD, MxDbLine as J, MxDbPolyline as QD, MxDbCircleArc as $, Mx3PointArc as XD, MxDbEllipseShape as DC, McEdGetPointWorldDrawObject as CC, MxDbEllipse as BC } from "mxdraw";
2
- function dD(E) {
1
+ import { MxFun as h, MrxDbgUiPrPoint as T, MxCursorType as dD, MrxDbgUtils as hD, DynamicInputType as ZD, DetailedResult as FD, store as wD, loadCoreCode as YD, MxPaintBrush as L, MrxDbgUiPrBaseReturn as x, MxDbCircleShape as yD, MxDbLine as Z, MxDbPolyline as QD, MxDbCircleArc as J, Mx3PointArc as XD, MxDbEllipseShape as DC, McEdGetPointWorldDrawObject as CC, MxDbEllipse as BC } from "mxdraw";
2
+ function gD(E) {
3
3
  return btoa(unescape(encodeURIComponent(E)));
4
4
  }
5
- function hD(E) {
5
+ function bD(E) {
6
6
  return decodeURIComponent(escape(atob(E)));
7
7
  }
8
- async function wD({
8
+ async function xD({
9
9
  blob: E,
10
10
  filename: D = "",
11
11
  types: C = [
@@ -46,22 +46,22 @@ async function wD({
46
46
  console.error(B.name, B.message);
47
47
  }
48
48
  }
49
- function yD(E, D) {
49
+ function fD(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 gD(E, D) {
53
+ function MD(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
59
  const _ = {
60
- b64Encode: dD,
61
- b64Decode: hD,
62
- saveAsFileDialog: wD,
63
- downloadFile: yD,
64
- downloadFileFromUrl: gD
60
+ b64Encode: gD,
61
+ b64Decode: bD,
62
+ saveAsFileDialog: xD,
63
+ downloadFile: fD,
64
+ downloadFileFromUrl: MD
65
65
  };
66
66
  class EC {
67
67
  z = "D2BBB6A18140C6DF814181428143CDF2D5C9C8FDC9CFCFC2D8A2B2BBD3EB8144D8A4B3F38145D7A8C7D2D8A7CAC08146C7F0B1FBD2B5B4D4B6ABCBBFD8A9814781488149B6AA814AC1BDD1CF814BC9A5D8AD814CB8F6D1BEE3DCD6D0814D814EB7E1814FB4AE8150C1D98151D8BC8152CDE8B5A4CEAAD6F78153C0F6BED9D8AF815481558156C4CB8157BEC38158D8B1C3B4D2E58159D6AECEDAD5A7BAF5B7A6C0D6815AC6B9C5D2C7C7815BB9D4815CB3CBD2D2815D815ED8BFBEC5C6F2D2B2CFB0CFE7815F816081618162CAE981638164D8C081658166816781688169816AC2F2C2D2816BC8E9816C816D816E816F817081718172817381748175C7AC8176817781788179817A817B817CC1CB817DD3E8D5F9817ECAC2B6FED8A1D3DABFF78180D4C6BBA5D8C1CEE5BEAE81818182D8A88183D1C7D0A9818481858186D8BDD9EFCDF6BFBA8187BDBBBAA5D2E0B2FABAE0C4B68188CFEDBEA9CDA4C1C18189818A818BC7D7D9F1818CD9F4818D818E818F8190C8CBD8E9819181928193D2DACAB2C8CAD8ECD8EAD8C6BDF6C6CDB3F08194D8EBBDF1BDE98195C8D4B4D381968197C2D88198B2D6D7D0CACBCBFBD5CCB8B6CFC98199819A819BD9DAD8F0C7AA819CD8EE819DB4FAC1EED2D4819E819FD8ED81A0D2C7D8EFC3C781A181A281A3D1F681A4D6D9D8F281A5D8F5BCFEBCDB81A681A781A8C8CE81A9B7DD81AAB7C281ABC6F381AC81AD81AE81AF81B081B181B2D8F8D2C181B381B4CEE9BCBFB7FCB7A5D0DD81B581B681B781B881B9D6DAD3C5BBEFBBE1D8F181BA81BBC9A1CEB0B4AB81BCD8F381BDC9CBD8F6C2D7D8F781BE81BFCEB1D8F981C081C181C2B2AEB9C081C3D9A381C4B0E981C5C1E681C6C9EC81C7CBC581C8CBC6D9A481C981CA81CB81CC81CDB5E881CE81CFB5AB81D081D181D281D381D481D5CEBBB5CDD7A1D7F4D3D381D6CCE581D7BACE81D8D9A2D9DCD3E0D8FDB7F0D7F7D8FED8FAD9A1C4E381D981DAD3B6D8F4D9DD81DBD8FB81DCC5E581DD81DEC0D081DF81E0D1F0B0DB81E181E2BCD1D9A681E3D9A581E481E581E681E7D9ACD9AE81E8D9ABCAB981E981EA81EBD9A9D6B681EC81ED81EEB3DED9A881EFC0FD81F0CACC81F1D9AA81F2D9A781F381F4D9B081F581F6B6B181F781F881F9B9A981FAD2C081FB81FCCFC081FD81FEC2C28240BDC4D5ECB2E0C7C8BFEBD9AD8241D9AF8242CEEABAEE82438244824582468247C7D682488249824A824B824C824D824E824F8250B1E3825182528253B4D9B6EDD9B48254825582568257BFA182588259825AD9DEC7CEC0FED9B8825B825C825D825E825FCBD7B7FD8260D9B58261D9B7B1A3D3E1D9B98262D0C58263D9B682648265D9B18266D9B2C1A9D9B382678268BCF3D0DEB8A98269BEE3826AD9BD826B826C826D826ED9BA826FB0B3827082718272D9C28273827482758276827782788279827A827B827C827D827E8280D9C4B1B68281D9BF82828283B5B98284BEF3828582868287CCC8BAF2D2D08288D9C38289828ABDE8828BB3AB828C828D828ED9C5BEEB828FD9C6D9BBC4DF8290D9BED9C1D9C0829182928293829482958296829782988299829A829BD5AE829CD6B5829DC7E3829E829F82A082A1D9C882A282A382A4BCD9D9CA82A582A682A7D9BC82A8D9CBC6AB82A982AA82AB82AC82ADD9C982AE82AF82B082B1D7F682B2CDA382B382B482B582B682B782B882B982BABDA182BB82BC82BD82BE82BF82C0D9CC82C182C282C382C482C582C682C782C882C9C5BCCDB582CA82CB82CCD9CD82CD82CED9C7B3A5BFFE82CF82D082D182D2B8B582D382D4C0FC82D582D682D782D8B0F882D982DA82DB82DC82DD82DE82DF82E082E182E282E382E482E582E682E782E882E982EA82EB82EC82EDB4F682EED9CE82EFD9CFB4A2D9D082F082F1B4DF82F282F382F482F582F6B0C182F782F882F982FA82FB82FC82FDD9D1C9B582FE8340834183428343834483458346834783488349834A834B834C834D834E834F83508351CFF1835283538354835583568357D9D283588359835AC1C5835B835C835D835E835F836083618362836383648365D9D6C9AE8366836783688369D9D5D9D4D9D7836A836B836C836DCBDB836EBDA9836F8370837183728373C6A7837483758376837783788379837A837B837C837DD9D3D9D8837E83808381D9D9838283838384838583868387C8E583888389838A838B838C838D838E838F839083918392839383948395C0DC8396839783988399839A839B839C839D839E839F83A083A183A283A383A483A583A683A783A883A983AA83AB83AC83AD83AE83AF83B083B183B2B6F9D8A3D4CA83B3D4AAD0D6B3E4D5D783B4CFC8B9E283B5BFCB83B6C3E283B783B883B9B6D283BA83BBCDC3D9EED9F083BC83BD83BEB5B383BFB6B583C083C183C283C383C4BEA483C583C6C8EB83C783C8C8AB83C983CAB0CBB9ABC1F9D9E283CBC0BCB9B283CCB9D8D0CBB1F8C6E4BEDFB5E4D7C883CDD1F8BCE6CADE83CE83CFBCBDD9E6D8E783D083D1C4DA83D283D3B8D4C8BD83D483D5B2E1D4D983D683D783D883D9C3B083DA83DBC3E1DAA2C8DF83DCD0B483DDBEFCC5A983DE83DF83E0B9DA83E1DAA383E2D4A9DAA483E383E483E583E683E7D9FBB6AC83E883E9B7EBB1F9D9FCB3E5BEF683EABFF6D2B1C0E483EB83EC83EDB6B3D9FED9FD83EE83EFBEBB83F083F183F2C6E083F3D7BCDAA183F4C1B983F5B5F2C1E883F683F7BCF583F8B4D583F983FA83FB83FC83FD83FE844084418442C1DD8443C4FD84448445BCB8B7B284468447B7EF84488449844A844B844C844DD9EC844EC6BE844FBFADBBCB84508451B5CA8452DBC9D0D78453CDB9B0BCB3F6BBF7DBCABAAF8454D4E4B5B6B5F3D8D6C8D084558456B7D6C7D0D8D78457BFAF84588459DBBBD8D8845A845BD0CCBBAE845C845D845EEBBEC1D0C1F5D4F2B8D5B4B4845FB3F584608461C9BE846284638464C5D0846584668467C5D9C0FB8468B1F08469D8D9B9CE846AB5BD846B846CD8DA846D846ED6C6CBA2C8AFC9B2B4CCBFCC846FB9F48470D8DBD8DCB6E7BCC1CCEA847184728473847484758476CFF78477D8DDC7B084788479B9D0BDA3847A847BCCDE847CC6CA847D847E848084818482D8E08483D8DE84848485D8DF848684878488B0FE8489BEE7848ACAA3BCF4848B848C848D848EB8B1848F8490B8EE849184928493849484958496849784988499849AD8E2849BBDCB849CD8E4D8E3849D849E849F84A084A1C5FC84A284A384A484A584A684A784A8D8E584A984AAD8E684AB84AC84AD84AE84AF84B084B1C1A684B2C8B0B0ECB9A6BCD3CEF1DBBDC1D384B384B484B584B6B6AFD6FAC5ACBDD9DBBEDBBF84B784B884B9C0F8BEA2C0CD84BA84BB84BC84BD84BE84BF84C084C184C284C3DBC0CAC684C484C584C6B2AA84C784C884C9D3C284CAC3E384CBD1AB84CC84CD84CE84CFDBC284D0C0D584D184D284D3DBC384D4BFB184D584D684D784D884D984DAC4BC84DB84DC84DD84DEC7DA84DF84E084E184E284E384E484E584E684E784E884E9DBC484EA84EB84EC84ED84EE84EF84F084F1D9E8C9D784F284F384F4B9B4CEF0D4C884F584F684F784F8B0FCB4D284F9D0D984FA84FB84FC84FDD9E984FEDECBD9EB8540854185428543D8B0BBAFB1B18544B3D7D8CE85458546D4D185478548BDB3BFEF8549CFBB854A854BD8D0854C854D854EB7CB854F85508551D8D185528553855485558556855785588559855A855BC6A5C7F8D2BD855C855DD8D2C4E4855ECAAE855FC7A78560D8A68561C9FDCEE7BBDCB0EB856285638564BBAAD0AD8565B1B0D7E4D7BF8566B5A5C2F4C4CF85678568B2A98569B2B7856AB1E5DFB2D5BCBFA8C2ACD8D5C2B1856BD8D4CED4856CDAE0856DCEC0856E856FD8B4C3AED3A1CEA38570BCB4C8B4C2D18571BEEDD0B68572DAE18573857485758576C7E485778578B3A78579B6F2CCFCC0FA857A857BC0F7857CD1B9D1E1D8C7857D857E85808581858285838584B2DE85858586C0E58587BAF185888589D8C8858AD4AD858B858CCFE1D8C9858DD8CACFC3858EB3F8BEC7858F859085918592D8CB8593859485958596859785988599DBCC859A859B859C859DC8A5859E859F85A0CFD885A1C8FEB2CE85A285A385A485A585A6D3D6B2E6BCB0D3D1CBABB7B485A785A885A9B7A285AA85ABCAE585ACC8A1CADCB1E4D0F085ADC5D185AE85AF85B0DBC5B5FE85B185B2BFDAB9C5BEE4C1ED85B3DFB6DFB5D6BBBDD0D5D9B0C8B6A3BFC9CCA8DFB3CAB7D3D285B4D8CFD2B6BAC5CBBECCBE85B5DFB7B5F0DFB485B685B785B8D3F585B9B3D4B8F785BADFBA85BBBACFBCAAB5F585BCCDACC3FBBAF3C0F4CDC2CFF2DFB8CFC585BDC2C0DFB9C2F085BE85BF85C0BEFD85C1C1DFCDCCD2F7B7CDDFC185C2DFC485C385C4B7F1B0C9B6D6B7D485C5BAACCCFDBFD4CBB1C6F485C6D6A8DFC585C7CEE2B3B385C885C9CEFCB4B585CACEC7BAF085CBCEE185CCD1BD85CD85CEDFC085CF85D0B4F485D1B3CA85D2B8E6DFBB85D385D485D585D6C4C585D7DFBCDFBDDFBEC5BBDFBFDFC2D4B1DFC385D8C7BACED885D985DA85DB85DC85DDC4D885DEDFCA85DFDFCF85E0D6DC85E185E285E385E485E585E685E785E8DFC9DFDACEB685E9BAC7DFCEDFC8C5DE85EA85EBC9EBBAF4C3FC85EC85EDBED785EEDFC685EFDFCD85F0C5D885F185F285F385F4D5A6BACD85F5BECCD3BDB8C085F6D6E485F7DFC7B9BEBFA785F885F9C1FCDFCBDFCC85FADFD085FB85FC85FD85FE8640DFDBDFE58641DFD7DFD6D7C9DFE3DFE4E5EBD2A7DFD28642BFA98643D4DB8644BFC8DFD4864586468647CFCC86488649DFDD864AD1CA864BDFDEB0A7C6B7DFD3864CBAE5864DB6DFCDDBB9FED4D5864E864FDFDFCFECB0A5DFE7DFD1D1C6DFD5DFD8DFD9DFDC8650BBA98651DFE0DFE18652DFE2DFE6DFE8D3B486538654865586568657B8E7C5B6DFEAC9DAC1A8C4C486588659BFDECFF8865A865B865CD5DCDFEE865D865E865F866086618662B2B88663BADFDFEC8664DBC18665D1E48666866786688669CBF4B4BD866AB0A6866B866C866D866E866FDFF1CCC6DFF286708671DFED867286738674867586768677DFE986788679867A867BDFEB867CDFEFDFF0BBBD867D867EDFF386808681DFF48682BBA38683CADBCEA8E0A7B3AA8684E0A6868586868687E0A186888689868A868BDFFE868CCDD9DFFC868DDFFA868EBFD0D7C4868FC9CC86908691DFF8B0A186928693869486958696DFFD869786988699869ADFFBE0A2869B869C869D869E869FE0A886A086A186A286A3B7C886A486A5C6A1C9B6C0B2DFF586A686A7C5BE86A8D8C4DFF9C4F686A986AA86AB86AC86AD86AEE0A3E0A4E0A5D0A586AF86B0E0B4CCE486B1E0B186B2BFA6E0AFCEB9E0ABC9C686B386B4C0AEE0AEBAEDBAB0E0A986B586B686B7DFF686B8E0B386B986BAE0B886BB86BC86BDB4ADE0B986BE86BFCFB2BAC886C0E0B086C186C286C386C486C586C686C7D0FA86C886C986CA86CB86CC86CD86CE86CF86D0E0AC86D1D4FB86D2DFF786D3C5E786D4E0AD86D5D3F786D6E0B6E0B786D786D886D986DA86DBE0C4D0E186DC86DD86DEE0BC86DF86E0E0C9E0CA86E186E286E3E0BEE0AAC9A4E0C186E4E0B286E586E686E786E886E9CAC8E0C386EAE0B586EBCECB86ECCBC3E0CDE0C6E0C286EDE0CB86EEE0BAE0BFE0C086EF86F0E0C586F186F2E0C7E0C886F3E0CC86F4E0BB86F586F686F786F886F9CBD4E0D586FAE0D6E0D286FB86FC86FD86FE87408741E0D0BCCE87428743E0D18744B8C2D8C587458746874787488749874A874B874CD0EA874D874EC2EF874F8750E0CFE0BD875187528753E0D4E0D387548755E0D78756875787588759E0DCE0D8875A875B875CD6F6B3B0875DD7EC875ECBBB875F8760E0DA8761CEFB876287638764BAD987658766876787688769876A876B876C876D876E876F8770E0E1E0DDD2AD87718772877387748775E0E287768777E0DBE0D9E0DF87788779E0E0877A877B877C877D877EE0DE8780E0E4878187828783C6F7D8ACD4EBE0E6CAC98784878587868787E0E587888789878A878BB8C1878C878D878E878FE0E7E0E887908791879287938794879587968797E0E9E0E387988799879A879B879C879D879EBABFCCE7879F87A087A1E0EA87A287A387A487A587A687A787A887A987AA87AB87AC87AD87AE87AF87B0CFF987B187B287B387B487B587B687B787B887B987BA87BBE0EB87BC87BD87BE87BF87C087C187C2C8C287C387C487C587C6BDC087C787C887C987CA87CB87CC87CD87CE87CF87D087D187D287D3C4D287D487D587D687D787D887D987DA87DB87DCE0EC87DD87DEE0ED87DF87E0C7F4CBC487E1E0EEBBD8D8B6D2F2E0EFCDC587E2B6DA87E387E487E587E687E787E8E0F187E9D4B087EA87EBC0A7B4D187EC87EDCEA7E0F087EE87EF87F0E0F2B9CC87F187F2B9FACDBCE0F387F387F487F5C6D4E0F487F6D4B287F7C8A6E0F6E0F587F887F987FA87FB87FC87FD87FE8840884188428843884488458846884788488849E0F7884A884BCDC1884C884D884ECAA5884F885088518852D4DADBD7DBD98853DBD8B9E7DBDCDBDDB5D888548855DBDA8856885788588859885ADBDBB3A1DBDF885B885CBBF8885DD6B7885EDBE0885F886088618862BEF988638864B7BB8865DBD0CCAEBFB2BBB5D7F8BFD38866886788688869886ABFE9886B886CBCE1CCB3DBDEB0D3CEEBB7D8D7B9C6C2886D886EC0A4886FCCB98870DBE7DBE1C6BADBE38871DBE88872C5F7887388748875DBEA88768877DBE9BFC088788879887ADBE6DBE5887B887C887D887E8880B4B9C0ACC2A2DBE2DBE48881888288838884D0CDDBED88858886888788888889C0DDDBF2888A888B888C888D888E888F8890B6E28891889288938894DBF3DBD2B9B8D4ABDBEC8895BFD1DBF08896DBD18897B5E68898DBEBBFE58899889A889BDBEE889CDBF1889D889E889FDBF988A088A188A288A388A488A588A688A788A8B9A1B0A388A988AA88AB88AC88AD88AE88AFC2F188B088B1B3C7DBEF88B288B3DBF888B4C6D2DBF488B588B6DBF5DBF7DBF688B788B8DBFE88B9D3F2B2BA88BA88BB88BCDBFD88BD88BE88BF88C088C188C288C388C4DCA488C5DBFB88C688C788C888C9DBFA88CA88CB88CCDBFCC5E0BBF988CD88CEDCA388CF88D0DCA588D1CCC388D288D388D4B6D1DDC088D588D688D7DCA188D8DCA288D988DA88DBC7B588DC88DD88DEB6E988DF88E088E1DCA788E288E388E488E5DCA688E6DCA9B1A488E788E8B5CC88E988EA88EB88EC88EDBFB088EE88EF88F088F188F2D1DF88F388F488F588F6B6C288F788F888F988FA88FB88FC88FD88FE894089418942894389448945DCA88946894789488949894A894B894CCBFAEBF3894D894E894FCBDC89508951CBFE895289538954CCC189558956895789588959C8FB895A895B895C895D895E895FDCAA89608961896289638964CCEEDCAB89658966896789688969896A896B896C896D896E896F897089718972897389748975DBD38976DCAFDCAC8977BEB38978CAFB8979897A897BDCAD897C897D897E89808981898289838984C9CAC4B989858986898789888989C7BDDCAE898A898B898CD4F6D0E6898D898E898F89908991899289938994C4ABB6D589958996899789988999899A899B899C899D899E899F89A089A189A289A389A489A589A6DBD489A789A889A989AAB1DA89AB89AC89ADDBD589AE89AF89B089B189B289B389B489B589B689B789B8DBD689B989BA89BBBABE89BC89BD89BE89BF89C089C189C289C389C489C589C689C789C889C9C8C089CA89CB89CC89CD89CE89CFCABFC8C989D0D7B389D1C9F989D289D3BFC789D489D5BAF889D689D7D2BC89D889D989DA89DB89DC89DD89DE89DFE2BA89E0B4A689E189E2B1B889E389E489E589E689E7B8B489E8CFC489E989EA89EB89ECD9E7CFA6CDE289ED89EED9EDB6E089EFD2B989F089F1B9BB89F289F389F489F5E2B9E2B789F6B4F389F7CCECCCABB7F289F8D8B2D1EBBABB89F9CAA789FA89FBCDB789FC89FDD2C4BFE4BCD0B6E189FEDEC58A408A418A428A43DEC6DBBC8A44D1D98A458A46C6E6C4CEB7EE8A47B7DC8A488A49BFFCD7E08A4AC6F58A4B8A4CB1BCDEC8BDB1CCD7DECA8A4DDEC98A4E8A4F8A508A518A52B5EC8A53C9DD8A548A55B0C28A568A578A588A598A5A8A5B8A5C8A5D8A5E8A5F8A608A618A62C5AEC5AB8A63C4CC8A64BCE9CBFD8A658A668A67BAC38A688A698A6AE5F9C8E7E5FACDFD8A6BD7B1B8BEC2E88A6CC8D18A6D8A6EE5FB8A6F8A708A718A72B6CABCCB8A738A74D1FDE6A18A75C3EE8A768A778A788A79E6A48A7A8A7B8A7C8A7DE5FEE6A5CDD78A7E8A80B7C1E5FCE5FDE6A38A818A82C4DDE6A88A838A84E6A78A858A868A878A888A898A8AC3C38A8BC6DE8A8C8A8DE6AA8A8E8A8F8A908A918A928A938A94C4B78A958A968A97E6A2CABC8A988A998A9A8A9BBDE3B9C3E6A6D0D5CEAF8A9C8A9DE6A9E6B08A9ED2A68A9FBDAAE6AD8AA08AA18AA28AA38AA4E6AF8AA5C0D18AA68AA7D2CC8AA88AA98AAABCA78AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB38AB48AB58AB6E6B18AB7D2F68AB88AB98ABAD7CB8ABBCDFE8ABCCDDEC2A6E6ABE6ACBDBFE6AEE6B38ABD8ABEE6B28ABF8AC08AC18AC2E6B68AC3E6B88AC48AC58AC68AC7C4EF8AC88AC98ACAC4C88ACB8ACCBEEAC9EF8ACD8ACEE6B78ACFB6F08AD08AD18AD2C3E48AD38AD48AD58AD68AD78AD88AD9D3E9E6B48ADAE6B58ADBC8A28ADC8ADD8ADE8ADF8AE0E6BD8AE18AE28AE3E6B98AE48AE58AE68AE78AE8C6C58AE98AEACDF1E6BB8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF38AF4E6BC8AF58AF68AF78AF8BBE98AF98AFA8AFB8AFC8AFD8AFE8B40E6BE8B418B428B438B44E6BA8B458B46C0B78B478B488B498B4A8B4B8B4C8B4D8B4E8B4FD3A4E6BFC9F4E6C38B508B51E6C48B528B538B548B55D0F68B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B658B668B67C3BD8B688B698B6A8B6B8B6C8B6D8B6EC3C4E6C28B6F8B708B718B728B738B748B758B768B778B788B798B7A8B7B8B7CE6C18B7D8B7E8B808B818B828B838B84E6C7CFB18B85EBF48B868B87E6CA8B888B898B8A8B8B8B8CE6C58B8D8B8EBCDEC9A98B8F8B908B918B928B938B94BCB58B958B96CFD38B978B988B998B9A8B9BE6C88B9CE6C98B9DE6CE8B9EE6D08B9F8BA08BA1E6D18BA28BA38BA4E6CBB5D58BA5E6CC8BA68BA7E6CF8BA88BA9C4DB8BAAE6C68BAB8BAC8BAD8BAE8BAFE6CD8BB08BB18BB28BB38BB48BB58BB68BB78BB88BB98BBA8BBB8BBC8BBD8BBE8BBF8BC08BC18BC28BC38BC48BC58BC6E6D28BC78BC88BC98BCA8BCB8BCC8BCD8BCE8BCF8BD08BD18BD2E6D4E6D38BD38BD48BD58BD68BD78BD88BD98BDA8BDB8BDC8BDD8BDE8BDF8BE08BE18BE28BE38BE48BE58BE68BE78BE88BE98BEA8BEB8BECE6D58BEDD9F88BEE8BEFE6D68BF08BF18BF28BF38BF48BF58BF68BF7E6D78BF88BF98BFA8BFB8BFC8BFD8BFE8C408C418C428C438C448C458C468C47D7D3E6DD8C48E6DEBFD7D4D08C49D7D6B4E6CBEFE6DAD8C3D7CED0A28C4AC3CF8C4B8C4CE6DFBCBEB9C2E6DBD1A78C4D8C4EBAA2C2CF8C4FD8AB8C508C518C52CAEBE5EE8C53E6DC8C54B7F58C558C568C578C58C8E68C598C5AC4F58C5B8C5CE5B2C4FE8C5DCBFCE5B3D5AC8C5ED3EECAD8B0B28C5FCBCECDEA8C608C61BAEA8C628C638C64E5B58C65E5B48C66D7DAB9D9D6E6B6A8CDF0D2CBB1A6CAB58C67B3E8C9F3BFCDD0FBCAD2E5B6BBC28C688C698C6ACFDCB9AC8C6B8C6C8C6D8C6ED4D78C6F8C70BAA6D1E7CFFCBCD28C71E5B7C8DD8C728C738C74BFEDB1F6CBDE8C758C76BCC58C77BCC4D2FAC3DCBFDC8C788C798C7A8C7BB8BB8C7C8C7D8C7EC3C28C80BAAED4A28C818C828C838C848C858C868C878C888C89C7DEC4AFB2EC8C8AB9D18C8B8C8CE5BBC1C88C8D8C8ED5AF8C8F8C908C918C928C93E5BC8C94E5BE8C958C968C978C988C998C9A8C9BB4E7B6D4CBC2D1B0B5BC8C9C8C9DCAD98C9EB7E28C9F8CA0C9E48CA1BDAB8CA28CA3CEBED7F08CA48CA58CA68CA7D0A18CA8C9D98CA98CAAB6FBE6D8BCE28CABB3BE8CACC9D08CADE6D9B3A28CAE8CAF8CB08CB1DECC8CB2D3C8DECD8CB3D2A28CB48CB58CB68CB7DECE8CB88CB98CBA8CBBBECD8CBC8CBDDECF8CBE8CBF8CC0CAACD2FCB3DFE5EAC4E1BEA1CEB2C4F2BED6C6A8B2E38CC18CC2BED38CC38CC4C7FCCCEBBDECCEDD8CC58CC6CABAC6C1E5ECD0BC8CC78CC88CC9D5B98CCA8CCB8CCCE5ED8CCD8CCE8CCF8CD0CAF48CD1CDC0C2C58CD2E5EF8CD3C2C4E5F08CD48CD58CD68CD78CD88CD98CDAE5F8CDCD8CDBC9BD8CDC8CDD8CDE8CDF8CE08CE18CE2D2D9E1A88CE38CE48CE58CE6D3EC8CE7CBEAC6F18CE88CE98CEA8CEB8CECE1AC8CED8CEE8CEFE1A7E1A98CF08CF1E1AAE1AF8CF28CF3B2ED8CF4E1ABB8DAE1ADE1AEE1B0B5BAE1B18CF58CF68CF78CF88CF9E1B3E1B88CFA8CFB8CFC8CFD8CFED1D28D40E1B6E1B5C1EB8D418D428D43E1B78D44D4C08D45E1B28D46E1BAB0B68D478D488D498D4AE1B48D4BBFF98D4CE1B98D4D8D4EE1BB8D4F8D508D518D528D538D54E1BE8D558D568D578D588D598D5AE1BC8D5B8D5C8D5D8D5E8D5F8D60D6C58D618D628D638D648D658D668D67CFBF8D688D69E1BDE1BFC2CD8D6AB6EB8D6BD3F88D6C8D6DC7CD8D6E8D6FB7E58D708D718D728D738D748D758D768D778D788D79BEFE8D7A8D7B8D7C8D7D8D7E8D80E1C0E1C18D818D82E1C7B3E78D838D848D858D868D878D88C6E98D898D8A8D8B8D8C8D8DB4DE8D8ED1C28D8F8D908D918D92E1C88D938D94E1C68D958D968D978D988D99E1C58D9AE1C3E1C28D9BB1C08D9C8D9D8D9ED5B8E1C48D9F8DA08DA18DA28DA3E1CB8DA48DA58DA68DA78DA88DA98DAA8DABE1CCE1CA8DAC8DAD8DAE8DAF8DB08DB18DB28DB3EFFA8DB48DB5E1D3E1D2C7B68DB68DB78DB88DB98DBA8DBB8DBC8DBD8DBE8DBF8DC0E1C98DC18DC2E1CE8DC3E1D08DC48DC58DC68DC78DC88DC98DCA8DCB8DCC8DCD8DCEE1D48DCFE1D1E1CD8DD08DD1E1CF8DD28DD38DD48DD5E1D58DD68DD78DD88DD98DDA8DDB8DDC8DDD8DDE8DDF8DE08DE18DE2E1D68DE38DE48DE58DE68DE78DE88DE98DEA8DEB8DEC8DED8DEE8DEF8DF08DF18DF28DF38DF48DF58DF68DF78DF8E1D78DF98DFA8DFBE1D88DFC8DFD8DFE8E408E418E428E438E448E458E468E478E488E498E4A8E4B8E4C8E4D8E4E8E4F8E508E518E528E538E548E55E1DA8E568E578E588E598E5A8E5B8E5C8E5D8E5E8E5F8E608E618E62E1DB8E638E648E658E668E678E688E69CEA18E6A8E6B8E6C8E6D8E6E8E6F8E708E718E728E738E748E758E76E7DD8E77B4A8D6DD8E788E79D1B2B3B28E7A8E7BB9A4D7F3C7C9BEDEB9AE8E7CCED78E7D8E7EB2EEDBCF8E80BCBAD2D1CBC8B0CD8E818E82CFEF8E838E848E858E868E87D9E3BDED8E888E89B1D2CAD0B2BC8E8ACBA7B7AB8E8BCAA68E8C8E8D8E8ECFA38E8F8E90E0F8D5CAE0FB8E918E92E0FAC5C1CCFB8E93C1B1E0F9D6E3B2AFD6C4B5DB8E948E958E968E978E988E998E9A8E9BB4F8D6A18E9C8E9D8E9E8E9F8EA0CFAFB0EF8EA18EA2E0FC8EA38EA48EA58EA68EA7E1A1B3A38EA88EA9E0FDE0FEC3B18EAA8EAB8EAC8EADC3DD8EAEE1A2B7F98EAF8EB08EB18EB28EB38EB4BBCF8EB58EB68EB78EB88EB98EBA8EBBE1A3C4BB8EBC8EBD8EBE8EBF8EC0E1A48EC18EC2E1A58EC38EC4E1A6B4B18EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF8ED08ED18ED28ED3B8C9C6BDC4EA8ED4B2A28ED5D0D28ED6E7DBBBC3D3D7D3C48ED7B9E3E2CF8ED88ED98EDAD7AF8EDBC7ECB1D38EDC8EDDB4B2E2D18EDE8EDF8EE0D0F2C2AEE2D08EE1BFE2D3A6B5D7E2D2B5EA8EE2C3EDB8FD8EE3B8AE8EE4C5D3B7CFE2D48EE58EE68EE78EE8E2D3B6C8D7F98EE98EEA8EEB8EEC8EEDCDA58EEE8EEF8EF08EF18EF2E2D88EF3E2D6CAFCBFB5D3B9E2D58EF48EF58EF68EF7E2D78EF88EF98EFA8EFB8EFC8EFD8EFE8F408F418F42C1AEC0C88F438F448F458F468F478F48E2DBE2DAC0AA8F498F4AC1CE8F4B8F4C8F4D8F4EE2DC8F4F8F508F518F528F538F548F558F568F578F588F598F5AE2DD8F5BE2DE8F5C8F5D8F5E8F5F8F608F618F628F638F64DBC88F65D1D3CDA28F668F67BDA88F688F698F6ADEC3D8A5BFAADBCDD2ECC6FAC5AA8F6B8F6C8F6DDEC48F6EB1D7DFAE8F6F8F708F71CABD8F72DFB18F73B9AD8F74D2FD8F75B8A5BAEB8F768F77B3DA8F788F798F7AB5DCD5C58F7B8F7C8F7D8F7EC3D6CFD2BBA18F80E5F3E5F28F818F82E5F48F83CDE48F84C8F58F858F868F878F888F898F8A8F8BB5AFC7BF8F8CE5F68F8D8F8E8F8FECB08F908F918F928F938F948F958F968F978F988F998F9A8F9B8F9C8F9D8F9EE5E68F9FB9E9B5B18FA0C2BCE5E8E5E7E5E98FA18FA28FA38FA4D2CD8FA58FA68FA7E1EAD0CE8FA8CDAE8FA9D1E58FAA8FABB2CAB1EB8FACB1F2C5ED8FAD8FAED5C3D3B08FAFE1DC8FB08FB18FB2E1DD8FB3D2DB8FB4B3B9B1CB8FB58FB68FB7CDF9D5F7E1DE8FB8BEB6B4FD8FB9E1DFBADCE1E0BBB2C2C9E1E18FBA8FBB8FBCD0EC8FBDCDBD8FBE8FBFE1E28FC0B5C3C5C7E1E38FC18FC2E1E48FC38FC48FC58FC6D3F98FC78FC88FC98FCA8FCB8FCCE1E58FCDD1AD8FCE8FCFE1E6CEA28FD08FD18FD28FD38FD48FD5E1E78FD6B5C28FD78FD88FD98FDAE1E8BBD58FDB8FDC8FDD8FDE8FDFD0C4E2E0B1D8D2E48FE08FE1E2E18FE28FE3BCC9C8CC8FE4E2E3ECFEECFDDFAF8FE58FE68FE7E2E2D6BECDFCC3A68FE88FE98FEAE3C38FEB8FECD6D2E2E78FED8FEEE2E88FEF8FF0D3C78FF18FF2E2ECBFEC8FF3E2EDE2E58FF48FF5B3C08FF68FF78FF8C4EE8FF98FFAE2EE8FFB8FFCD0C38FFDBAF6E2E9B7DEBBB3CCACCBCBE2E4E2E6E2EAE2EB8FFE90409041E2F790429043E2F4D4F5E2F390449045C5AD9046D5FAC5C2B2C090479048E2EF9049E2F2C1AFCBBC904A904BB5A1E2F9904C904D904EBCB1E2F1D0D4D4B9E2F5B9D6E2F6904F90509051C7D390529053905490559056E2F0905790589059905A905BD7DCEDA1905C905DE2F8905EEDA5E2FECAD1905F906090619062906390649065C1B59066BBD090679068BFD69069BAE3906A906BCBA1906C906D906EEDA6EDA3906F9070EDA29071907290739074BBD6EDA7D0F490759076EDA4BADEB6F7E3A1B6B2CCF1B9A79077CFA2C7A190789079BFD2907A907BB6F1907CE2FAE2FBE2FDE2FCC4D5E3A2907DD3C1907E90809081E3A7C7C49082908390849085CFA490869087E3A9BAB790889089908A908BE3A8908CBBDA908DE3A3908E908F9090E3A4E3AA9091E3A69092CEF2D3C690939094BBBC90959096D4C39097C4FA90989099EDA8D0FCE3A5909AC3F5909BE3ADB1AF909CE3B2909D909E909FBCC290A090A1E3ACB5BF90A290A390A490A590A690A790A890A9C7E9E3B090AA90AB90ACBEAACDEF90AD90AE90AF90B090B1BBF390B290B390B4CCE890B590B6E3AF90B7E3B190B8CFA7E3AE90B9CEA9BBDD90BA90BB90BC90BD90BEB5EBBEE5B2D2B3CD90BFB1B9E3ABB2D1B5ACB9DFB6E890C090C1CFEBE3B790C2BBCC90C390C4C8C7D0CA90C590C690C790C890C9E3B8B3EE90CA90CB90CC90CDEDA990CED3FAD3E490CF90D090D1EDAAE3B9D2E290D290D390D490D590D6E3B590D790D890D990DAD3DE90DB90DC90DD90DEB8D0E3B390DF90E0E3B6B7DF90E1E3B4C0A290E290E390E4E3BA90E590E690E790E890E990EA90EB90EC90ED90EE90EF90F090F190F290F390F490F590F690F7D4B890F890F990FA90FB90FC90FD90FE9140B4C89141E3BB9142BBC59143C9F791449145C9E5914691479148C4BD9149914A914B914C914D914E914FEDAB9150915191529153C2FD9154915591569157BBDBBFAE91589159915A915B915C915D915ECEBF915F916091619162E3BC9163BFB6916491659166916791689169916A916B916C916D916E916F9170917191729173917491759176B1EF91779178D4F79179917A917B917C917DE3BE917E9180918191829183918491859186EDAD918791889189918A918B918C918D918E918FE3BFBAA9EDAC91909191E3BD91929193919491959196919791989199919A919BE3C0919C919D919E919F91A091A1BAB691A291A391A4B6AE91A591A691A791A891A9D0B891AAB0C3EDAE91AB91AC91AD91AE91AFEDAFC0C191B0E3C191B191B291B391B491B591B691B791B891B991BA91BB91BC91BD91BE91BF91C091C1C5B391C291C391C491C591C691C791C891C991CA91CB91CC91CD91CE91CFE3C291D091D191D291D391D491D591D691D791D8DCB291D991DA91DB91DC91DD91DEEDB091DFB8EA91E0CEECEAA7D0E7CAF9C8D6CFB7B3C9CED2BDE491E191E2E3DEBBF2EAA8D5BD91E3C6DDEAA991E491E591E6EAAA91E7EAACEAAB91E8EAAEEAAD91E991EA91EB91ECBDD891EDEAAF91EEC2BE91EF91F091F191F2B4C1B4F791F391F4BBA791F591F691F791F891F9ECE6ECE5B7BFCBF9B1E291FAECE791FB91FC91FDC9C8ECE8ECE991FECAD6DED0B2C5D4FA92409241C6CBB0C7B4F2C8D3924292439244CDD092459246BFB8924792489249924A924B924C924DBFDB924E924FC7A4D6B49250C0A9DED1C9A8D1EFC5A4B0E7B3B6C8C592519252B0E292539254B7F692559256C5FA92579258B6F39259D5D2B3D0BCBC925A925B925CB3AD925D925E925F9260BEF1B0D1926192629263926492659266D2D6CAE3D7A59267CDB6B6B6BFB9D5DB9268B8A7C5D79269926A926BDED2BFD9C2D5C7C0926CBBA4B1A8926D926EC5EA926F9270C5FBCCA79271927292739274B1A7927592769277B5D692789279927AC4A8927BDED3D1BAB3E9927CC3F2927D927EB7F79280D6F4B5A3B2F0C4B4C4E9C0ADDED49281B0E8C5C4C1E09282B9D59283BEDCCDD8B0CE9284CDCFDED6BED0D7BEDED5D5D0B0DD92859286C4E292879288C2A3BCF09289D3B5C0B9C5A1B2A6D4F1928A928BC0A8CAC3DED7D5FC928CB9B0928DC8ADCBA9928EDED9BFBD928F929092919292C6B4D7A7CAB0C4C39293B3D6B9D29294929592969297D6B8EAFCB0B492989299929A929BBFE6929C929DCCF4929E929F92A092A1CDDA92A292A392A4D6BFC2CE92A5CECECCA2D0AEC4D3B5B2DED8D5F5BCB7BBD392A692A7B0A492A8C5B2B4EC92A992AA92ABD5F192AC92ADEAFD92AE92AF92B092B192B292B3DEDACDA692B492B5CDEC92B692B792B892B9CEE6DEDC92BACDB1C0A692BB92BCD7BD92BDDEDBB0C6BAB4C9D3C4F3BEE892BE92BF92C092C1B2B692C292C392C492C592C692C792C892C9C0CCCBF092CABCF1BBBBB5B792CB92CC92CDC5F592CEDEE692CF92D092D1DEE3BEDD92D292D3DEDF92D492D592D692D7B4B7BDDD92D892D9DEE0C4ED92DA92DB92DC92DDCFC692DEB5E092DF92E092E192E2B6DECADAB5F4DEE592E3D5C692E4DEE1CCCDC6FE92E5C5C592E692E792E8D2B492E9BEF292EA92EB92EC92ED92EE92EF92F0C2D392F1CCBDB3B892F2BDD392F3BFD8CDC6D1DAB4EB92F4DEE4DEDDDEE792F5EAFE92F692F7C2B0DEE292F892F9D6C0B5A792FAB2F492FBDEE892FCDEF292FD92FE934093419342DEED9343DEF193449345C8E0934693479348D7E1DEEFC3E8CCE19349B2E5934A934B934CD2BE934D934E934F9350935193529353DEEE9354DEEBCED59355B4A79356935793589359935ABFABBEBE935B935CBDD2935D935E935F9360DEE99361D4AE9362DEDE9363DEEA9364936593669367C0BF9368DEECB2F3B8E9C2A79369936ABDC1936B936C936D936E936FDEF5DEF893709371B2ABB4A493729373B4EAC9A6937493759376937793789379DEF6CBD1937AB8E3937BDEF7DEFA937C937D937E9380DEF9938193829383CCC29384B0E1B4EE93859386938793889389938AE5BA938B938C938D938E938FD0AF93909391B2EB9392EBA19393DEF493949395C9E3DEF3B0DAD2A1B1F79396CCAF939793989399939A939B939C939DDEF0939ECBA4939F93A093A1D5AA93A293A393A493A593A6DEFB93A793A893A993AA93AB93AC93AD93AEB4DD93AFC4A693B093B193B2DEFD93B393B493B593B693B793B893B993BA93BB93BCC3FEC4A1DFA193BD93BE93BF93C093C193C293C3C1CC93C4DEFCBEEF93C5C6B293C693C793C893C993CA93CB93CC93CD93CEB3C5C8F693CF93D0CBBADEFE93D193D2DFA493D393D493D593D6D7B293D793D893D993DA93DBB3B793DC93DD93DE93DFC1C393E093E1C7CBB2A5B4E993E2D7AB93E393E493E593E6C4EC93E7DFA2DFA393E8DFA593E9BAB393EA93EB93ECDFA693EDC0DE93EE93EFC9C393F093F193F293F393F493F593F6B2D9C7E693F7DFA793F8C7DC93F993FA93FB93FCDFA8EBA293FD93FE944094419442CBD3944394449445DFAA9446DFA99447B2C194489449944A944B944C944D944E944F9450945194529453945494559456945794589459945A945B945C945D945E945F9460C5CA94619462946394649465946694679468DFAB9469946A946B946C946D946E946F9470D4DC94719472947394749475C8C19476947794789479947A947B947C947D947E948094819482DFAC94839484948594869487BEF094889489DFADD6A7948A948B948C948DEAB7EBB6CAD5948ED8FCB8C4948FB9A594909491B7C5D5FE94929493949494959496B9CA94979498D0A7F4CD9499949AB5D0949B949CC3F4949DBEC8949E949F94A0EBB7B0BD94A194A2BDCC94A3C1B294A4B1D6B3A894A594A694A7B8D2C9A294A894A9B6D894AA94AB94AC94ADEBB8BEB494AE94AF94B0CAFD94B1C7C394B2D5FB94B394B4B7F394B594B694B794B894B994BA94BB94BC94BD94BE94BF94C094C194C294C3CEC494C494C594C6D5ABB1F394C794C894C9ECB3B0DF94CAECB594CB94CC94CDB6B794CEC1CF94CFF5FAD0B194D094D1D5E594D2CED394D394D4BDEFB3E294D5B8AB94D6D5B694D7EDBD94D8B6CF94D9CBB9D0C294DA94DB94DC94DD94DE94DF94E094E1B7BD94E294E3ECB6CAA994E494E594E6C5D494E7ECB9ECB8C2C3ECB794E894E994EA94EBD0FDECBA94ECECBBD7E594ED94EEECBC94EF94F094F1ECBDC6EC94F294F394F494F594F694F794F894F9CEDE94FABCC894FB94FCC8D5B5A9BEC9D6BCD4E794FD94FED1AED0F1EAB8EAB9EABABAB59540954195429543CAB1BFF595449545CDFA9546954795489549954AEAC0954BB0BAEABE954C954DC0A5954E954F9550EABB9551B2FD9552C3F7BBE8955395549555D2D7CEF4EABF955695579558EABC9559955A955BEAC3955CD0C7D3B3955D955E955F9560B4BA9561C3C1D7F29562956395649565D5D19566CAC79567EAC595689569EAC4EAC7EAC6956A956B956C956D956ED6E7956FCFD495709571EACB9572BBCE9573957495759576957795789579BDFAC9CE957A957BEACC957C957DC9B9CFFEEACAD4CEEACDEACF957E9580CDED9581958295839584EAC99585EACE95869587CEEE9588BBDE9589B3BF958A958B958C958D958EC6D5BEB0CEFA958F95909591C7E79592BEA7EAD095939594D6C7959595969597C1C095989599959AD4DD959BEAD1959C959DCFBE959E959F95A095A1EAD295A295A395A495A5CAEE95A695A795A895A9C5AFB0B595AA95AB95AC95AD95AEEAD495AF95B095B195B295B395B495B595B695B7EAD3F4DF95B895B995BA95BB95BCC4BA95BD95BE95BF95C095C1B1A995C295C395C495C5E5DF95C695C795C895C9EAD595CA95CB95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB95DC95DD95DE95DF95E095E195E295E3CAEF95E4EAD6EAD7C6D895E595E695E795E895E995EA95EB95ECEAD895ED95EEEAD995EF95F095F195F295F395F4D4BB95F5C7FAD2B7B8FC95F695F7EAC295F8B2DC95F995FAC2FC95FBD4F8CCE6D7EE95FC95FD95FE9640964196429643D4C2D3D0EBC3C5F39644B7FE96459646EBD4964796489649CBB7EBDE964AC0CA964B964C964DCDFB964EB3AF964FC6DA965096519652965396549655EBFC9656C4BE9657CEB4C4A9B1BED4FD9658CAF59659D6EC965A965BC6D3B6E4965C965D965E965FBBFA96609661D0E096629663C9B19664D4D3C8A896659666B8CB9667E8BEC9BC96689669E8BB966AC0EED0D3B2C4B4E5966BE8BC966C966DD5C8966E966F967096719672B6C59673E8BDCAF8B8DCCCF5967496759676C0B496779678D1EEE8BFE8C29679967ABABC967BB1ADBDDC967CEABDE8C3967DE8C6967EE8CB9680968196829683E8CC9684CBC9B0E59685BCAB96869687B9B996889689E8C1968ACDF7968BE8CA968C968D968E968FCEF69690969196929693D5ED9694C1D6E8C49695C3B69696B9FBD6A6E8C8969796989699CAE0D4E6969AE8C0969BE8C5E8C7969CC7B9B7E3969DE8C9969EBFDDE8D2969F96A0E8D796A1E8D5BCDCBCCFE8DB96A296A396A496A596A696A796A896A9E8DE96AAE8DAB1FA96AB96AC96AD96AE96AF96B096B196B296B396B4B0D8C4B3B8CCC6E2C8BEC8E196B596B696B7E8CFE8D4E8D696B8B9F1E8D8D7F596B9C4FB96BAE8DC96BB96BCB2E996BD96BE96BFE8D196C096C1BCED96C296C3BFC2E8CDD6F996C4C1F8B2F196C596C696C796C896C996CA96CB96CCE8DF96CDCAC1E8D996CE96CF96D096D1D5A496D2B1EAD5BBE8CEE8D0B6B0E8D396D3E8DDC0B896D4CAF796D5CBA896D696D7C6DCC0F596D896D996DA96DB96DCE8E996DD96DE96DFD0A396E096E196E296E396E496E596E6E8F2D6EA96E796E896E996EA96EB96EC96EDE8E0E8E196EE96EF96F0D1F9BACBB8F996F196F2B8F1D4D4E8EF96F3E8EEE8ECB9F0CCD2E8E6CEA6BFF296F4B0B8E8F1E8F096F5D7C096F6E8E496F7CDA9C9A396F8BBB8BDDBE8EA96F996FA96FB96FC96FD96FE9740974197429743E8E2E8E3E8E5B5B5E8E7C7C5E8EBE8EDBDB0D7AE9744E8F897459746974797489749974A974B974CE8F5974DCDB0E8F6974E974F9750975197529753975497559756C1BA9757E8E89758C3B7B0F09759975A975B975C975D975E975F9760E8F4976197629763E8F7976497659766B9A3976797689769976A976B976C976D976E976F9770C9D2977197729773C3CECEE0C0E69774977597769777CBF39778CCDDD0B59779977ACAE1977BE8F3977C977D977E9780978197829783978497859786BCEC9787E8F997889789978A978B978C978DC3DE978EC6E5978FB9F79790979197929793B0F497949795D7D897969797BCAC9798C5EF9799979A979B979C979DCCC4979E979FE9A697A097A197A297A397A497A597A697A797A897A9C9AD97AAE9A2C0E297AB97AC97ADBFC397AE97AF97B0E8FEB9D797B1E8FB97B297B397B497B5E9A497B697B797B8D2CE97B997BA97BB97BC97BDE9A397BED6B2D7B597BFE9A797C0BDB797C197C297C397C497C597C697C797C897C997CA97CB97CCE8FCE8FD97CD97CE97CFE9A197D097D197D297D397D497D597D697D7CDD697D897D9D2AC97DA97DB97DCE9B297DD97DE97DF97E0E9A997E197E297E3B4AA97E4B4BB97E597E6E9AB97E797E897E997EA97EB97EC97ED97EE97EF97F097F197F297F397F497F597F697F7D0A897F897F9E9A597FA97FBB3FE97FC97FDE9ACC0E397FEE9AA98409841E9B998429843E9B89844984598469847E9AE98489849E8FA984A984BE9A8984C984D984E984F9850BFACE9B1E9BA98519852C2A5985398549855E9AF9856B8C59857E9AD9858D3DCE9B4E9B5E9B79859985A985BE9C7985C985D985E985F98609861C0C6E9C598629863E9B098649865E9BBB0F19866986798689869986A986B986C986D986E986FE9BCD5A598709871E9BE9872E9BF987398749875E9C198769877C1F198789879C8B6987A987B987CE9BD987D987E988098819882E9C29883988498859886988798889889988AE9C3988BE9B3988CE9B6988DBBB1988E988F9890E9C0989198929893989498959896BCF7989798989899E9C4E9C6989A989B989C989D989E989F98A098A198A298A398A498A5E9CA98A698A798A898A9E9CE98AA98AB98AC98AD98AE98AF98B098B198B298B3B2DB98B4E9C898B598B698B798B898B998BA98BB98BC98BD98BEB7AE98BF98C098C198C298C398C498C598C698C798C898C998CAE9CBE9CC98CB98CC98CD98CE98CF98D0D5C198D1C4A398D298D398D498D598D698D7E9D898D8BAE198D998DA98DB98DCE9C998DDD3A398DE98DF98E0E9D498E198E298E398E498E598E698E7E9D7E9D098E898E998EA98EB98ECE9CF98ED98EEC7C198EF98F098F198F298F398F498F598F6E9D298F798F898F998FA98FB98FC98FDE9D9B3C898FEE9D399409941994299439944CFF0994599469947E9CD99489949994A994B994C994D994E994F995099519952B3F79953995499559956995799589959E9D6995A995BE9DA995C995D995ECCB4995F99609961CFAD99629963996499659966996799689969996AE9D5996BE9DCE9DB996C996D996E996F9970E9DE99719972997399749975997699779978E9D19979997A997B997C997D997E99809981E9DD9982E9DFC3CA9983998499859986998799889989998A998B998C998D998E998F9990999199929993999499959996999799989999999A999B999C999D999E999F99A099A199A299A399A499A599A699A799A899A999AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B999BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C999CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D899D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E899E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F5C7B7B4CEBBB6D0C0ECA399F699F7C5B799F899F999FA99FB99FC99FD99FE9A409A419A42D3FB9A439A449A459A46ECA49A47ECA5C6DB9A489A499A4ABFEE9A4B9A4C9A4D9A4EECA69A4F9A50ECA7D0AA9A51C7B89A529A53B8E89A549A559A569A579A589A599A5A9A5B9A5C9A5D9A5E9A5FECA89A609A619A629A639A649A659A669A67D6B9D5FDB4CBB2BDCEE4C6E79A689A69CDE19A6A9A6B9A6C9A6D9A6E9A6F9A709A719A729A739A749A759A769A77B4F59A78CBC0BCDF9A799A7A9A7B9A7CE9E2E9E3D1EAE9E59A7DB4F9E9E49A7ED1B3CAE2B2D09A80E9E89A819A829A839A84E9E6E9E79A859A86D6B39A879A889A89E9E9E9EA9A8A9A8B9A8C9A8D9A8EE9EB9A8F9A909A919A929A939A949A959A96E9EC9A979A989A999A9A9A9B9A9C9A9D9A9EECAFC5B9B6CE9A9FD2F39AA09AA19AA29AA39AA49AA59AA6B5EE9AA7BBD9ECB19AA89AA9D2E39AAA9AAB9AAC9AAD9AAECEE39AAFC4B89AB0C3BF9AB19AB2B6BED8B9B1C8B1CFB1D1C5FE9AB3B1D09AB4C3AB9AB59AB69AB79AB89AB9D5B19ABA9ABB9ABC9ABD9ABE9ABF9AC09AC1EBA4BAC19AC29AC39AC4CCBA9AC59AC69AC7EBA59AC8EBA79AC99ACA9ACBEBA89ACC9ACD9ACEEBA69ACF9AD09AD19AD29AD39AD49AD5EBA9EBABEBAA9AD69AD79AD89AD99ADAEBAC9ADBCACFD8B5C3F19ADCC3A5C6F8EBADC4CA9ADDEBAEEBAFEBB0B7D59ADE9ADF9AE0B7FA9AE1EBB1C7E29AE2EBB39AE3BAA4D1F5B0B1EBB2EBB49AE49AE59AE6B5AAC2C8C7E89AE7EBB59AE8CBAEE3DF9AE99AEAD3C09AEB9AEC9AED9AEED9DB9AEF9AF0CDA1D6ADC7F39AF19AF29AF3D9E0BBE39AF4BABAE3E29AF59AF69AF79AF89AF9CFAB9AFA9AFB9AFCE3E0C9C79AFDBAB99AFE9B409B41D1B4E3E1C8EAB9AFBDADB3D8CEDB9B429B43CCC09B449B459B46E3E8E3E9CDF49B479B489B499B4A9B4BCCAD9B4CBCB39B4DE3EA9B4EE3EB9B4F9B50D0DA9B519B529B53C6FBB7DA9B549B55C7DFD2CACED69B56E3E4E3EC9B57C9F2B3C19B589B59E3E79B5A9B5BC6E3E3E59B5C9B5DEDB3E3E69B5E9B5F9B609B61C9B39B62C5E69B639B649B65B9B59B66C3BB9B67E3E3C5BDC1A4C2D9B2D79B68E3EDBBA6C4AD9B69E3F0BEDA9B6A9B6BE3FBE3F5BAD39B6C9B6D9B6E9B6FB7D0D3CD9B70D6CED5D3B9C1D5B4D1D89B719B729B739B74D0B9C7F69B759B769B77C8AAB2B49B78C3DA9B799B7A9B7BE3EE9B7C9B7DE3FCE3EFB7A8E3F7E3F49B7E9B809B81B7BA9B829B83C5A29B84E3F6C5DDB2A8C6FC9B85C4E09B869B87D7A29B88C0E1E3F99B899B8AE3FAE3FDCCA9E3F39B8BD3BE9B8CB1C3EDB4E3F1E3F29B8DE3F8D0BAC6C3D4F3E3FE9B8E9B8FBDE09B909B91E4A79B929B93E4A69B949B959B96D1F3E4A39B97E4A99B989B999B9AC8F79B9B9B9C9B9D9B9ECFB49B9FE4A8E4AEC2E59BA09BA1B6B49BA29BA39BA49BA59BA69BA7BDF29BA8E4A29BA99BAABAE9E4AA9BAB9BACE4AC9BAD9BAEB6FDD6DEE4B29BAFE4AD9BB09BB19BB2E4A19BB3BBEECDDDC7A2C5C99BB49BB5C1F79BB6E4A49BB7C7B3BDACBDBDE4A59BB8D7C7B2E29BB9E4ABBCC3E4AF9BBABBEBE4B0C5A8E4B19BBB9BBC9BBD9BBED5E3BFA39BBFE4BA9BC0E4B79BC1E4BB9BC29BC3E4BD9BC49BC5C6D69BC69BC7BAC6C0CB9BC89BC99BCAB8A1E4B49BCB9BCC9BCD9BCED4A19BCF9BD0BAA3BDFE9BD19BD29BD3E4BC9BD49BD59BD69BD79BD8CDBF9BD99BDAC4F99BDB9BDCCFFBC9E69BDD9BDED3BF9BDFCFD19BE09BE1E4B39BE2E4B8E4B9CCE99BE39BE49BE59BE69BE7CCCE9BE8C0D4E4B5C1B0E4B6CED09BE9BBC1B5D39BEAC8F3BDA7D5C7C9ACB8A2E4CA9BEB9BECE4CCD1C49BED9BEED2BA9BEF9BF0BAAD9BF19BF2BAD49BF39BF49BF59BF69BF79BF8E4C3B5ED9BF99BFA9BFBD7CDE4C0CFFDE4BF9BFC9BFD9BFEC1DCCCCA9C409C419C429C43CAE79C449C459C469C47C4D79C48CCD4E4C89C499C4A9C4BE4C7E4C19C4CE4C4B5AD9C4D9C4ED3D99C4FE4C69C509C519C529C53D2F9B4E39C54BBB49C559C56C9EE9C57B4BE9C589C599C5ABBEC9C5BD1CD9C5CCCEDEDB59C5D9C5E9C5F9C609C619C629C639C64C7E59C659C669C679C68D4A89C69E4CBD7D5E4C29C6ABDA5E4C59C6B9C6CD3E69C6DE4C9C9F89C6E9C6FE4BE9C709C71D3E59C729C73C7FEB6C99C74D4FCB2B3E4D79C759C769C77CEC29C78E4CD9C79CEBC9C7AB8DB9C7B9C7CE4D69C7DBFCA9C7E9C809C81D3CE9C82C3EC9C839C849C859C869C879C889C899C8AC5C8E4D89C8B9C8C9C8D9C8E9C8F9C909C919C92CDC4E4CF9C939C949C959C96E4D4E4D59C97BAFE9C98CFE69C999C9AD5BF9C9B9C9C9C9DE4D29C9E9C9F9CA09CA19CA29CA39CA49CA59CA69CA79CA8E4D09CA99CAAE4CE9CAB9CAC9CAD9CAE9CAF9CB09CB19CB29CB39CB49CB59CB69CB79CB89CB9CDE5CAAA9CBA9CBB9CBCC0A39CBDBDA6E4D39CBE9CBFB8C89CC09CC19CC29CC39CC4E4E7D4B49CC59CC69CC79CC89CC99CCA9CCBE4DB9CCC9CCD9CCEC1EF9CCF9CD0E4E99CD19CD2D2E79CD39CD4E4DF9CD5E4E09CD69CD7CFAA9CD89CD99CDA9CDBCBDD9CDCE4DAE4D19CDDE4E59CDEC8DCE4E39CDF9CE0C4E7E4E29CE1E4E19CE29CE39CE4B3FCE4E89CE59CE69CE79CE8B5E19CE99CEA9CEBD7CC9CEC9CED9CEEE4E69CEFBBAC9CF0D7D2CCCFEBF89CF1E4E49CF29CF3B9F69CF49CF59CF6D6CDE4D9E4DCC2FAE4DE9CF7C2CBC0C4C2D09CF8B1F5CCB29CF99CFA9CFB9CFC9CFD9CFE9D409D419D429D43B5CE9D449D459D469D47E4EF9D489D499D4A9D4B9D4C9D4D9D4E9D4FC6AF9D509D519D52C6E19D539D54E4F59D559D569D579D589D59C2A99D5A9D5B9D5CC0ECD1DDE4EE9D5D9D5E9D5F9D609D619D629D639D649D659D66C4AE9D679D689D69E4ED9D6A9D6B9D6C9D6DE4F6E4F4C2FE9D6EE4DD9D6FE4F09D70CAFE9D71D5C49D729D73E4F19D749D759D769D779D789D799D7AD1FA9D7B9D7C9D7D9D7E9D809D819D82E4EBE4EC9D839D849D85E4F29D86CEAB9D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D90C5CB9D919D929D93C7B19D94C2BA9D959D969D97E4EA9D989D999D9AC1CA9D9B9D9C9D9D9D9E9D9F9DA0CCB6B3B19DA19DA29DA3E4FB9DA4E4F39DA59DA69DA7E4FA9DA8E4FD9DA9E4FC9DAA9DAB9DAC9DAD9DAE9DAF9DB0B3CE9DB19DB29DB3B3BAE4F79DB49DB5E4F9E4F8C5EC9DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2C0BD9DC39DC49DC59DC6D4E89DC79DC89DC99DCA9DCBE5A29DCC9DCD9DCE9DCF9DD09DD19DD29DD39DD49DD59DD6B0C49DD79DD8E5A49DD99DDAE5A39DDB9DDC9DDD9DDE9DDF9DE0BCA49DE1E5A59DE29DE39DE49DE59DE69DE7E5A19DE89DE99DEA9DEB9DEC9DED9DEEE4FEB1F49DEF9DF09DF19DF29DF39DF49DF59DF69DF79DF89DF9E5A89DFAE5A9E5A69DFB9DFC9DFD9DFE9E409E419E429E439E449E459E469E47E5A7E5AA9E489E499E4A9E4B9E4C9E4D9E4E9E4F9E509E519E529E539E549E559E569E579E589E599E5A9E5B9E5C9E5D9E5E9E5F9E609E619E629E639E649E659E669E679E68C6D99E699E6A9E6B9E6C9E6D9E6E9E6F9E70E5ABE5AD9E719E729E739E749E759E769E77E5AC9E789E799E7A9E7B9E7C9E7D9E7E9E809E819E829E839E849E859E869E879E889E89E5AF9E8A9E8B9E8CE5AE9E8D9E8E9E8F9E909E919E929E939E949E959E969E979E989E999E9A9E9B9E9C9E9D9E9EB9E09E9F9EA0E5B09EA19EA29EA39EA49EA59EA69EA79EA89EA99EAA9EAB9EAC9EAD9EAEE5B19EAF9EB09EB19EB29EB39EB49EB59EB69EB79EB89EB99EBABBF0ECE1C3F09EBBB5C6BBD29EBC9EBD9EBE9EBFC1E9D4EE9EC0BEC49EC19EC29EC3D7C69EC4D4D6B2D3ECBE9EC59EC69EC79EC8EAC19EC99ECA9ECBC2AFB4B69ECC9ECD9ECED1D79ECF9ED09ED1B3B49ED2C8B2BFBBECC09ED39ED4D6CB9ED59ED6ECBFECC19ED79ED89ED99EDA9EDB9EDC9EDD9EDE9EDF9EE09EE19EE29EE3ECC5BEE6CCBFC5DABEBC9EE4ECC69EE5B1FE9EE69EE79EE8ECC4D5A8B5E39EE9ECC2C1B6B3E39EEA9EEBECC3CBB8C0C3CCFE9EEC9EED9EEE9EEFC1D29EF0ECC89EF19EF29EF39EF49EF59EF69EF79EF89EF99EFA9EFB9EFC9EFDBAE6C0D39EFED6F29F409F419F42D1CC9F439F449F459F46BFBE9F47B7B3C9D5ECC7BBE29F48CCCCBDFDC8C89F49CFA99F4A9F4B9F4C9F4D9F4E9F4F9F50CDE99F51C5EB9F529F539F54B7E99F559F569F579F589F599F5A9F5B9F5C9F5D9F5E9F5FD1C9BAB89F609F619F629F639F64ECC99F659F66ECCA9F67BBC0ECCB9F68ECE2B1BAB7D99F699F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F73BDB99F749F759F769F779F789F799F7A9F7BECCCD1E6ECCD9F7C9F7D9F7E9F80C8BB9F819F829F839F849F859F869F879F889F899F8A9F8B9F8C9F8D9F8EECD19F8F9F909F919F92ECD39F93BBCD9F94BCE59F959F969F979F989F999F9A9F9B9F9C9F9D9F9E9F9F9FA09FA1ECCF9FA2C9B79FA39FA49FA59FA69FA7C3BA9FA8ECE3D5D5ECD09FA99FAA9FAB9FAC9FADD6F39FAE9FAF9FB0ECD2ECCE9FB19FB29FB39FB4ECD49FB5ECD59FB69FB7C9BF9FB89FB99FBA9FBB9FBC9FBDCFA89FBE9FBF9FC09FC19FC2D0DC9FC39FC49FC59FC6D1AC9FC79FC89FC99FCAC8DB9FCB9FCC9FCDECD6CEF59FCE9FCF9FD09FD19FD2CAECECDA9FD39FD49FD59FD69FD79FD89FD9ECD99FDA9FDB9FDCB0BE9FDD9FDE9FDF9FE09FE19FE2ECD79FE3ECD89FE49FE59FE6ECE49FE79FE89FE99FEA9FEB9FEC9FED9FEE9FEFC8BC9FF09FF19FF29FF39FF49FF59FF69FF79FF89FF9C1C79FFA9FFB9FFC9FFD9FFEECDCD1E0A040A041A042A043A044A045A046A047A048A049ECDBA04AA04BA04CA04DD4EFA04EECDDA04FA050A051A052A053A054DBC6A055A056A057A058A059A05AA05BA05CA05DA05EECDEA05FA060A061A062A063A064A065A066A067A068A069A06AB1ACA06BA06CA06DA06EA06FA070A071A072A073A074A075A076A077A078A079A07AA07BA07CA07DA07EA080A081ECDFA082A083A084A085A086A087A088A089A08AA08BECE0A08CD7A6A08DC5C0A08EA08FA090EBBCB0AEA091A092A093BEF4B8B8D2AFB0D6B5F9A094D8B3A095CBACA096E3DDA097A098A099A09AA09BA09CA09DC6ACB0E6A09EA09FA0A0C5C6EBB9A0A1A0A2A0A3A0A4EBBAA0A5A0A6A0A7EBBBA0A8A0A9D1C0A0AAC5A3A0ABEAF2A0ACC4B2A0ADC4B5C0CEA0AEA0AFA0B0EAF3C4C1A0B1CEEFA0B2A0B3A0B4A0B5EAF0EAF4A0B6A0B7C9FCA0B8A0B9C7A3A0BAA0BBA0BCCCD8CEFEA0BDA0BEA0BFEAF5EAF6CFACC0E7A0C0A0C1EAF7A0C2A0C3A0C4A0C5A0C6B6BFEAF8A0C7EAF9A0C8EAFAA0C9A0CAEAFBA0CBA0CCA0CDA0CEA0CFA0D0A0D1A0D2A0D3A0D4A0D5A0D6EAF1A0D7A0D8A0D9A0DAA0DBA0DCA0DDA0DEA0DFA0E0A0E1A0E2C8AEE1EBA0E3B7B8E1ECA0E4A0E5A0E6E1EDA0E7D7B4E1EEE1EFD3CCA0E8A0E9A0EAA0EBA0ECA0EDA0EEE1F1BFF1E1F0B5D2A0EFA0F0A0F1B1B7A0F2A0F3A0F4A0F5E1F3E1F2A0F6BAFCA0F7E1F4A0F8A0F9A0FAA0FBB9B7A0FCBED1A0FDA0FEAA40AA41C4FCAA42BADDBDC6AA43AA44AA45AA46AA47AA48E1F5E1F7AA49AA4AB6C0CFC1CAA8E1F6D5F8D3FCE1F8E1FCE1F9AA4BAA4CE1FAC0EAAA4DE1FEE2A1C0C7AA4EAA4FAA50AA51E1FBAA52E1FDAA53AA54AA55AA56AA57AA58E2A5AA59AA5AAA5BC1D4AA5CAA5DAA5EAA5FE2A3AA60E2A8B2FEE2A2AA61AA62AA63C3CDB2C2E2A7E2A6AA64AA65E2A4E2A9AA66AA67E2ABAA68AA69AA6AD0C9D6EDC3A8E2ACAA6BCFD7AA6CAA6DE2AEAA6EAA6FBAEFAA70AA71E9E0E2ADE2AAAA72AA73AA74AA75BBABD4B3AA76AA77AA78AA79AA7AAA7BAA7CAA7DAA7EAA80AA81AA82AA83E2B0AA84AA85E2AFAA86E9E1AA87AA88AA89AA8AE2B1AA8BAA8CAA8DAA8EAA8FAA90AA91AA92E2B2AA93AA94AA95AA96AA97AA98AA99AA9AAA9BAA9CAA9DE2B3CCA1AA9EE2B4AA9FAAA0AB40AB41AB42AB43AB44AB45AB46AB47AB48AB49AB4AAB4BE2B5AB4CAB4DAB4EAB4FAB50D0FEAB51AB52C2CAAB53D3F1AB54CDF5AB55AB56E7E0AB57AB58E7E1AB59AB5AAB5BAB5CBEC1AB5DAB5EAB5FAB60C2EAAB61AB62AB63E7E4AB64AB65E7E3AB66AB67AB68AB69AB6AAB6BCDE6AB6CC3B5AB6DAB6EE7E2BBB7CFD6AB6FC1E1E7E9AB70AB71AB72E7E8AB73AB74E7F4B2A3AB75AB76AB77AB78E7EAAB79E7E6AB7AAB7BAB7CAB7DAB7EE7ECE7EBC9BAAB80AB81D5E4AB82E7E5B7A9E7E7AB83AB84AB85AB86AB87AB88AB89E7EEAB8AAB8BAB8CAB8DE7F3AB8ED6E9AB8FAB90AB91AB92E7EDAB93E7F2AB94E7F1AB95AB96AB97B0E0AB98AB99AB9AAB9BE7F5AB9CAB9DAB9EAB9FABA0AC40AC41AC42AC43AC44AC45AC46AC47AC48AC49AC4AC7F2AC4BC0C5C0EDAC4CAC4DC1F0E7F0AC4EAC4FAC50AC51E7F6CBF6AC52AC53AC54AC55AC56AC57AC58AC59AC5AE8A2E8A1AC5BAC5CAC5DAC5EAC5FAC60D7C1AC61AC62E7FAE7F9AC63E7FBAC64E7F7AC65E7FEAC66E7FDAC67E7FCAC68AC69C1D5C7D9C5FDC5C3AC6AAC6BAC6CAC6DAC6EC7EDAC6FAC70AC71AC72E8A3AC73AC74AC75AC76AC77AC78AC79AC7AAC7BAC7CAC7DAC7EAC80AC81AC82AC83AC84AC85AC86E8A6AC87E8A5AC88E8A7BAF7E7F8E8A4AC89C8F0C9AAAC8AAC8BAC8CAC8DAC8EAC8FAC90AC91AC92AC93AC94AC95AC96E8A9AC97AC98B9E5AC99AC9AAC9BAC9CAC9DD1FEE8A8AC9EAC9FACA0AD40AD41AD42E8AAAD43E8ADE8AEAD44C1A7AD45AD46AD47E8AFAD48AD49AD4AE8B0AD4BAD4CE8ACAD4DE8B4AD4EAD4FAD50AD51AD52AD53AD54AD55AD56AD57AD58E8ABAD59E8B1AD5AAD5BAD5CAD5DAD5EAD5FAD60AD61E8B5E8B2E8B3AD62AD63AD64AD65AD66AD67AD68AD69AD6AAD6BAD6CAD6DAD6EAD6FAD70AD71E8B7AD72AD73AD74AD75AD76AD77AD78AD79AD7AAD7BAD7CAD7DAD7EAD80AD81AD82AD83AD84AD85AD86AD87AD88AD89E8B6AD8AAD8BAD8CAD8DAD8EAD8FAD90AD91AD92B9CFAD93F0ACAD94F0ADAD95C6B0B0EAC8BFAD96CDDFAD97AD98AD99AD9AAD9BAD9CAD9DCECDEAB1AD9EAD9FADA0AE40EAB2AE41C6BFB4C9AE42AE43AE44AE45AE46AE47AE48EAB3AE49AE4AAE4BAE4CD5E7AE4DAE4EAE4FAE50AE51AE52AE53AE54DDF9AE55EAB4AE56EAB5AE57EAB6AE58AE59AE5AAE5BB8CADFB0C9F5AE5CCCF0AE5DAE5EC9FAAE5FAE60AE61AE62AE63C9FBAE64AE65D3C3CBA6AE66B8A6F0AEB1C2AE67E5B8CCEFD3C9BCD7C9EAAE68B5E7AE69C4D0B5E9AE6AEEAEBBADAE6BAE6CE7DEAE6DEEAFAE6EAE6FAE70AE71B3A9AE72AE73EEB2AE74AE75EEB1BDE7AE76EEB0CEB7AE77AE78AE79AE7AC5CFAE7BAE7CAE7DAE7EC1F4DBCEEEB3D0F3AE80AE81AE82AE83AE84AE85AE86AE87C2D4C6E8AE88AE89AE8AB7ACAE8BAE8CAE8DAE8EAE8FAE90AE91EEB4AE92B3EBAE93AE94AE95BBFBEEB5AE96AE97AE98AE99AE9AE7DCAE9BAE9CAE9DEEB6AE9EAE9FBDAEAEA0AF40AF41AF42F1E2AF43AF44AF45CAE8AF46D2C9F0DAAF47F0DBAF48F0DCC1C6AF49B8EDBECEAF4AAF4BF0DEAF4CC5B1F0DDD1F1AF4DF0E0B0CCBDEAAF4EAF4FAF50AF51AF52D2DFF0DFAF53B4AFB7E8F0E6F0E5C6A3F0E1F0E2B4C3AF54AF55F0E3D5EEAF56AF57CCDBBED2BCB2AF58AF59AF5AF0E8F0E7F0E4B2A1AF5BD6A2D3B8BEB7C8ACAF5CAF5DF0EAAF5EAF5FAF60AF61D1F7AF62D6CCBADBF0E9AF63B6BBAF64AF65CDB4AF66AF67C6A6AF68AF69AF6AC1A1F0EBF0EEAF6BF0EDF0F0F0ECAF6CBBBEF0EFAF6DAF6EAF6FAF70CCB5F0F2AF71AF72B3D5AF73AF74AF75AF76B1D4AF77AF78F0F3AF79AF7AF0F4F0F6B4E1AF7BF0F1AF7CF0F7AF7DAF7EAF80AF81F0FAAF82F0F8AF83AF84AF85F0F5AF86AF87AF88AF89F0FDAF8AF0F9F0FCF0FEAF8BF1A1AF8CAF8DAF8ECEC1F1A4AF8FF1A3AF90C1F6F0FBCADDAF91AF92B4F1B1F1CCB1AF93F1A6AF94AF95F1A7AF96AF97F1ACD5CEF1A9AF98AF99C8B3AF9AAF9BAF9CF1A2AF9DF1ABF1A8F1A5AF9EAF9FF1AAAFA0B040B041B042B043B044B045B046B0A9F1ADB047B048B049B04AB04BB04CF1AFB04DF1B1B04EB04FB050B051B052F1B0B053F1AEB054B055B056B057D1A2B058B059B05AB05BB05CB05DB05EF1B2B05FB060B061F1B3B062B063B064B065B066B067B068B069B9EFB06AB06BB5C7B06CB0D7B0D9B06DB06EB06FD4EDB070B5C4B071BDD4BBCAF0A7B072B073B8DEB074B075F0A8B076B077B0A8B078F0A9B079B07ACDEEB07BB07CF0AAB07DB07EB080B081B082B083B084B085B086B087F0ABB088B089B08AB08BB08CB08DB08EB08FB090C6A4B091B092D6E5F1E4B093F1E5B094B095B096B097B098B099B09AB09BB09CB09DC3F3B09EB09FD3DBB0A0B140D6D1C5E8B141D3AFB142D2E6B143B144EEC1B0BBD5B5D1CEBCE0BAD0B145BFF8B146B8C7B5C1C5CCB147B148CAA2B149B14AB14BC3CBB14CB14DB14EB14FB150EEC2B151B152B153B154B155B156B157B158C4BFB6A2B159EDECC3A4B15AD6B1B15BB15CB15DCFE0EDEFB15EB15FC5CEB160B6DCB161B162CAA1B163B164EDEDB165B166EDF0EDF1C3BCB167BFB4B168EDEEB169B16AB16BB16CB16DB16EB16FB170B171B172B173EDF4EDF2B174B175B176B177D5E6C3DFB178EDF3B179B17AB17BEDF6B17CD5A3D1A3B17DB17EB180EDF5B181C3D0B182B183B184B185B186EDF7BFF4BEECEDF8B187CCF7B188D1DBB189B18AB18BD7C5D5F6B18CEDFCB18DB18EB18FEDFBB190B191B192B193B194B195B196B197EDF9EDFAB198B199B19AB19BB19CB19DB19EB19FEDFDBEA6B1A0B240B241B242B243CBAFEEA1B6BDB244EEA2C4C0B245EDFEB246B247BDDEB2C7B248B249B24AB24BB24CB24DB24EB24FB250B251B252B253B6C3B254B255B256EEA5D8BAEEA3EEA6B257B258B259C3E9B3F2B25AB25BB25CB25DB25EB25FEEA7EEA4CFB9B260B261EEA8C2F7B262B263B264B265B266B267B268B269B26AB26BB26CB26DEEA9EEAAB26EDEABB26FB270C6B3B271C7C6B272D6F5B5C9B273CBB2B274B275B276EEABB277B278CDABB279EEACB27AB27BB27CB27DB27ED5B0B280EEADB281F6C4B282B283B284B285B286B287B288B289B28AB28BB28CB28DB28EDBC7B28FB290B291B292B293B294B295B296B297B4A3B298B299B29AC3ACF1E6B29BB29CB29DB29EB29FCAB8D2D3B2A0D6AAB340EFF2B341BED8B342BDC3EFF3B6CCB0ABB343B344B345B346CAAFB347B348EDB6B349EDB7B34AB34BB34CB34DCEF9B7AFBFF3EDB8C2EBC9B0B34EB34FB350B351B352B353EDB9B354B355C6F6BFB3B356B357B358EDBCC5F8B359D1D0B35AD7A9EDBAEDBBB35BD1E2B35CEDBFEDC0B35DEDC4B35EB35FB360EDC8B361EDC6EDCED5E8B362EDC9B363B364EDC7EDBEB365B366C5E9B367B368B369C6C6B36AB36BC9E9D4D2EDC1EDC2EDC3EDC5B36CC0F9B36DB4A1B36EB36FB370B371B9E8B372EDD0B373B374B375B376EDD1B377EDCAB378EDCFB379CEF8B37AB37BCBB6EDCCEDCDB37CB37DB37EB380B381CFF5B382B383B384B385B386B387B388B389B38AB38BB38CB38DEDD2C1F2D3B2EDCBC8B7B38EB38FB390B391B392B393B394B395BCEFB396B397B398B399C5F0B39AB39BB39CB39DB39EB39FB3A0B440B441B442EDD6B443B5EFB444B445C2B5B0ADCBE9B446B447B1AEB448EDD4B449B44AB44BCDEBB5E2B44CEDD5EDD3EDD7B44DB44EB5FAB44FEDD8B450EDD9B451EDDCB452B1CCB453B454B455B456B457B458B459B45AC5F6BCEEEDDACCBCB2EAB45BB45CB45DB45EEDDBB45FB460B461B462C4EBB463B464B4C5B465B466B467B0F5B468B469B46AEDDFC0DAB4E8B46BB46CB46DB46EC5CDB46FB470B471EDDDBFC4B472B473B474EDDEB475B476B477B478B479B47AB47BB47CB47DB47EB480B481B482B483C4A5B484B485B486EDE0B487B488B489B48AB48BEDE1B48CEDE3B48DB48EC1D7B48FB490BBC7B491B492B493B494B495B496BDB8B497B498B499EDE2B49AB49BB49CB49DB49EB49FB4A0B540B541B542B543B544B545EDE4B546B547B548B549B54AB54BB54CB54DB54EB54FEDE6B550B551B552B553B554EDE5B555B556B557B558B559B55AB55BB55CB55DB55EB55FB560B561B562B563EDE7B564B565B566B567B568CABEECEAC0F1B569C9E7B56AECEBC6EEB56BB56CB56DB56EECECB56FC6EDECEDB570B571B572B573B574B575B576B577B578ECF0B579B57AD7E6ECF3B57BB57CECF1ECEEECEFD7A3C9F1CBEEECF4B57DECF2B57EB580CFE9B581ECF6C6B1B582B583B584B585BCC0B586ECF5B587B588B589B58AB58BB58CB58DB5BBBBF6B58EECF7B58FB590B591B592B593D9F7BDFBB594B595C2BBECF8B596B597B598B599ECF9B59AB59BB59CB59DB8A3B59EB59FB5A0B640B641B642B643B644B645B646ECFAB647B648B649B64AB64BB64CB64DB64EB64FB650B651B652ECFBB653B654B655B656B657B658B659B65AB65BB65CB65DECFCB65EB65FB660B661B662D3EDD8AEC0EBB663C7DDBACCB664D0E3CBBDB665CDBAB666B667B8D1B668B669B1FCB66AC7EFB66BD6D6B66CB66DB66EBFC6C3EBB66FB670EFF5B671B672C3D8B673B674B675B676B677B678D7E2B679B67AB67BEFF7B3D3B67CC7D8D1EDB67DD6C8B67EEFF8B680EFF6B681BBFDB3C6B682B683B684B685B686B687B688BDD5B689B68AD2C6B68BBBE0B68CB68DCFA1B68EEFFCEFFBB68FB690EFF9B691B692B693B694B3CCB695C9D4CBB0B696B697B698B699B69AEFFEB69BB69CB0DEB69DB69ED6C9B69FB6A0B740EFFDB741B3EDB742B743F6D5B744B745B746B747B748B749B74AB74BB74CB74DB74EB74FB750B751B752CEC8B753B754B755F0A2B756F0A1B757B5BEBCDABBFCB758B8E5B759B75AB75BB75CB75DB75EC4C2B75FB760B761B762B763B764B765B766B767B768F0A3B769B76AB76BB76CB76DCBEBB76EB76FB770B771B772B773B774B775B776B777B778B779B77AB77BB77CB77DB77EB780B781B782B783B784B785B786F0A6B787B788B789D1A8B78ABEBFC7EEF1B6F1B7BFD5B78BB78CB78DB78EB4A9F1B8CDBBB78FC7D4D5ADB790F1B9B791F1BAB792B793B794B795C7CFB796B797B798D2A4D6CFB799B79AF1BBBDD1B4B0BEBDB79BB79CB79DB4DCCED1B79EBFDFF1BDB79FB7A0B840B841BFFAF1BCB842F1BFB843B844B845F1BEF1C0B846B847B848B849B84AF1C1B84BB84CB84DB84EB84FB850B851B852B853B854B855C1FEB856B857B858B859B85AB85BB85CB85DB85EB85FB860C1A2B861B862B863B864B865B866B867B868B869B86ACAFAB86BB86CD5BEB86DB86EB86FB870BEBABEB9D5C2B871B872BFA2B873CDAFF1B5B874B875B876B877B878B879BDDFB87AB6CBB87BB87CB87DB87EB880B881B882B883B884D6F1F3C3B885B886F3C4B887B8CDB888B889B88AF3C6F3C7B88BB0CAB88CF3C5B88DF3C9CBF1B88EB88FB890F3CBB891D0A6B892B893B1CAF3C8B894B895B896F3CFB897B5D1B898B899F3D7B89AF3D2B89BB89CB89DF3D4F3D3B7FBB89EB1BFB89FF3CEF3CAB5DAB8A0F3D0B940B941F3D1B942F3D5B943B944B945B946F3CDB947BCE3B948C1FDB949F3D6B94AB94BB94CB94DB94EB94FF3DAB950F3CCB951B5C8B952BDEEF3DCB953B954B7A4BFF0D6FECDB2B955B4F0B956B2DFB957F3D8B958F3D9C9B8B959F3DDB95AB95BF3DEB95CF3E1B95DB95EB95FB960B961B962B963B964B965B966B967F3DFB968B969F3E3F3E2B96AB96BF3DBB96CBFEAB96DB3EFB96EF3E0B96FB970C7A9B971BCF2B972B973B974B975F3EBB976B977B978B979B97AB97BB97CB9BFB97DB97EF3E4B980B981B982B2ADBBFEB983CBE3B984B985B986B987F3EDF3E9B988B989B98AB9DCF3EEB98BB98CB98DF3E5F3E6F3EAC2E1F3ECF3EFF3E8BCFDB98EB98FB990CFE4B991B992F3F0B993B994B995F3E7B996B997B998B999B99AB99BB99CB99DF3F2B99EB99FB9A0BA40D7ADC6AABA41BA42BA43BA44F3F3BA45BA46BA47BA48F3F1BA49C2A8BA4ABA4BBA4CBA4DBA4EB8DDF3F5BA4FBA50F3F4BA51BA52BA53B4DBBA54BA55BA56F3F6F3F7BA57BA58BA59F3F8BA5ABA5BBA5CC0BABA5DBA5EC0E9BA5FBA60BA61BA62BA63C5F1BA64BA65BA66BA67F3FBBA68F3FABA69BA6ABA6BBA6CBA6DBA6EBA6FBA70B4D8BA71BA72BA73F3FEF3F9BA74BA75F3FCBA76BA77BA78BA79BA7ABA7BF3FDBA7CBA7DBA7EBA80BA81BA82BA83BA84F4A1BA85BA86BA87BA88BA89BA8AF4A3BBC9BA8BBA8CF4A2BA8DBA8EBA8FBA90BA91BA92BA93BA94BA95BA96BA97BA98BA99F4A4BA9ABA9BBA9CBA9DBA9EBA9FB2BEF4A6F4A5BAA0BB40BB41BB42BB43BB44BB45BB46BB47BB48BB49BCAEBB4ABB4BBB4CBB4DBB4EBB4FBB50BB51BB52BB53BB54BB55BB56BB57BB58BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB61BB62BB63BB64BB65BB66BB67BB68BB69BB6ABB6BBB6CBB6DBB6EC3D7D9E1BB6FBB70BB71BB72BB73BB74C0E0F4CCD7D1BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB80B7DBBB81BB82BB83BB84BB85BB86BB87F4CEC1A3BB88BB89C6C9BB8AB4D6D5B3BB8BBB8CBB8DF4D0F4CFF4D1CBDABB8EBB8FF4D2BB90D4C1D6E0BB91BB92BB93BB94B7E0BB95BB96BB97C1B8BB98BB99C1BBF4D3BEACBB9ABB9BBB9CBB9DBB9EB4E2BB9FBBA0F4D4F4D5BEABBC40BC41F4D6BC42BC43BC44F4DBBC45F4D7F4DABC46BAFDBC47F4D8F4D9BC48BC49BC4ABC4BBC4CBC4DBC4EB8E2CCC7F4DCBC4FB2DABC50BC51C3D3BC52BC53D4E3BFB7BC54BC55BC56BC57BC58BC59BC5AF4DDBC5BBC5CBC5DBC5EBC5FBC60C5B4BC61BC62BC63BC64BC65BC66BC67BC68F4E9BC69BC6ACFB5BC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78CEC9BC79BC7ABC7BBC7CBC7DBC7EBC80BC81BC82BC83BC84BC85BC86BC87BC88BC89BC8ABC8BBC8CBC8DBC8ECBD8BC8FCBF7BC90BC91BC92BC93BDF4BC94BC95BC96D7CFBC97BC98BC99C0DBBC9ABC9BBC9CBC9DBC9EBC9FBCA0BD40BD41BD42BD43BD44BD45BD46BD47BD48BD49BD4ABD4BBD4CBD4DBD4EBD4FBD50BD51BD52BD53BD54BD55BD56BD57BD58BD59BD5ABD5BBD5CBD5DBD5EBD5FBD60BD61BD62BD63BD64BD65BD66BD67BD68BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71BD72BD73BD74BD75BD76D0F5BD77BD78BD79BD7ABD7BBD7CBD7DBD7EF4EABD80BD81BD82BD83BD84BD85BD86BD87BD88BD89BD8ABD8BBD8CBD8DBD8EBD8FBD90BD91BD92BD93BD94BD95BD96BD97BD98BD99BD9ABD9BBD9CBD9DBD9EBD9FBDA0BE40BE41BE42BE43BE44BE45BE46BE47BE48BE49BE4ABE4BBE4CF4EBBE4DBE4EBE4FBE50BE51BE52BE53F4ECBE54BE55BE56BE57BE58BE59BE5ABE5BBE5CBE5DBE5EBE5FBE60BE61BE62BE63BE64BE65BE66BE67BE68BE69BE6ABE6BBE6CBE6DBE6EBE6FBE70BE71BE72BE73BE74BE75BE76BE77BE78BE79BE7ABE7BBE7CBE7DBE7EBE80BE81BE82BE83BE84BE85BE86BE87BE88BE89BE8ABE8BBE8CBE8DBE8EBE8FBE90BE91BE92BE93BE94BE95BE96BE97BE98BE99BE9ABE9BBE9CBE9DBE9EBE9FBEA0BF40BF41BF42BF43BF44BF45BF46BF47BF48BF49BF4ABF4BBF4CBF4DBF4EBF4FBF50BF51BF52BF53BF54BF55BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF80F7E3BF81BF82BF83BF84BF85B7B1BF86BF87BF88BF89BF8AF4EDBF8BBF8CBF8DBF8EBF8FBF90BF91BF92BF93BF94BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9DBF9EBF9FBFA0C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04EC04FC050C051C052C053C054C055C056C057C058C059C05AC05BC05CC05DC05EC05FC060C061C062C063D7EBC064C065C066C067C068C069C06AC06BC06CC06DC06EC06FC070C071C072C073C074C075C076C077C078C079C07AC07BF4EEC07CC07DC07EE6F9BEC0E6FABAECE6FBCFCBE6FCD4BCBCB6E6FDE6FEBCCDC8D2CEB3E7A1C080B4BFE7A2C9B4B8D9C4C9C081D7DDC2DAB7D7D6BDCEC6B7C4C082C083C5A6E7A3CFDFE7A4E7A5E7A6C1B7D7E9C9F0CFB8D6AFD6D5E7A7B0EDE7A8E7A9C9DCD2EFBEADE7AAB0F3C8DEBDE1E7ABC8C6C084E7ACBBE6B8F8D1A4E7ADC2E7BEF8BDCACDB3E7AEE7AFBEEED0E5C085CBE7CCD0BCCCE7B0BCA8D0F7E7B1C086D0F8E7B2E7B3B4C2E7B4E7B5C9FECEACC3E0E7B7B1C1B3F1C087E7B8E7B9D7DBD5C0E7BAC2CCD7BAE7BBE7BCE7BDBCEAC3E5C0C2E7BEE7BFBCA9C088E7C0E7C1E7B6B6D0E7C2C089E7C3E7C4BBBAB5DEC2C6B1E0E7C5D4B5E7C6B8BFE7C8E7C7B7ECC08AE7C9B2F8E7CAE7CBE7CCE7CDE7CEE7CFE7D0D3A7CBF5E7D1E7D2E7D3E7D4C9C9E7D5E7D6E7D7E7D8E7D9BDC9E7DAF3BEC08BB8D7C08CC8B1C08DC08EC08FC090C091C092C093F3BFC094F3C0F3C1C095C096C097C098C099C09AC09BC09CC09DC09EB9DECDF8C09FC0A0D8E8BAB1C140C2DEEEB7C141B7A3C142C143C144C145EEB9C146EEB8B0D5C147C148C149C14AC14BEEBBD5D6D7EFC14CC14DC14ED6C3C14FC150EEBDCAF0C151EEBCC152C153C154C155EEBEC156C157C158C159EEC0C15AC15BEEBFC15CC15DC15EC15FC160C161C162C163D1F2C164C7BCC165C3C0C166C167C168C169C16AB8E1C16BC16CC16DC16EC16FC1E7C170C171F4C6D0DFF4C7C172CFDBC173C174C8BAC175C176F4C8C177C178C179C17AC17BC17CC17DF4C9F4CAC17EF4CBC180C181C182C183C184D9FAB8FEC185C186E5F1D3F0C187F4E0C188CECCC189C18AC18BB3E1C18CC18DC18EC18FF1B4C190D2EEC191F4E1C192C193C194C195C196CFE8F4E2C197C198C7CCC199C19AC19BC19CC19DC19EB5D4B4E4F4E4C19FC1A0C240F4E3F4E5C241C242F4E6C243C244C245C246F4E7C247BAB2B0BFC248F4E8C249C24AC24BC24CC24DC24EC24FB7ADD2EDC250C251C252D2ABC0CFC253BFBCEBA3D5DFEAC8C254C255C256C257F1F3B6F8CBA3C258C259C4CDC25AF1E7C25BF1E8B8FBF1E9BAC4D4C5B0D2C25CC25DF1EAC25EC25FC260F1EBC261F1ECC262C263F1EDF1EEF1EFF1F1F1F0C5D5C264C265C266C267C268C269F1F2C26AB6FAC26BF1F4D2AEDEC7CBCAC26CC26DB3DCC26EB5A2C26FB9A2C270C271C4F4F1F5C272C273F1F6C274C275C276C1C4C1FBD6B0F1F7C277C278C279C27AF1F8C27BC1AAC27CC27DC27EC6B8C280BEDBC281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EF1F9B4CFC28FC290C291C292C293C294F1FAC295C296C297C298C299C29AC29BC29CC29DC29EC29FC2A0C340EDB2EDB1C341C342CBE0D2DEC343CBC1D5D8C344C8E2C345C0DFBCA1C346C347C348C349C34AC34BEBC1C34CC34DD0A4C34ED6E2C34FB6C7B8D8EBC0B8CEC350EBBFB3A6B9C9D6ABC351B7F4B7CAC352C353C354BCE7B7BEEBC6C355EBC7B0B9BFCFC356EBC5D3FDC357EBC8C358C359EBC9C35AC35BB7CEC35CEBC2EBC4C9F6D6D7D5CDD0B2EBCFCEB8EBD0C35DB5A8C35EC35FC360C361C362B1B3EBD2CCA5C363C364C365C366C367C368C369C5D6EBD3C36AEBD1C5DFEBCECAA4EBD5B0FBC36BC36CBAFAC36DC36ED8B7F1E3C36FEBCAEBCBEBCCEBCDEBD6E6C0EBD9C370BFE8D2C8EBD7EBDCB8ECEBD8C371BDBAC372D0D8C373B0B7C374EBDDC4DCC375C376C377C378D6ACC379C37AC37BB4E0C37CC37DC2F6BCB9C37EC380EBDAEBDBD4E0C6EAC4D4EBDFC5A7D9F5C381B2B1C382EBE4C383BDC5C384C385C386EBE2C387C388C389C38AC38BC38CC38DC38EC38FC390C391C392C393EBE3C394C395B8ACC396CDD1EBE5C397C398C399EBE1C39AC1B3C39BC39CC39DC39EC39FC6A2C3A0C440C441C442C443C444C445CCF3C446EBE6C447C0B0D2B8EBE7C448C449C44AB8AFB8ADC44BEBE8C7BBCDF3C44CC44DC44EEBEAEBEBC44FC450C451C452C453EBEDC454C455C456C457D0C8C458EBF2C459EBEEC45AC45BC45CEBF1C8F9C45DD1FCEBECC45EC45FEBE9C460C461C462C463B8B9CFD9C4E5EBEFEBF0CCDACDC8B0F2C464EBF6C465C466C467C468C469EBF5C46AB2B2C46BC46CC46DC46EB8E0C46FEBF7C470C471C472C473C474C475B1ECC476C477CCC5C4A4CFA5C478C479C47AC47BC47CEBF9C47DC47EECA2C480C5F2C481EBFAC482C483C484C485C486C487C488C489C9C5C48AC48BC48CC48DC48EC48FE2DFEBFEC490C491C492C493CDCEECA1B1DBD3B7C494C495D2DCC496C497C498EBFDC499EBFBC49AC49BC49CC49DC49EC49FC4A0C540C541C542C543C544C545C546C547C548C549C54AC54BC54CC54DC54EB3BCC54FC550C551EAB0C552C553D7D4C554F4ABB3F4C555C556C557C558C559D6C1D6C2C55AC55BC55CC55DC55EC55FD5E9BECAC560F4A7C561D2A8F4A8F4A9C562F4AABECBD3DFC563C564C565C566C567C9E0C9E1C568C569F3C2C56ACAE6C56BCCF2C56CC56DC56EC56FC570C571E2B6CBB4C572CEE8D6DBC573F4ADF4AEF4AFC574C575C576C577F4B2C578BABDF4B3B0E3F4B0C579F4B1BDA2B2D5C57AF4B6F4B7B6E6B2B0CFCFF4B4B4ACC57BF4B5C57CC57DF4B8C57EC580C581C582C583F4B9C584C585CDA7C586F4BAC587F4BBC588C589C58AF4BCC58BC58CC58DC58EC58FC590C591C592CBD2C593F4BDC594C595C596C597F4BEC598C599C59AC59BC59CC59DC59EC59FF4BFC5A0C640C641C642C643F4DEC1BCBCE8C644C9ABD1DEE5F5C645C646C647C648DCB3D2D5C649C64ADCB4B0ACDCB5C64BC64CBDDAC64DDCB9C64EC64FC650D8C2C651DCB7D3F3C652C9D6DCBADCB6C653DCBBC3A2C654C655C656C657DCBCDCC5DCBDC658C659CEDFD6A5C65ADCCFC65BDCCDC65CC65DDCD2BDE6C2ABC65EDCB8DCCBDCCEDCBEB7D2B0C5DCC7D0BEDCC1BBA8C65FB7BCDCCCC660C661DCC6DCBFC7DBC662C663C664D1BFDCC0C665C666DCCAC667C668DCD0C669C66ACEADDCC2C66BDCC3DCC8DCC9B2D4DCD1CBD5C66CD4B7DCDBDCDFCCA6DCE6C66DC3E7DCDCC66EC66FBFC1DCD9C670B0FAB9B6DCE5DCD3C671DCC4DCD6C8F4BFE0C672C673C674C675C9BBC676C677C678B1BDC679D3A2C67AC67BDCDAC67CC67DDCD5C67EC6BBC680DCDEC681C682C683C684C685D7C2C3AFB7B6C7D1C3A9DCE2DCD8DCEBDCD4C686C687DCDDC688BEA5DCD7C689DCE0C68AC68BDCE3DCE4C68CDCF8C68DC68EDCE1DDA2DCE7C68FC690C691C692C693C694C695C696C697C698BCEBB4C4C699C69AC3A3B2E7DCFAC69BDCF2C69CDCEFC69DDCFCDCEED2F0B2E8C69EC8D7C8E3DCFBC69FDCEDC6A0C740C741DCF7C742C743DCF5C744C745BEA3DCF4C746B2DDC747C748C749C74AC74BDCF3BCF6DCE8BBC4C74CC0F3C74DC74EC74FC750C751BCD4DCE9DCEAC752DCF1DCF6DCF9B5B4C753C8D9BBE7DCFEDCFDD3ABDDA1DDA3DDA5D2F1DDA4DDA6DDA7D2A9C754C755C756C757C758C759C75ABAC9DDA9C75BC75CDDB6DDB1DDB4C75DC75EC75FC760C761C762C763DDB0C6CEC764C765C0F2C766C767C768C769C9AFC76AC76BC76CDCECDDAEC76DC76EC76FC770DDB7C771C772DCF0DDAFC773DDB8C774DDACC775C776C777C778C779C77AC77BDDB9DDB3DDADC4AAC77CC77DC77EC780DDA8C0B3C1ABDDAADDABC781DDB2BBF1DDB5D3A8DDBAC782DDBBC3A7C783C784DDD2DDBCC785C786C787DDD1C788B9BDC789C78ABED5C78BBEFAC78CC78DBACAC78EC78FC790C791DDCAC792DDC5C793DDBFC794C795C796B2CBDDC3C797DDCBB2A4DDD5C798C799C79ADDBEC79BC79CC79DC6D0DDD0C79EC79FC7A0C840C841DDD4C1E2B7C6C842C843C844C845C846DDCEDDCFC847C848C849DDC4C84AC84BC84CDDBDC84DDDCDCCD1C84EDDC9C84FC850C851C852DDC2C3C8C6BCCEAEDDCCC853DDC8C854C855C856C857C858C859DDC1C85AC85BC85CDDC6C2DCC85DC85EC85FC860C861C862D3A9D3AADDD3CFF4C8F8C863C864C865C866C867C868C869C86ADDE6C86BC86CC86DC86EC86FC870DDC7C871C872C873DDE0C2E4C874C875C876C877C878C879C87AC87BDDE1C87CC87DC87EC880C881C882C883C884C885C886DDD7C887C888C889C88AC88BD6F8C88CDDD9DDD8B8F0DDD6C88DC88EC88FC890C6CFC891B6ADC892C893C894C895C896DDE2C897BAF9D4E1DDE7C898C899C89AB4D0C89BDDDAC89CBFFBDDE3C89DDDDFC89EDDDDC89FC8A0C940C941C942C943C944B5D9C945C946C947C948DDDBDDDCDDDEC949BDAFDDE4C94ADDE5C94BC94CC94DC94EC94FC950C951C952DDF5C953C3C9C954C955CBE2C956C957C958C959DDF2C95AC95BC95CC95DC95EC95FC960C961C962C963C964C965C966D8E1C967C968C6D1C969DDF4C96AC96BC96CD5F4DDF3DDF0C96DC96EDDECC96FDDEFC970DDE8C971C972D0EEC973C974C975C976C8D8DDEEC977C978DDE9C979C97ADDEACBF2C97BDDEDC97CC97DB1CDC97EC980C981C982C983C984C0B6C985BCBBDDF1C986C987DDF7C988DDF6DDEBC989C98AC98BC98CC98DC5EEC98EC98FC990DDFBC991C992C993C994C995C996C997C998C999C99AC99BDEA4C99CC99DDEA3C99EC99FC9A0CA40CA41CA42CA43CA44CA45CA46CA47CA48DDF8CA49CA4ACA4BCA4CC3EFCA4DC2FBCA4ECA4FCA50D5E1CA51CA52CEB5CA53CA54CA55CA56DDFDCA57B2CCCA58CA59CA5ACA5BCA5CCA5DCA5ECA5FCA60C4E8CADFCA61CA62CA63CA64CA65CA66CA67CA68CA69CA6AC7BEDDFADDFCDDFEDEA2B0AAB1CECA6BCA6CCA6DCA6ECA6FDEACCA70CA71CA72CA73DEA6BDB6C8EFCA74CA75CA76CA77CA78CA79CA7ACA7BCA7CCA7DCA7EDEA1CA80CA81DEA5CA82CA83CA84CA85DEA9CA86CA87CA88CA89CA8ADEA8CA8BCA8CCA8DDEA7CA8ECA8FCA90CA91CA92CA93CA94CA95CA96DEADCA97D4CCCA98CA99CA9ACA9BDEB3DEAADEAECA9CCA9DC0D9CA9ECA9FCAA0CB40CB41B1A1DEB6CB42DEB1CB43CB44CB45CB46CB47CB48CB49DEB2CB4ACB4BCB4CCB4DCB4ECB4FCB50CB51CB52CB53CB54D1A6DEB5CB55CB56CB57CB58CB59CB5ACB5BDEAFCB5CCB5DCB5EDEB0CB5FD0BDCB60CB61CB62DEB4CAEDDEB9CB63CB64CB65CB66CB67CB68DEB8CB69DEB7CB6ACB6BCB6CCB6DCB6ECB6FCB70DEBBCB71CB72CB73CB74CB75CB76CB77BDE5CB78CB79CB7ACB7BCB7CB2D8C3EACB7DCB7EDEBACB80C5BACB81CB82CB83CB84CB85CB86DEBCCB87CB88CB89CB8ACB8BCB8CCB8DCCD9CB8ECB8FCB90CB91B7AACB92CB93CB94CB95CB96CB97CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FCBA0CC40CC41D4E5CC42CC43CC44DEBDCC45CC46CC47CC48CC49DEBFCC4ACC4BCC4CCC4DCC4ECC4FCC50CC51CC52CC53CC54C4A2CC55CC56CC57CC58DEC1CC59CC5ACC5BCC5CCC5DCC5ECC5FCC60CC61CC62CC63CC64CC65CC66CC67CC68DEBECC69DEC0CC6ACC6BCC6CCC6DCC6ECC6FCC70CC71CC72CC73CC74CC75CC76CC77D5BACC78CC79CC7ADEC2CC7BCC7CCC7DCC7ECC80CC81CC82CC83CC84CC85CC86CC87CC88CC89CC8ACC8BF2AEBBA2C2B2C5B0C2C7CC8CCC8DF2AFCC8ECC8FCC90CC91CC92D0E9CC93CC94CC95D3DDCC96CC97CC98EBBDCC99CC9ACC9BCC9CCC9DCC9ECC9FCCA0B3E6F2B0CD40F2B1CD41CD42CAADCD43CD44CD45CD46CD47CD48CD49BAE7F2B3F2B5F2B4CBE4CFBAF2B2CAB4D2CFC2ECCD4ACD4BCD4CCD4DCD4ECD4FCD50CEC3F2B8B0F6F2B7CD51CD52CD53CD54CD55F2BECD56B2CFCD57CD58CD59CD5ACD5BCD5CD1C1F2BACD5DCD5ECD5FCD60CD61F2BCD4E9CD62CD63F2BBF2B6F2BFF2BDCD64F2B9CD65CD66F2C7F2C4F2C6CD67CD68F2CAF2C2F2C0CD69CD6ACD6BF2C5CD6CCD6DCD6ECD6FCD70D6FBCD71CD72CD73F2C1CD74C7F9C9DFCD75F2C8B9C6B5B0CD76CD77F2C3F2C9F2D0F2D6CD78CD79BBD7CD7ACD7BCD7CF2D5CDDCCD7DD6EBCD7ECD80F2D2F2D4CD81CD82CD83CD84B8F2CD85CD86CD87CD88F2CBCD89CD8ACD8BF2CEC2F9CD8CD5DDF2CCF2CDF2CFF2D3CD8DCD8ECD8FF2D9D3BCCD90CD91CD92CD93B6EACD94CAF1CD95B7E4F2D7CD96CD97CD98F2D8F2DAF2DDF2DBCD99CD9AF2DCCD9BCD9CCD9DCD9ED1D1F2D1CD9FCDC9CDA0CECFD6A9CE40F2E3CE41C3DBCE42F2E0CE43CE44C0AFF2ECF2DECE45F2E1CE46CE47CE48F2E8CE49CE4ACE4BCE4CF2E2CE4DCE4EF2E7CE4FCE50F2E6CE51CE52F2E9CE53CE54CE55F2DFCE56CE57F2E4F2EACE58CE59CE5ACE5BCE5CCE5DCE5ED3ACF2E5B2F5CE5FCE60F2F2CE61D0ABCE62CE63CE64CE65F2F5CE66CE67CE68BBC8CE69F2F9CE6ACE6BCE6CCE6DCE6ECE6FF2F0CE70CE71F2F6F2F8F2FACE72CE73CE74CE75CE76CE77CE78CE79F2F3CE7AF2F1CE7BCE7CCE7DBAFBCE7EB5FBCE80CE81CE82CE83F2EFF2F7F2EDF2EECE84CE85CE86F2EBF3A6CE87F3A3CE88CE89F3A2CE8ACE8BF2F4CE8CC8DACE8DCE8ECE8FCE90CE91F2FBCE92CE93CE94F3A5CE95CE96CE97CE98CE99CE9ACE9BC3F8CE9CCE9DCE9ECE9FCEA0CF40CF41CF42F2FDCF43CF44F3A7F3A9F3A4CF45F2FCCF46CF47CF48F3ABCF49F3AACF4ACF4BCF4CCF4DC2DDCF4ECF4FF3AECF50CF51F3B0CF52CF53CF54CF55CF56F3A1CF57CF58CF59F3B1F3ACCF5ACF5BCF5CCF5DCF5EF3AFF2FEF3ADCF5FCF60CF61CF62CF63CF64CF65F3B2CF66CF67CF68CF69F3B4CF6ACF6BCF6CCF6DF3A8CF6ECF6FCF70CF71F3B3CF72CF73CF74F3B5CF75CF76CF77CF78CF79CF7ACF7BCF7CCF7DCF7ED0B7CF80CF81CF82CF83F3B8CF84CF85CF86CF87D9F9CF88CF89CF8ACF8BCF8CCF8DF3B9CF8ECF8FCF90CF91CF92CF93CF94CF95F3B7CF96C8E4F3B6CF97CF98CF99CF9AF3BACF9BCF9CCF9DCF9ECF9FF3BBB4C0CFA0D040D041D042D043D044D045D046D047D048D049D04AD04BD04CD04DEEC3D04ED04FD050D051D052D053F3BCD054D055F3BDD056D057D058D1AAD059D05AD05BF4ACD0C6D05CD05DD05ED05FD060D061D0D0D1DCD062D063D064D065D066D067CFCED068D069BDD6D06AD1C3D06BD06CD06DD06ED06FD070D071BAE2E1E9D2C2F1C2B2B9D072D073B1EDF1C3D074C9C0B3C4D075D9F2D076CBA5D077F1C4D078D079D07AD07BD6D4D07CD07DD07ED080D081F1C5F4C0F1C6D082D4ACF1C7D083B0C0F4C1D084D085F4C2D086D087B4FCD088C5DBD089D08AD08BD08CCCBBD08DD08ED08FD0E4D090D091D092D093D094CDE0D095D096D097D098D099F1C8D09AD9F3D09BD09CD09DD09ED09FD0A0B1BBD140CFAED141D142D143B8A4D144D145D146D147D148F1CAD149D14AD14BD14CF1CBD14DD14ED14FD150B2C3C1D1D151D152D7B0F1C9D153D154F1CCD155D156D157D158F1CED159D15AD15BD9F6D15CD2E1D4A3D15DD15EF4C3C8B9D15FD160D161D162D163F4C4D164D165F1CDF1CFBFE3F1D0D166D167F1D4D168D169D16AD16BD16CD16DD16EF1D6F1D1D16FC9D1C5E1D170D171D172C2E3B9FCD173D174F1D3D175F1D5D176D177D178B9D3D179D17AD17BD17CD17DD17ED180F1DBD181D182D183D184D185BAD6D186B0FDF1D9D187D188D189D18AD18BF1D8F1D2F1DAD18CD18DD18ED18FD190F1D7D191D192D193C8ECD194D195D196D197CDCAF1DDD198D199D19AD19BE5BDD19CD19DD19EF1DCD19FF1DED1A0D240D241D242D243D244D245D246D247D248F1DFD249D24ACFE5D24BD24CD24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25BD25CD25DD25ED25FD260D261D262D263F4C5BDF3D264D265D266D267D268D269F1E0D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277D278D279D27AD27BD27CD27DF1E1D27ED280D281CEF7D282D2AAD283F1FBD284D285B8B2D286D287D288D289D28AD28BD28CD28DD28ED28FD290D291D292D293D294D295D296D297D298D299D29AD29BD29CD29DD29ED29FD2A0D340D341D342D343D344D345D346D347D348D349D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358D359D35AD35BD35CD35DD35EBCFBB9DBD35FB9E6C3D9CAD3EAE8C0C0BEF5EAE9EAEAEAEBD360EAECEAEDEAEEEAEFBDC7D361D362D363F5FBD364D365D366F5FDD367F5FED368F5FCD369D36AD36BD36CBDE2D36DF6A1B4A5D36ED36FD370D371F6A2D372D373D374F6A3D375D376D377ECB2D378D379D37AD37BD37CD37DD37ED380D381D382D383D384D1D4D385D386D387D388D389D38AD9EAD38BD38CD38DD38ED38FD390D391D392D393D394D395D396D397D398D399D39AD39BD39CD39DD39ED39FD3A0D440D441D442D443D444D445D446D447D448D449D44AD44BD44CD44DD44ED44FD450D451D452D453D454D455D456D457D458D459D45AD45BD45CD45DD45ED45FF6A4D460D461D462D463D464D465D466D467D468EEBAD469D46AD46BD46CD46DD46ED46FD470D471D472D473D474D475D476D477D478D479D47AD47BD47CD47DD47ED480D481D482D483D484D485D486D487D488D489D48AD48BD48CD48DD48ED48FD490D491D492D493D494D495D496D497D498D499D5B2D49AD49BD49CD49DD49ED49FD4A0D540D541D542D543D544D545D546D547D3FECCDCD548D549D54AD54BD54CD54DD54ED54FCAC4D550D551D552D553D554D555D556D557D558D559D55AD55BD55CD55DD55ED55FD560D561D562D563D564D565D566D567D568D569D56AD56BD56CD56DD56ED56FD570D571D572D573D574D575D576D577D578D579D57AD57BD57CD57DD57ED580D581D582D583D584D585D586D587D588D589D58AD58BD58CD58DD58ED58FD590D591D592D593D594D595D596D597D598D599D59AD59BD59CD59DD59ED59FD5A0D640D641D642D643D644D645D646D647D648D649D64AD64BD64CD64DD64ED64FD650D651D652D653D654D655D656D657D658D659D65AD65BD65CD65DD65ED65FD660D661D662E5C0D663D664D665D666D667D668D669D66AD66BD66CD66DD66ED66FD670D671D672D673D674D675D676D677D678D679D67AD67BD67CD67DD67ED680D681F6A5D682D683D684D685D686D687D688D689D68AD68BD68CD68DD68ED68FD690D691D692D693D694D695D696D697D698D699D69AD69BD69CD69DD69ED69FD6A0D740D741D742D743D744D745D746D747D748D749D74AD74BD74CD74DD74ED74FD750D751D752D753D754D755D756D757D758D759D75AD75BD75CD75DD75ED75FBEAFD760D761D762D763D764C6A9D765D766D767D768D769D76AD76BD76CD76DD76ED76FD770D771D772D773D774D775D776D777D778D779D77AD77BD77CD77DD77ED780D781D782D783D784D785D786D787D788D789D78AD78BD78CD78DD78ED78FD790D791D792D793D794D795D796D797D798DAA5BCC6B6A9B8BCC8CFBCA5DAA6DAA7CCD6C8C3DAA8C6FDD799D1B5D2E9D1B6BCC7D79ABDB2BBE4DAA9DAAAD1C8DAABD0EDB6EFC2DBD79BCBCFB7EDC9E8B7C3BEF7D6A4DAACDAADC6C0D7E7CAB6D79CD5A9CBDFD5EFDAAED6DFB4CADAB0DAAFD79DD2EBDAB1DAB2DAB3CAD4DAB4CAABDAB5DAB6B3CFD6EFDAB7BBB0B5AEDAB8DAB9B9EED1AFD2E8DABAB8C3CFEAB2EFDABBDABCD79EBDEBCEDCD3EFDABDCEF3DABED3D5BBE5DABFCBB5CBD0DAC0C7EBD6EEDAC1C5B5B6C1DAC2B7CCBFCEDAC3DAC4CBADDAC5B5F7DAC6C1C2D7BBDAC7CCB8D79FD2EAC4B1DAC8B5FDBBD1DAC9D0B3DACADACBCEBDDACCDACDDACEB2F7DAD1DACFD1E8DAD0C3D5DAD2D7A0DAD3DAD4DAD5D0BBD2A5B0F9DAD6C7ABDAD7BDF7C3A1DAD8DAD9C3FDCCB7DADADADBC0BEC6D7DADCDADDC7B4DADEDADFB9C8D840D841D842D843D844D845D846D847D848BBEDD849D84AD84BD84CB6B9F4F8D84DF4F9D84ED84FCDE3D850D851D852D853D854D855D856D857F5B9D858D859D85AD85BEBE0D85CD85DD85ED85FD860D861CFF3BBBFD862D863D864D865D866D867D868BAC0D4A5D869D86AD86BD86CD86DD86ED86FE1D9D870D871D872D873F5F4B1AAB2F2D874D875D876D877D878D879D87AF5F5D87BD87CF5F7D87DD87ED880BAD1F5F6D881C3B2D882D883D884D885D886D887D888F5F9D889D88AD88BF5F8D88CD88DD88ED88FD890D891D892D893D894D895D896D897D898D899D89AD89BD89CD89DD89ED89FD8A0D940D941D942D943D944D945D946D947D948D949D94AD94BD94CD94DD94ED94FD950D951D952D953D954D955D956D957D958D959D95AD95BD95CD95DD95ED95FD960D961D962D963D964D965D966D967D968D969D96AD96BD96CD96DD96ED96FD970D971D972D973D974D975D976D977D978D979D97AD97BD97CD97DD97ED980D981D982D983D984D985D986D987D988D989D98AD98BD98CD98DD98ED98FD990D991D992D993D994D995D996D997D998D999D99AD99BD99CD99DD99ED99FD9A0DA40DA41DA42DA43DA44DA45DA46DA47DA48DA49DA4ADA4BDA4CDA4DDA4EB1B4D5EAB8BADA4FB9B1B2C6D4F0CFCDB0DCD5CBBBF5D6CAB7B7CCB0C6B6B1E1B9BAD6FCB9E1B7A1BCFAEADAEADBCCF9B9F3EADCB4FBC3B3B7D1BAD8EADDD4F4EADEBCD6BBDFEADFC1DEC2B8D4DFD7CAEAE0EAE1EAE4EAE2EAE3C9DEB8B3B6C4EAE5CAEAC9CDB4CDDA50DA51E2D9C5E2EAE6C0B5DA52D7B8EAE7D7ACC8FCD8D3D8CDD4DEDA53D4F9C9C4D3AEB8D3B3E0DA54C9E2F4F6DA55DA56DA57BAD5DA58F4F7DA59DA5AD7DFDA5BDA5CF4F1B8B0D5D4B8CFC6F0DA5DDA5EDA5FDA60DA61DA62DA63DA64DA65B3C3DA66DA67F4F2B3ACDA68DA69DA6ADA6BD4BDC7F7DA6CDA6DDA6EDA6FDA70F4F4DA71DA72F4F3DA73DA74DA75DA76DA77DA78DA79DA7ADA7BDA7CCCCBDA7DDA7EDA80C8A4DA81DA82DA83DA84DA85DA86DA87DA88DA89DA8ADA8BDA8CDA8DF4F5DA8ED7E3C5BFF5C0DA8FDA90F5BBDA91F5C3DA92F5C2DA93D6BAF5C1DA94DA95DA96D4BEF5C4DA97F5CCDA98DA99DA9ADA9BB0CFB5F8DA9CF5C9F5CADA9DC5DCDA9EDA9FDAA0DB40F5C5F5C6DB41DB42F5C7F5CBDB43BEE0F5C8B8FADB44DB45DB46F5D0F5D3DB47DB48DB49BFE7DB4AB9F2F5BCF5CDDB4BDB4CC2B7DB4DDB4EDB4FCCF8DB50BCF9DB51F5CEF5CFF5D1B6E5F5D2DB52F5D5DB53DB54DB55DB56DB57DB58DB59F5BDDB5ADB5BDB5CF5D4D3BBDB5DB3ECDB5EDB5FCCA4DB60DB61DB62DB63F5D6DB64DB65DB66DB67DB68DB69DB6ADB6BF5D7BEE1F5D8DB6CDB6DCCDFF5DBDB6EDB6FDB70DB71DB72B2C8D7D9DB73F5D9DB74F5DAF5DCDB75F5E2DB76DB77DB78F5E0DB79DB7ADB7BF5DFF5DDDB7CDB7DF5E1DB7EDB80F5DEF5E4F5E5DB81CCE3DB82DB83E5BFB5B8F5E3F5E8CCA3DB84DB85DB86DB87DB88F5E6F5E7DB89DB8ADB8BDB8CDB8DDB8EF5BEDB8FDB90DB91DB92DB93DB94DB95DB96DB97DB98DB99DB9AB1C4DB9BDB9CF5BFDB9DDB9EB5C5B2E4DB9FF5ECF5E9DBA0B6D7DC40F5EDDC41F5EADC42DC43DC44DC45DC46F5EBDC47DC48B4DADC49D4EADC4ADC4BDC4CF5EEDC4DB3F9DC4EDC4FDC50DC51DC52DC53DC54F5EFF5F1DC55DC56DC57F5F0DC58DC59DC5ADC5BDC5CDC5DDC5EF5F2DC5FF5F3DC60DC61DC62DC63DC64DC65DC66DC67DC68DC69DC6ADC6BC9EDB9AADC6CDC6DC7FBDC6EDC6FB6E3DC70DC71DC72DC73DC74DC75DC76CCC9DC77DC78DC79DC7ADC7BDC7CDC7DDC7EDC80DC81DC82DC83DC84DC85DC86DC87DC88DC89DC8AEAA6DC8BDC8CDC8DDC8EDC8FDC90DC91DC92DC93DC94DC95DC96DC97DC98DC99DC9ADC9BDC9CDC9DDC9EDC9FDCA0DD40DD41DD42DD43DD44DD45DD46DD47DD48DD49DD4ADD4BDD4CDD4DDD4EDD4FDD50DD51DD52DD53DD54DD55DD56DD57DD58DD59DD5ADD5BDD5CDD5DDD5EDD5FDD60DD61DD62DD63DD64DD65DD66DD67DD68DD69DD6ADD6BDD6CDD6DDD6EDD6FDD70DD71DD72DD73DD74DD75DD76DD77DD78DD79DD7ADD7BDD7CDD7DDD7EDD80DD81DD82DD83DD84DD85DD86DD87DD88DD89DD8ADD8BDD8CDD8DDD8EDD8FDD90DD91DD92DD93DD94DD95DD96DD97DD98DD99DD9ADD9BDD9CDD9DDD9EDD9FDDA0DE40DE41DE42DE43DE44DE45DE46DE47DE48DE49DE4ADE4BDE4CDE4DDE4EDE4FDE50DE51DE52DE53DE54DE55DE56DE57DE58DE59DE5ADE5BDE5CDE5DDE5EDE5FDE60B3B5D4FEB9ECD0F9DE61E9EDD7AAE9EEC2D6C8EDBAE4E9EFE9F0E9F1D6E1E9F2E9F3E9F5E9F4E9F6E9F7C7E1E9F8D4D8E9F9BDCEDE62E9FAE9FBBDCFE9FCB8A8C1BEE9FDB1B2BBD4B9F5E9FEDE63EAA1EAA2EAA3B7F8BCADDE64CAE4E0CED4AFCFBDD5B7EAA4D5DEEAA5D0C1B9BCDE65B4C7B1D9DE66DE67DE68C0B1DE69DE6ADE6BDE6CB1E6B1E7DE6DB1E8DE6EDE6FDE70DE71B3BDC8E8DE72DE73DE74DE75E5C1DE76DE77B1DFDE78DE79DE7AC1C9B4EFDE7BDE7CC7A8D3D8DE7DC6F9D1B8DE7EB9FDC2F5DE80DE81DE82DE83DE84D3ADDE85D4CBBDFCDE86E5C2B7B5E5C3DE87DE88BBB9D5E2DE89BDF8D4B6CEA5C1ACB3D9DE8ADE8BCCF6DE8CE5C6E5C4E5C8DE8DE5CAE5C7B5CFC6C8DE8EB5FCE5C5DE8FCAF6DE90DE91E5C9DE92DE93DE94C3D4B1C5BCA3DE95DE96DE97D7B7DE98DE99CDCBCBCDCACACCD3E5CCE5CBC4E6DE9ADE9BD1A1D1B7E5CDDE9CE5D0DE9DCDB8D6F0E5CFB5DDDE9ECDBEDE9FE5D1B6BADEA0DF40CDA8B9E4DF41CAC5B3D1CBD9D4ECE5D2B7EADF42DF43DF44E5CEDF45DF46DF47DF48DF49DF4AE5D5B4FEE5D6DF4BDF4CDF4DDF4EDF4FE5D3E5D4DF50D2DDDF51DF52C2DFB1C6DF53D3E2DF54DF55B6DDCBECDF56E5D7DF57DF58D3F6DF59DF5ADF5BDF5CDF5DB1E9DF5EB6F4E5DAE5D8E5D9B5C0DF5FDF60DF61D2C5E5DCDF62DF63E5DEDF64DF65DF66DF67DF68DF69E5DDC7B2DF6AD2A3DF6BDF6CE5DBDF6DDF6EDF6FDF70D4E2D5DADF71DF72DF73DF74DF75E5E0D7F1DF76DF77DF78DF79DF7ADF7BDF7CE5E1DF7DB1DCD1FBDF7EE5E2E5E4DF80DF81DF82DF83E5E3DF84DF85E5E5DF86DF87DF88DF89DF8AD2D8DF8BB5CBDF8CE7DFDF8DDAF5DF8EDAF8DF8FDAF6DF90DAF7DF91DF92DF93DAFAD0CFC4C7DF94DF95B0EEDF96DF97DF98D0B0DF99DAF9DF9AD3CABAAADBA2C7F1DF9BDAFCDAFBC9DBDAFDDF9CDBA1D7DEDAFEC1DADF9DDF9EDBA5DF9FDFA0D3F4E040E041DBA7DBA4E042DBA8E043E044BDBCE045E046E047C0C9DBA3DBA6D6A3E048DBA9E049E04AE04BDBADE04CE04DE04EDBAEDBACBAC2E04FE050E051BFA4DBABE052E053E054DBAAD4C7B2BFE055E056DBAFE057B9F9E058DBB0E059E05AE05BE05CB3BBE05DE05EE05FB5A6E060E061E062E063B6BCDBB1E064E065E066B6F5E067DBB2E068E069E06AE06BE06CE06DE06EE06FE070E071E072E073E074E075E076E077E078E079E07AE07BB1C9E07CE07DE07EE080DBB4E081E082E083DBB3DBB5E084E085E086E087E088E089E08AE08BE08CE08DE08EDBB7E08FDBB6E090E091E092E093E094E095E096DBB8E097E098E099E09AE09BE09CE09DE09EE09FDBB9E0A0E140DBBAE141E142D3CFF4FAC7F5D7C3C5E4F4FCF4FDF4FBE143BEC6E144E145E146E147D0EFE148E149B7D3E14AE14BD4CDCCAAE14CE14DF5A2F5A1BAA8F4FECBD6E14EE14FE150F5A4C0D2E151B3EAE152CDAAF5A5F5A3BDB4F5A8E153F5A9BDCDC3B8BFE1CBE1F5AAE154E155E156F5A6F5A7C4F0E157E158E159E15AE15BF5ACE15CB4BCE15DD7EDE15EB4D7F5ABF5AEE15FE160F5ADF5AFD0D1E161E162E163E164E165E166E167C3D1C8A9E168E169E16AE16BE16CE16DF5B0F5B1E16EE16FE170E171E172E173F5B2E174E175F5B3F5B4F5B5E176E177E178E179F5B7F5B6E17AE17BE17CE17DF5B8E17EE180E181E182E183E184E185E186E187E188E189E18AB2C9E18BD3D4CACDE18CC0EFD6D8D2B0C1BFE18DBDF0E18EE18FE190E191E192E193E194E195E196E197B8AAE198E199E19AE19BE19CE19DE19EE19FE1A0E240E241E242E243E244E245E246E247E248E249E24AE24BE24CE24DE24EE24FE250E251E252E253E254E255E256E257E258E259E25AE25BE25CE25DE25EE25FE260E261E262E263E264E265E266E267E268E269E26AE26BE26CE26DE26EE26FE270E271E272E273E274E275E276E277E278E279E27AE27BE27CE27DE27EE280E281E282E283E284E285E286E287E288E289E28AE28BE28CE28DE28EE28FE290E291E292E293E294E295E296E297E298E299E29AE29BE29CE29DE29EE29FE2A0E340E341E342E343E344E345E346E347E348E349E34AE34BE34CE34DE34EE34FE350E351E352E353E354E355E356E357E358E359E35AE35BE35CE35DE35EE35FE360E361E362E363E364E365E366E367E368E369E36AE36BE36CE36DBCF8E36EE36FE370E371E372E373E374E375E376E377E378E379E37AE37BE37CE37DE37EE380E381E382E383E384E385E386E387F6C6E388E389E38AE38BE38CE38DE38EE38FE390E391E392E393E394E395E396E397E398E399E39AE39BE39CE39DE39EE39FE3A0E440E441E442E443E444E445F6C7E446E447E448E449E44AE44BE44CE44DE44EE44FE450E451E452E453E454E455E456E457E458E459E45AE45BE45CE45DE45EF6C8E45FE460E461E462E463E464E465E466E467E468E469E46AE46BE46CE46DE46EE46FE470E471E472E473E474E475E476E477E478E479E47AE47BE47CE47DE47EE480E481E482E483E484E485E486E487E488E489E48AE48BE48CE48DE48EE48FE490E491E492E493E494E495E496E497E498E499E49AE49BE49CE49DE49EE49FE4A0E540E541E542E543E544E545E546E547E548E549E54AE54BE54CE54DE54EE54FE550E551E552E553E554E555E556E557E558E559E55AE55BE55CE55DE55EE55FE560E561E562E563E564E565E566E567E568E569E56AE56BE56CE56DE56EE56FE570E571E572E573F6C9E574E575E576E577E578E579E57AE57BE57CE57DE57EE580E581E582E583E584E585E586E587E588E589E58AE58BE58CE58DE58EE58FE590E591E592E593E594E595E596E597E598E599E59AE59BE59CE59DE59EE59FF6CAE5A0E640E641E642E643E644E645E646E647E648E649E64AE64BE64CE64DE64EE64FE650E651E652E653E654E655E656E657E658E659E65AE65BE65CE65DE65EE65FE660E661E662F6CCE663E664E665E666E667E668E669E66AE66BE66CE66DE66EE66FE670E671E672E673E674E675E676E677E678E679E67AE67BE67CE67DE67EE680E681E682E683E684E685E686E687E688E689E68AE68BE68CE68DE68EE68FE690E691E692E693E694E695E696E697E698E699E69AE69BE69CE69DF6CBE69EE69FE6A0E740E741E742E743E744E745E746E747F7E9E748E749E74AE74BE74CE74DE74EE74FE750E751E752E753E754E755E756E757E758E759E75AE75BE75CE75DE75EE75FE760E761E762E763E764E765E766E767E768E769E76AE76BE76CE76DE76EE76FE770E771E772E773E774E775E776E777E778E779E77AE77BE77CE77DE77EE780E781E782E783E784E785E786E787E788E789E78AE78BE78CE78DE78EE78FE790E791E792E793E794E795E796E797E798E799E79AE79BE79CE79DE79EE79FE7A0E840E841E842E843E844E845E846E847E848E849E84AE84BE84CE84DE84EF6CDE84FE850E851E852E853E854E855E856E857E858E859E85AE85BE85CE85DE85EE85FE860E861E862E863E864E865E866E867E868E869E86AE86BE86CE86DE86EE86FE870E871E872E873E874E875E876E877E878E879E87AF6CEE87BE87CE87DE87EE880E881E882E883E884E885E886E887E888E889E88AE88BE88CE88DE88EE88FE890E891E892E893E894EEC4EEC5EEC6D5EBB6A4EEC8EEC7EEC9EECAC7A5EECBEECCE895B7B0B5F6EECDEECFE896EECEE897B8C6EED0EED1EED2B6DBB3AED6D3C4C6B1B5B8D6EED3EED4D4BFC7D5BEFBCED9B9B3EED6EED5EED8EED7C5A5EED9EEDAC7AEEEDBC7AFEEDCB2A7EEDDEEDEEEDFEEE0EEE1D7EAEEE2EEE3BCD8EEE4D3CBCCFAB2ACC1E5EEE5C7A6C3ADE898EEE6EEE7EEE8EEE9EEEAEEEBEEECE899EEEDEEEEEEEFE89AE89BEEF0EEF1EEF2EEF4EEF3E89CEEF5CDADC2C1EEF6EEF7EEF8D5A1EEF9CFB3EEFAEEFBE89DEEFCEEFDEFA1EEFEEFA2B8F5C3FAEFA3EFA4BDC2D2BFB2F9EFA5EFA6EFA7D2F8EFA8D6FDEFA9C6CCE89EEFAAEFABC1B4EFACCFFACBF8EFAEEFADB3FAB9F8EFAFEFB0D0E2EFB1EFB2B7E6D0BFEFB3EFB4EFB5C8F1CCE0EFB6EFB7EFB8EFB9EFBAD5E0EFBBB4EDC3AAEFBCE89FEFBDEFBEEFBFE8A0CEFDEFC0C2E0B4B8D7B6BDF5E940CFC7EFC3EFC1EFC2EFC4B6A7BCFCBEE2C3CCEFC5EFC6E941EFC7EFCFEFC8EFC9EFCAC7C2EFF1B6CDEFCBE942EFCCEFCDB6C6C3BEEFCEE943EFD0EFD1EFD2D5F2E944EFD3C4F7E945EFD4C4F8EFD5EFD6B8E4B0F7EFD7EFD8EFD9E946EFDAEFDBEFDCEFDDE947EFDEBEB5EFE1EFDFEFE0E948EFE2EFE3C1CDEFE4EFE5EFE6EFE7EFE8EFE9EFEAEFEBEFECC0D8E949EFEDC1ADEFEEEFEFEFF0E94AE94BCFE2E94CE94DE94EE94FE950E951E952E953B3A4E954E955E956E957E958E959E95AE95BE95CE95DE95EE95FE960E961E962E963E964E965E966E967E968E969E96AE96BE96CE96DE96EE96FE970E971E972E973E974E975E976E977E978E979E97AE97BE97CE97DE97EE980E981E982E983E984E985E986E987E988E989E98AE98BE98CE98DE98EE98FE990E991E992E993E994E995E996E997E998E999E99AE99BE99CE99DE99EE99FE9A0EA40EA41EA42EA43EA44EA45EA46EA47EA48EA49EA4AEA4BEA4CEA4DEA4EEA4FEA50EA51EA52EA53EA54EA55EA56EA57EA58EA59EA5AEA5BC3C5E3C5C9C1E3C6EA5CB1D5CECAB4B3C8F2E3C7CFD0E3C8BCE4E3C9E3CAC3C6D5A2C4D6B9EBCEC5E3CBC3F6E3CCEA5DB7A7B8F3BAD2E3CDE3CED4C4E3CFEA5EE3D0D1CBE3D1E3D2E3D3E3D4D1D6E3D5B2FBC0BBE3D6EA5FC0ABE3D7E3D8E3D9EA60E3DAE3DBEA61B8B7DAE2EA62B6D3EA63DAE4DAE3EA64EA65EA66EA67EA68EA69EA6ADAE6EA6BEA6CEA6DC8EEEA6EEA6FDAE5B7C0D1F4D2F5D5F3BDD7EA70EA71EA72EA73D7E8DAE8DAE7EA74B0A2CDD3EA75DAE9EA76B8BDBCCAC2BDC2A4B3C2DAEAEA77C2AAC4B0BDB5EA78EA79CFDEEA7AEA7BEA7CDAEBC9C2EA7DEA7EEA80EA81EA82B1DDEA83EA84EA85DAECEA86B6B8D4BAEA87B3FDEA88EA89DAEDD4C9CFD5C5E3EA8ADAEEEA8BEA8CEA8DEA8EEA8FDAEFEA90DAF0C1EACCD5CFDDEA91EA92EA93EA94EA95EA96EA97EA98EA99EA9AEA9BEA9CEA9DD3E7C2A1EA9EDAF1EA9FEAA0CBE5EB40DAF2EB41CBE6D2FEEB42EB43EB44B8F4EB45EB46DAF3B0AFCFB6EB47EB48D5CFEB49EB4AEB4BEB4CEB4DEB4EEB4FEB50EB51EB52CBEDEB53EB54EB55EB56EB57EB58EB59EB5ADAF4EB5BEB5CE3C4EB5DEB5EC1A5EB5FEB60F6BFEB61EB62F6C0F6C1C4D1EB63C8B8D1E3EB64EB65D0DBD1C5BCAFB9CDEB66EFF4EB67EB68B4C6D3BAF6C2B3FBEB69EB6AF6C3EB6BEB6CB5F1EB6DEB6EEB6FEB70EB71EB72EB73EB74EB75EB76F6C5EB77EB78EB79EB7AEB7BEB7CEB7DD3EAF6A7D1A9EB7EEB80EB81EB82F6A9EB83EB84EB85F6A8EB86EB87C1E3C0D7EB88B1A2EB89EB8AEB8BEB8CCEEDEB8DD0E8F6ABEB8EEB8FCFF6EB90F6AAD5F0F6ACC3B9EB91EB92EB93BBF4F6AEF6ADEB94EB95EB96C4DEEB97EB98C1D8EB99EB9AEB9BEB9CEB9DCBAAEB9ECFBCEB9FEBA0EC40EC41EC42EC43EC44EC45EC46EC47EC48F6AFEC49EC4AF6B0EC4BEC4CF6B1EC4DC2B6EC4EEC4FEC50EC51EC52B0D4C5F9EC53EC54EC55EC56F6B2EC57EC58EC59EC5AEC5BEC5CEC5DEC5EEC5FEC60EC61EC62EC63EC64EC65EC66EC67EC68EC69C7E0F6A6EC6AEC6BBEB8EC6CEC6DBEB2EC6EB5E5EC6FEC70B7C7EC71BFBFC3D2C3E6EC72EC73D8CCEC74EC75EC76B8EFEC77EC78EC79EC7AEC7BEC7CEC7DEC7EEC80BDF9D1A5EC81B0D0EC82EC83EC84EC85EC86F7B0EC87EC88EC89EC8AEC8BEC8CEC8DEC8EF7B1EC8FEC90EC91EC92EC93D0ACEC94B0B0EC95EC96EC97F7B2F7B3EC98F7B4EC99EC9AEC9BC7CAEC9CEC9DEC9EEC9FECA0ED40ED41BECFED42ED43F7B7ED44ED45ED46ED47ED48ED49ED4AF7B6ED4BB1DEED4CF7B5ED4DED4EF7B8ED4FF7B9ED50ED51ED52ED53ED54ED55ED56ED57ED58ED59ED5AED5BED5CED5DED5EED5FED60ED61ED62ED63ED64ED65ED66ED67ED68ED69ED6AED6BED6CED6DED6EED6FED70ED71ED72ED73ED74ED75ED76ED77ED78ED79ED7AED7BED7CED7DED7EED80ED81CEA4C8CDED82BAABE8B8E8B9E8BABEC2ED83ED84ED85ED86ED87D2F4ED88D4CFC9D8ED89ED8AED8BED8CED8DED8EED8FED90ED91ED92ED93ED94ED95ED96ED97ED98ED99ED9AED9BED9CED9DED9EED9FEDA0EE40EE41EE42EE43EE44EE45EE46EE47EE48EE49EE4AEE4BEE4CEE4DEE4EEE4FEE50EE51EE52EE53EE54EE55EE56EE57EE58EE59EE5AEE5BEE5CEE5DEE5EEE5FEE60EE61EE62EE63EE64EE65EE66EE67EE68EE69EE6AEE6BEE6CEE6DEE6EEE6FEE70EE71EE72EE73EE74EE75EE76EE77EE78EE79EE7AEE7BEE7CEE7DEE7EEE80EE81EE82EE83EE84EE85EE86EE87EE88EE89EE8AEE8BEE8CEE8DEE8EEE8FEE90EE91EE92EE93EE94EE95EE96EE97EE98EE99EE9AEE9BEE9CEE9DEE9EEE9FEEA0EF40EF41EF42EF43EF44EF45D2B3B6A5C7EAF1FCCFEECBB3D0EBE7EFCDE7B9CBB6D9F1FDB0E4CBCCF1FED4A4C2ADC1ECC6C4BEB1F2A1BCD5EF46F2A2F2A3EF47F2A4D2C3C6B5EF48CDC7F2A5EF49D3B1BFC5CCE2EF4AF2A6F2A7D1D5B6EEF2A8F2A9B5DFF2AAF2ABEF4BB2FCF2ACF2ADC8A7EF4CEF4DEF4EEF4FEF50EF51EF52EF53EF54EF55EF56EF57EF58EF59EF5AEF5BEF5CEF5DEF5EEF5FEF60EF61EF62EF63EF64EF65EF66EF67EF68EF69EF6AEF6BEF6CEF6DEF6EEF6FEF70EF71B7E7EF72EF73ECA9ECAAECABEF74ECACEF75EF76C6AEECADECAEEF77EF78EF79B7C9CAB3EF7AEF7BEF7CEF7DEF7EEF80EF81E2B8F7CFEF82EF83EF84EF85EF86EF87EF88EF89EF8AEF8BEF8CEF8DEF8EEF8FEF90EF91EF92EF93EF94EF95EF96EF97EF98EF99EF9AEF9BEF9CEF9DEF9EEF9FEFA0F040F041F042F043F044F7D0F045F046B2CDF047F048F049F04AF04BF04CF04DF04EF04FF050F051F052F053F054F055F056F057F058F059F05AF05BF05CF05DF05EF05FF060F061F062F063F7D1F064F065F066F067F068F069F06AF06BF06CF06DF06EF06FF070F071F072F073F074F075F076F077F078F079F07AF07BF07CF07DF07EF080F081F082F083F084F085F086F087F088F089F7D3F7D2F08AF08BF08CF08DF08EF08FF090F091F092F093F094F095F096E2BBF097BCA2F098E2BCE2BDE2BEE2BFE2C0E2C1B7B9D2FBBDA4CACEB1A5CBC7F099E2C2B6FCC8C4E2C3F09AF09BBDC8F09CB1FDE2C4F09DB6F6E2C5C4D9F09EF09FE2C6CFDAB9DDE2C7C0A1F0A0E2C8B2F6F140E2C9F141C1F3E2CAE2CBC2F8E2CCE2CDE2CECAD7D8B8D9E5CFE3F142F143F144F145F146F147F148F149F14AF14BF14CF0A5F14DF14EDCB0F14FF150F151F152F153F154F155F156F157F158F159F15AF15BF15CF15DF15EF15FF160F161F162F163F164F165F166F167F168F169F16AF16BF16CF16DF16EF16FF170F171F172F173F174F175F176F177F178F179F17AF17BF17CF17DF17EF180F181F182F183F184F185F186F187F188F189F18AF18BF18CF18DF18EF18FF190F191F192F193F194F195F196F197F198F199F19AF19BF19CF19DF19EF19FF1A0F240F241F242F243F244F245F246F247F248F249F24AF24BF24CF24DF24EF24FF250F251F252F253F254F255F256F257F258F259F25AF25BF25CF25DF25EF25FF260F261F262F263F264F265F266F267F268F269F26AF26BF26CF26DF26EF26FF270F271F272F273F274F275F276F277F278F279F27AF27BF27CF27DF27EF280F281F282F283F284F285F286F287F288F289F28AF28BF28CF28DF28EF28FF290F291F292F293F294F295F296F297F298F299F29AF29BF29CF29DF29EF29FF2A0F340F341F342F343F344F345F346F347F348F349F34AF34BF34CF34DF34EF34FF350F351C2EDD4A6CDD4D1B1B3DBC7FDF352B2B5C2BFE6E0CABBE6E1E6E2BED4E6E3D7A4CDD5E6E5BCDDE6E4E6E6E6E7C2EEF353BDBEE6E8C2E6BAA7E6E9F354E6EAB3D2D1E9F355F356BFA5E6EBC6EFE6ECE6EDF357F358E6EEC6ADE6EFF359C9A7E6F0E6F1E6F2E5B9E6F3E6F4C2E2E6F5E6F6D6E8E6F7F35AE6F8B9C7F35BF35CF35DF35EF35FF360F361F7BBF7BAF362F363F364F365F7BEF7BCBAA1F366F7BFF367F7C0F368F369F36AF7C2F7C1F7C4F36BF36CF7C3F36DF36EF36FF370F371F7C5F7C6F372F373F374F375F7C7F376CBE8F377F378F379F37AB8DFF37BF37CF37DF37EF380F381F7D4F382F7D5F383F384F385F386F7D6F387F388F389F38AF7D8F38BF7DAF38CF7D7F38DF38EF38FF390F391F392F393F394F395F7DBF396F7D9F397F398F399F39AF39BF39CF39DD7D7F39EF39FF3A0F440F7DCF441F442F443F444F445F446F7DDF447F448F449F7DEF44AF44BF44CF44DF44EF44FF450F451F452F453F454F7DFF455F456F457F7E0F458F459F45AF45BF45CF45DF45EF45FF460F461F462DBCBF463F464D8AAF465F466F467F468F469F46AF46BF46CE5F7B9EDF46DF46EF46FF470BFFDBBEAF7C9C6C7F7C8F471F7CAF7CCF7CBF472F473F474F7CDF475CEBAF476F7CEF477F478C4A7F479F47AF47BF47CF47DF47EF480F481F482F483F484F485F486F487F488F489F48AF48BF48CF48DF48EF48FF490F491F492F493F494F495F496F497F498F499F49AF49BF49CF49DF49EF49FF4A0F540F541F542F543F544F545F546F547F548F549F54AF54BF54CF54DF54EF54FF550F551F552F553F554F555F556F557F558F559F55AF55BF55CF55DF55EF55FF560F561F562F563F564F565F566F567F568F569F56AF56BF56CF56DF56EF56FF570F571F572F573F574F575F576F577F578F579F57AF57BF57CF57DF57EF580F581F582F583F584F585F586F587F588F589F58AF58BF58CF58DF58EF58FF590F591F592F593F594F595F596F597F598F599F59AF59BF59CF59DF59EF59FF5A0F640F641F642F643F644F645F646F647F648F649F64AF64BF64CF64DF64EF64FF650F651F652F653F654F655F656F657F658F659F65AF65BF65CF65DF65EF65FF660F661F662F663F664F665F666F667F668F669F66AF66BF66CF66DF66EF66FF670F671F672F673F674F675F676F677F678F679F67AF67BF67CF67DF67EF680F681F682F683F684F685F686F687F688F689F68AF68BF68CF68DF68EF68FF690F691F692F693F694F695F696F697F698F699F69AF69BF69CF69DF69EF69FF6A0F740F741F742F743F744F745F746F747F748F749F74AF74BF74CF74DF74EF74FF750F751F752F753F754F755F756F757F758F759F75AF75BF75CF75DF75EF75FF760F761F762F763F764F765F766F767F768F769F76AF76BF76CF76DF76EF76FF770F771F772F773F774F775F776F777F778F779F77AF77BF77CF77DF77EF780D3E3F781F782F6CFF783C2B3F6D0F784F785F6D1F6D2F6D3F6D4F786F787F6D6F788B1ABF6D7F789F6D8F6D9F6DAF78AF6DBF6DCF78BF78CF78DF78EF6DDF6DECFCAF78FF6DFF6E0F6E1F6E2F6E3F6E4C0F0F6E5F6E6F6E7F6E8F6E9F790F6EAF791F6EBF6ECF792F6EDF6EEF6EFF6F0F6F1F6F2F6F3F6F4BEA8F793F6F5F6F6F6F7F6F8F794F795F796F797F798C8FAF6F9F6FAF6FBF6FCF799F79AF6FDF6FEF7A1F7A2F7A3F7A4F7A5F79BF79CF7A6F7A7F7A8B1EEF7A9F7AAF7ABF79DF79EF7ACF7ADC1DBF7AEF79FF7A0F7AFF840F841F842F843F844F845F846F847F848F849F84AF84BF84CF84DF84EF84FF850F851F852F853F854F855F856F857F858F859F85AF85BF85CF85DF85EF85FF860F861F862F863F864F865F866F867F868F869F86AF86BF86CF86DF86EF86FF870F871F872F873F874F875F876F877F878F879F87AF87BF87CF87DF87EF880F881F882F883F884F885F886F887F888F889F88AF88BF88CF88DF88EF88FF890F891F892F893F894F895F896F897F898F899F89AF89BF89CF89DF89EF89FF8A0F940F941F942F943F944F945F946F947F948F949F94AF94BF94CF94DF94EF94FF950F951F952F953F954F955F956F957F958F959F95AF95BF95CF95DF95EF95FF960F961F962F963F964F965F966F967F968F969F96AF96BF96CF96DF96EF96FF970F971F972F973F974F975F976F977F978F979F97AF97BF97CF97DF97EF980F981F982F983F984F985F986F987F988F989F98AF98BF98CF98DF98EF98FF990F991F992F993F994F995F996F997F998F999F99AF99BF99CF99DF99EF99FF9A0FA40FA41FA42FA43FA44FA45FA46FA47FA48FA49FA4AFA4BFA4CFA4DFA4EFA4FFA50FA51FA52FA53FA54FA55FA56FA57FA58FA59FA5AFA5BFA5CFA5DFA5EFA5FFA60FA61FA62FA63FA64FA65FA66FA67FA68FA69FA6AFA6BFA6CFA6DFA6EFA6FFA70FA71FA72FA73FA74FA75FA76FA77FA78FA79FA7AFA7BFA7CFA7DFA7EFA80FA81FA82FA83FA84FA85FA86FA87FA88FA89FA8AFA8BFA8CFA8DFA8EFA8FFA90FA91FA92FA93FA94FA95FA96FA97FA98FA99FA9AFA9BFA9CFA9DFA9EFA9FFAA0FB40FB41FB42FB43FB44FB45FB46FB47FB48FB49FB4AFB4BFB4CFB4DFB4EFB4FFB50FB51FB52FB53FB54FB55FB56FB57FB58FB59FB5AFB5BC4F1F0AFBCA6F0B0C3F9FB5CC5B8D1BBFB5DF0B1F0B2F0B3F0B4F0B5D1BCFB5ED1ECFB5FF0B7F0B6D4A7FB60CDD2F0B8F0BAF0B9F0BBF0BCFB61FB62B8EBF0BDBAE8FB63F0BEF0BFBEE9F0C0B6ECF0C1F0C2F0C3F0C4C8B5F0C5F0C6FB64F0C7C5F4FB65F0C8FB66FB67FB68F0C9FB69F0CAF7BDFB6AF0CBF0CCF0CDFB6BF0CEFB6CFB6DFB6EFB6FF0CFBAD7FB70F0D0F0D1F0D2F0D3F0D4F0D5F0D6F0D8FB71FB72D3A5F0D7FB73F0D9FB74FB75FB76FB77FB78FB79FB7AFB7BFB7CFB7DF5BAC2B9FB7EFB80F7E4FB81FB82FB83FB84F7E5F7E6FB85FB86F7E7FB87FB88FB89FB8AFB8BFB8CF7E8C2B4FB8DFB8EFB8FFB90FB91FB92FB93FB94FB95F7EAFB96F7EBFB97FB98FB99FB9AFB9BFB9CC2F3FB9DFB9EFB9FFBA0FC40FC41FC42FC43FC44FC45FC46FC47FC48F4F0FC49FC4AFC4BF4EFFC4CFC4DC2E9FC4EF7E1F7E2FC4FFC50FC51FC52FC53BBC6FC54FC55FC56FC57D9E4FC58FC59FC5ACAF2C0E8F0A4FC5BBADAFC5CFC5DC7ADFC5EFC5FFC60C4ACFC61FC62F7ECF7EDF7EEFC63F7F0F7EFFC64F7F1FC65FC66F7F4FC67F7F3FC68F7F2F7F5FC69FC6AFC6BFC6CF7F6FC6DFC6EFC6FFC70FC71FC72FC73FC74FC75EDE9FC76EDEAEDEBFC77F6BCFC78FC79FC7AFC7BFC7CFC7DFC7EFC80FC81FC82FC83FC84F6BDFC85F6BEB6A6FC86D8BEFC87FC88B9C4FC89FC8AFC8BD8BBFC8CDCB1FC8DFC8EFC8FFC90FC91FC92CAF3FC93F7F7FC94FC95FC96FC97FC98FC99FC9AFC9BFC9CF7F8FC9DFC9EF7F9FC9FFCA0FD40FD41FD42FD43FD44F7FBFD45F7FAFD46B1C7FD47F7FCF7FDFD48FD49FD4AFD4BFD4CF7FEFD4DFD4EFD4FFD50FD51FD52FD53FD54FD55FD56FD57C6EBECB4FD58FD59FD5AFD5BFD5CFD5DFD5EFD5FFD60FD61FD62FD63FD64FD65FD66FD67FD68FD69FD6AFD6BFD6CFD6DFD6EFD6FFD70FD71FD72FD73FD74FD75FD76FD77FD78FD79FD7AFD7BFD7CFD7DFD7EFD80FD81FD82FD83FD84FD85B3DDF6B3FD86FD87F6B4C1E4F6B5F6B6F6B7F6B8F6B9F6BAC8A3F6BBFD88FD89FD8AFD8BFD8CFD8DFD8EFD8FFD90FD91FD92FD93C1FAB9A8EDE8FD94FD95FD96B9EAD9DFFD97FD98FD99FD9AFD9";
@@ -71,8 +71,8 @@ class EC {
71
71
  if (F == " ")
72
72
  C += "+";
73
73
  else if (A >= 19968 && A <= 40869) {
74
- let t = A - 19968;
75
- C += "%" + this.z.substr(t * 4, 2) + "%" + this.z.substr(t * 4 + 2, 2);
74
+ let e = A - 19968;
75
+ C += "%" + this.z.substr(e * 4, 2) + "%" + this.z.substr(e * 4 + 2, 2);
76
76
  } else
77
77
  C += "%" + D.charCodeAt(B).toString(16);
78
78
  }
@@ -90,11 +90,11 @@ class EC {
90
90
  var A = D.charAt(B);
91
91
  if (isNaN(parseInt(A)))
92
92
  try {
93
- var t = D.substr(B, 2) + D.substr(B + 3, 2);
93
+ var e = D.substr(B, 2) + D.substr(B + 3, 2);
94
94
  B = B + 4;
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);
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);
98
98
  break;
99
99
  }
100
100
  } catch {
@@ -113,7 +113,7 @@ class EC {
113
113
  }
114
114
  }
115
115
  let g = new EC();
116
- class u {
116
+ class a {
117
117
  static kOrigin;
118
118
  imp;
119
119
  constructor(D, C, B) {
@@ -141,7 +141,7 @@ class u {
141
141
  return this.imp.isEqualTo(D.imp);
142
142
  }
143
143
  clone() {
144
- return new u(this.imp);
144
+ return new a(this.imp);
145
145
  }
146
146
  get x() {
147
147
  return this.imp.x;
@@ -232,7 +232,7 @@ class w {
232
232
  this.imp.z = D;
233
233
  }
234
234
  }
235
- class U {
235
+ class V {
236
236
  static kIdentity;
237
237
  imp;
238
238
  constructor(D) {
@@ -242,7 +242,7 @@ class U {
242
242
  return this.imp.copy(D.imp), this;
243
243
  }
244
244
  clone() {
245
- return new U(this.imp);
245
+ return new V(this.imp);
246
246
  }
247
247
  setToIdentity() {
248
248
  return this.imp.setToIdentity(), this;
@@ -311,7 +311,7 @@ class FC {
311
311
  this.imp.setAt(D, C);
312
312
  }
313
313
  }
314
- class bD {
314
+ class TD {
315
315
  imp;
316
316
  constructor(D) {
317
317
  this.imp = new i.mxcadassemblyimp.MdGeStringArray(), D instanceof Object && this.imp.copy(D);
@@ -352,19 +352,19 @@ class AC {
352
352
  return this.imp.length();
353
353
  }
354
354
  at(D) {
355
- return new u(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 tC = new FinalizationRegistry((E) => {
361
+ const eC = new FinalizationRegistry((E) => {
362
362
  i.App.DestroyObject(E);
363
- }), eC = {};
364
- class j {
363
+ }), tC = {};
364
+ class G {
365
365
  imp = 0;
366
366
  constructor(D) {
367
- this.imp = D, this.imp && tC.register(this, D, eC);
367
+ this.imp = D, this.imp && eC.register(this, D, tC);
368
368
  }
369
369
  getImp() {
370
370
  return this.imp;
@@ -386,6 +386,9 @@ class j {
386
386
  let C = g.encodeToGb2312(D);
387
387
  return this.imp.setJson(C);
388
388
  }
389
+ isKindOf(D) {
390
+ return this.imp.isKindOf(D);
391
+ }
389
392
  }
390
393
  var f = /* @__PURE__ */ ((E) => (E[E.kMxCAD = 0] = "kMxCAD", E[E.kMxDraw = 1] = "kMxDraw", E[E.kInvalid = 2] = "kInvalid", E))(f || {});
391
394
  class M {
@@ -398,11 +401,21 @@ class M {
398
401
  return this.type != 2 && this.id != 0;
399
402
  }
400
403
  erase() {
401
- this.type == 1 ? h.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && sD.eraseEntity(this.id);
404
+ this.type == 1 ? h.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && $.eraseEntity(this.id);
402
405
  }
403
406
  getMcDbObject() {
404
407
  return this.type == 0 ? i.App.ObjectIdToObject(this.id) : null;
405
408
  }
409
+ clone() {
410
+ if (this.type == 0) {
411
+ let D = i.App.getImp().ObjectIdToMdObject(this.id);
412
+ if (!D)
413
+ return null;
414
+ let C = D.Clone();
415
+ return i.App.DestroyObject(D), i.App.CreateCloneObject(C);
416
+ }
417
+ return null;
418
+ }
406
419
  getObjectName() {
407
420
  if (this.type == 0)
408
421
  return i.App.getImp().ObjectIdToObjectName(this.id);
@@ -417,7 +430,7 @@ class M {
417
430
  return this.type == 1 ? h.getCurrentDraw().getMxEntity(this.id) : null;
418
431
  }
419
432
  }
420
- class v extends j {
433
+ class v extends G {
421
434
  constructor(D) {
422
435
  super(D);
423
436
  }
@@ -435,13 +448,13 @@ class v extends j {
435
448
  return this.imp.GetHandle();
436
449
  }
437
450
  GetDatabase() {
438
- return new FD(this.imp.GetDatabase());
451
+ return new oD(this.imp.GetDatabase());
439
452
  }
440
453
  GetOwnerID() {
441
454
  return this.imp.GetOwnerID();
442
455
  }
443
456
  }
444
- var BD;
457
+ var tD;
445
458
  ((E) => {
446
459
  ((D) => {
447
460
  D[D.kTextLeft = 0] = "kTextLeft", D[D.kTextCenter = 1] = "kTextCenter", D[D.kTextRight = 2] = "kTextRight", D[D.kTextAlign = 3] = "kTextAlign", D[D.kTextMid = 4] = "kTextMid", D[D.kTextFit = 5] = "kTextFit";
@@ -452,8 +465,8 @@ var BD;
452
465
  })(E.AttachmentPoint || (E.AttachmentPoint = {})), ((D) => {
453
466
  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
467
  })(E.LineWeight || (E.LineWeight = {}));
455
- })(BD || (BD = {}));
456
- class G {
468
+ })(tD || (tD = {}));
469
+ class I {
457
470
  imp;
458
471
  constructor(D, C, B) {
459
472
  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 +478,7 @@ class G {
465
478
  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
479
  }
467
480
  clone() {
468
- return new G(this.imp);
481
+ return new I(this.imp);
469
482
  }
470
483
  setColorIndex(D) {
471
484
  this.imp.setColorIndex(D);
@@ -539,7 +552,7 @@ class iC extends v {
539
552
  this.imp.setIsLocked(D);
540
553
  }
541
554
  get color() {
542
- return new G(this.imp.color());
555
+ return new I(this.imp.color());
543
556
  }
544
557
  set color(D) {
545
558
  this.imp.setColor(D.getImp());
@@ -557,39 +570,39 @@ class iC extends v {
557
570
  this.imp.setLineWeight(D);
558
571
  }
559
572
  }
560
- class xD extends v {
573
+ class kD extends v {
561
574
  constructor(D) {
562
575
  super(D);
563
576
  }
564
577
  }
565
- class fD extends v {
578
+ class PD extends v {
566
579
  constructor(D) {
567
580
  super(D);
568
581
  }
569
582
  }
570
- class MD extends v {
583
+ class SD extends v {
571
584
  constructor(D) {
572
585
  super(D);
573
586
  }
574
587
  }
575
- class FD extends j {
588
+ class oD extends G {
576
589
  constructor(D) {
577
590
  super(D);
578
591
  }
579
592
  GetLayerTable() {
580
- return new xD(this.imp.GetLayerTable());
593
+ return new kD(this.imp.GetLayerTable());
581
594
  }
582
595
  GetLinetypeTable() {
583
- return new fD(this.imp.GetLinetypeTable());
596
+ return new PD(this.imp.GetLinetypeTable());
584
597
  }
585
598
  GetTextStyleTable() {
586
- return new MD(this.imp.GetTextStyleTable());
599
+ return new SD(this.imp.GetTextStyleTable());
587
600
  }
588
601
  GetBlockTable() {
589
- return new PD(this.imp.GetBlockTable());
602
+ return new vD(this.imp.GetBlockTable());
590
603
  }
591
604
  CurrentSpace() {
592
- return new Y(this.imp.CurrentSpace());
605
+ return new CD(this.imp.CurrentSpace());
593
606
  }
594
607
  GetCurrentlyLineTypeScale() {
595
608
  return this.imp.GetCurrentlyLineTypeScale();
@@ -614,7 +627,7 @@ class FD extends j {
614
627
  this.imp.SetCurrentlyLayerName(C);
615
628
  }
616
629
  GetCurrentlyTrueColor() {
617
- return new G(this.imp.GetCurrentlyTrueColor());
630
+ return new I(this.imp.GetCurrentlyTrueColor());
618
631
  }
619
632
  GetCurrentlyDrawColor() {
620
633
  let D = this.imp.GetCurrentlyDrawColor(), C = new THREE.Color();
@@ -638,7 +651,7 @@ class FD extends j {
638
651
  this.imp.SetCurrentlyTextStyle(C);
639
652
  }
640
653
  }
641
- class TD extends j {
654
+ class RD extends G {
642
655
  constructor(D) {
643
656
  super(D);
644
657
  }
@@ -655,7 +668,7 @@ class TD extends j {
655
668
  return this.imp.step(D, C);
656
669
  }
657
670
  }
658
- class Y extends v {
671
+ class CD extends v {
659
672
  constructor(D) {
660
673
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTableRecord());
661
674
  }
@@ -667,16 +680,16 @@ class Y extends v {
667
680
  }
668
681
  newIterator(D = !0, C = !0) {
669
682
  let B = this.imp.newIterator(D, C);
670
- return new TD(B);
683
+ return new RD(B);
671
684
  }
672
685
  get origin() {
673
- return new u(this.imp.origin());
686
+ return new a(this.imp.origin());
674
687
  }
675
688
  set origin(D) {
676
689
  this.imp.setOrigin(D.imp);
677
690
  }
678
691
  }
679
- class kD extends j {
692
+ class LD extends G {
680
693
  constructor(D) {
681
694
  super(D);
682
695
  }
@@ -688,32 +701,32 @@ class kD extends j {
688
701
  }
689
702
  getRecord() {
690
703
  let D = this.imp.getRecord();
691
- return new Y(D);
704
+ return new CD(D);
692
705
  }
693
706
  step(D = !0, C = !0) {
694
707
  this.imp.start(D, C);
695
708
  }
696
709
  }
697
- class PD extends v {
710
+ class vD extends v {
698
711
  constructor(D) {
699
712
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTable());
700
713
  }
701
714
  getAt(D) {
702
715
  let C = this.getAt(D);
703
- return C && new Y(C);
716
+ return C && new CD(C);
704
717
  }
705
718
  has(D) {
706
719
  return this.imp.has(D);
707
720
  }
708
721
  newIterator(D = !0, C = !0) {
709
722
  let B = this.imp.newIterator(D, C);
710
- return new kD(B);
723
+ return new LD(B);
711
724
  }
712
725
  add(D) {
713
726
  return this.imp.add(D.getImp());
714
727
  }
715
728
  }
716
- class H extends v {
729
+ class j extends v {
717
730
  constructor(D) {
718
731
  super(D);
719
732
  }
@@ -722,7 +735,7 @@ class H extends v {
722
735
  return new q(D);
723
736
  }
724
737
  get trueColor() {
725
- return new G(this.imp.TrueColor());
738
+ return new I(this.imp.TrueColor());
726
739
  }
727
740
  set trueColor(D) {
728
741
  this.imp.SetTrueColor(D.getImp());
@@ -785,16 +798,16 @@ class H extends v {
785
798
  let D = this.imp.GetBoundingBox();
786
799
  if (D) {
787
800
  let C = {
788
- minPt: new u(D.AtPoint(0).val),
789
- maxPt: new u(D.AtPoint(1).val),
801
+ minPt: new a(D.AtPoint(0).val),
802
+ maxPt: new a(D.AtPoint(1).val),
790
803
  ret: 0
791
804
  };
792
805
  return i.App.DestroyObject(D), C;
793
806
  } else
794
- return { minPt: new u(), maxPt: new u(), ret: 1 };
807
+ return { minPt: new a(), maxPt: new a(), ret: 1 };
795
808
  }
796
809
  }
797
- class N extends H {
810
+ class N extends j {
798
811
  constructor(D) {
799
812
  super(D);
800
813
  }
@@ -815,25 +828,25 @@ class N extends H {
815
828
  }
816
829
  getPointAtDist(D) {
817
830
  return {
818
- val: new u(this.imp.getPointAtDist(D)),
831
+ val: new a(this.imp.getPointAtDist(D)),
819
832
  ret: i.getCallResult()
820
833
  };
821
834
  }
822
835
  getStartPoint() {
823
836
  return {
824
- val: new u(this.imp.getStartPoint()),
837
+ val: new a(this.imp.getStartPoint()),
825
838
  ret: i.getCallResult()
826
839
  };
827
840
  }
828
841
  getEndPoint() {
829
842
  return {
830
- val: new u(this.imp.getStartPoint()),
843
+ val: new a(this.imp.getStartPoint()),
831
844
  ret: i.getCallResult()
832
845
  };
833
846
  }
834
847
  getPointAtParam(D) {
835
848
  return {
836
- val: new u(this.imp.getPointAtParam(D)),
849
+ val: new a(this.imp.getPointAtParam(D)),
837
850
  ret: i.getCallResult()
838
851
  };
839
852
  }
@@ -857,7 +870,7 @@ class N extends H {
857
870
  }
858
871
  getClosestPointTo(D, C) {
859
872
  return {
860
- val: new u(this.imp.getClosestPointTo(D.imp, C)),
873
+ val: new a(this.imp.getClosestPointTo(D.imp, C)),
861
874
  ret: i.getCallResult()
862
875
  };
863
876
  }
@@ -880,35 +893,35 @@ class N extends H {
880
893
  return { val: this.imp.getLength(), ret: i.getCallResult() };
881
894
  }
882
895
  }
883
- class Z extends N {
884
- constructor(D, C, B, F, A, t) {
885
- D instanceof Object ? D instanceof u ? (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), C instanceof u && (this.startPoint = D, this.endPoint = C)) : super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), this.startPoint = new u(D, C, B), this.endPoint = new u(F, A, t));
896
+ class Y extends N {
897
+ constructor(D, C, B, F, A, e) {
898
+ 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, e));
886
899
  }
887
900
  get startPoint() {
888
- return new u(this.imp.startPoint());
901
+ return new a(this.imp.startPoint());
889
902
  }
890
903
  set startPoint(D) {
891
904
  this.imp.setStartPoint(D.imp);
892
905
  }
893
906
  get endPoint() {
894
- return new u(this.imp.endPoint());
907
+ return new a(this.imp.endPoint());
895
908
  }
896
909
  set endPoint(D) {
897
910
  this.imp.setEndPoint(D.imp);
898
911
  }
899
912
  }
900
- class ED extends H {
913
+ class iD extends j {
901
914
  constructor(D) {
902
915
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbText());
903
916
  }
904
917
  get position() {
905
- return new u(this.imp.position());
918
+ return new a(this.imp.position());
906
919
  }
907
920
  set position(D) {
908
921
  this.imp.setPosition(D.imp);
909
922
  }
910
923
  get alignmentPoint() {
911
- return new u(this.imp.position());
924
+ return new a(this.imp.position());
912
925
  }
913
926
  set alignmentPoint(D) {
914
927
  this.imp.setAlignmentPoint(D.imp);
@@ -956,12 +969,12 @@ class ED extends H {
956
969
  this.imp.setVerticalMode(D);
957
970
  }
958
971
  }
959
- class AD extends H {
972
+ class Q extends j {
960
973
  constructor(D) {
961
974
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbMText());
962
975
  }
963
976
  get location() {
964
- return new u(this.imp.location());
977
+ return new a(this.imp.location());
965
978
  }
966
979
  set location(D) {
967
980
  this.imp.setLocation(D.imp);
@@ -999,13 +1012,13 @@ class AD extends H {
999
1012
  }
1000
1013
  class O extends N {
1001
1014
  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 u(D, C, B).imp), this.imp.setRadius(F)));
1015
+ 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
1016
  }
1004
1017
  setCenter(D, C, B) {
1005
- this.imp.setCenter(new u(D, C, B).imp);
1018
+ this.imp.setCenter(new a(D, C, B).imp);
1006
1019
  }
1007
1020
  get center() {
1008
- return new u(this.imp.center());
1021
+ return new a(this.imp.center());
1009
1022
  }
1010
1023
  set center(D) {
1011
1024
  this.imp.setCenter(D.imp);
@@ -1017,7 +1030,7 @@ class O extends N {
1017
1030
  this.imp.setRadius(D);
1018
1031
  }
1019
1032
  }
1020
- class tD extends N {
1033
+ class X extends N {
1021
1034
  constructor(D) {
1022
1035
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbPolyline());
1023
1036
  }
@@ -1035,8 +1048,8 @@ class tD extends N {
1035
1048
  }
1036
1049
  addVertexAt(D, C = 0, B = 0, F = 0, A = 0) {
1037
1050
  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);
1051
+ let e = new i.mxcadassemblyimp.MdGePoint3d();
1052
+ return e.x = D.x, e.y = D.y, e.z = D.z, this.imp.addVertexAt(A, e, C, B, F);
1040
1053
  } else
1041
1054
  return this.imp.addVertexAt(A, D.imp, C, B, F);
1042
1055
  }
@@ -1066,7 +1079,7 @@ class tD extends N {
1066
1079
  return this.imp.setBulgeAt(D, C);
1067
1080
  }
1068
1081
  }
1069
- class RD extends H {
1082
+ class rD extends j {
1070
1083
  constructor(D) {
1071
1084
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockReference());
1072
1085
  }
@@ -1077,7 +1090,7 @@ class RD extends H {
1077
1090
  this.imp.setBlockTableRecordId(D.id);
1078
1091
  }
1079
1092
  get position() {
1080
- return new u(this.imp.position());
1093
+ return new a(this.imp.position());
1081
1094
  }
1082
1095
  set position(D) {
1083
1096
  this.imp.setPosition(D.imp);
@@ -1095,18 +1108,18 @@ class RD extends H {
1095
1108
  this.imp.setRotation(D);
1096
1109
  }
1097
1110
  get blockTransform() {
1098
- return new U(this.imp.blockTransform());
1111
+ return new V(this.imp.blockTransform());
1099
1112
  }
1100
1113
  set blockTransform(D) {
1101
1114
  this.imp.setBlockTransform(D.imp);
1102
1115
  }
1103
1116
  }
1104
- class eD extends H {
1117
+ class aD extends j {
1105
1118
  constructor(D) {
1106
1119
  super(D);
1107
1120
  }
1108
1121
  get textPosition() {
1109
- return new u(this.imp.textPosition());
1122
+ return new a(this.imp.textPosition());
1110
1123
  }
1111
1124
  set textPosition(D) {
1112
1125
  this.imp.setTextPosition(D.imp);
@@ -1187,24 +1200,24 @@ class eD extends H {
1187
1200
  this.imp.SetDimVarObjectId(D, C.id);
1188
1201
  }
1189
1202
  }
1190
- class SD extends eD {
1203
+ class sD extends aD {
1191
1204
  constructor(D) {
1192
1205
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbAlignedDimension());
1193
1206
  }
1194
1207
  get xLine1Point() {
1195
- return new u(this.imp.xLine1Point());
1208
+ return new a(this.imp.xLine1Point());
1196
1209
  }
1197
1210
  set xLine1Point(D) {
1198
1211
  this.imp.setXLine1Point(D.imp);
1199
1212
  }
1200
1213
  get xLine2Point() {
1201
- return new u(this.imp.xLine2Point());
1214
+ return new a(this.imp.xLine2Point());
1202
1215
  }
1203
1216
  set xLine2Point(D) {
1204
1217
  this.imp.setXLine2Point(D.imp);
1205
1218
  }
1206
1219
  get dimLinePoint() {
1207
- return new u(this.imp.dimLinePoint());
1220
+ return new a(this.imp.dimLinePoint());
1208
1221
  }
1209
1222
  set dimLinePoint(D) {
1210
1223
  this.imp.setDimLinePoint(D.imp);
@@ -1216,24 +1229,24 @@ class SD extends eD {
1216
1229
  this.imp.setOblique(D);
1217
1230
  }
1218
1231
  }
1219
- class LD extends eD {
1232
+ class nD extends aD {
1220
1233
  constructor(D) {
1221
1234
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbRotatedDimension());
1222
1235
  }
1223
1236
  get xLine1Point() {
1224
- return new u(this.imp.xLine1Point());
1237
+ return new a(this.imp.xLine1Point());
1225
1238
  }
1226
1239
  set xLine1Point(D) {
1227
1240
  this.imp.setXLine1Point(D.imp);
1228
1241
  }
1229
1242
  get xLine2Point() {
1230
- return new u(this.imp.xLine2Point());
1243
+ return new a(this.imp.xLine2Point());
1231
1244
  }
1232
1245
  set xLine2Point(D) {
1233
1246
  this.imp.setXLine2Point(D.imp);
1234
1247
  }
1235
1248
  get dimLinePoint() {
1236
- return new u(this.imp.dimLinePoint());
1249
+ return new a(this.imp.dimLinePoint());
1237
1250
  }
1238
1251
  set dimLinePoint(D) {
1239
1252
  this.imp.setDimLinePoint(D.imp);
@@ -1251,15 +1264,15 @@ class LD extends eD {
1251
1264
  this.imp.setRotation(D);
1252
1265
  }
1253
1266
  }
1254
- class iD extends N {
1267
+ class DD extends N {
1255
1268
  constructor(D) {
1256
1269
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbArc());
1257
1270
  }
1258
1271
  setCenter(D, C, B) {
1259
- this.imp.setCenter(new u(D, C, B).imp);
1272
+ this.imp.setCenter(new a(D, C, B).imp);
1260
1273
  }
1261
1274
  get center() {
1262
- return new u(this.imp.center());
1275
+ return new a(this.imp.center());
1263
1276
  }
1264
1277
  set center(D) {
1265
1278
  this.imp.setCenter(D.imp);
@@ -1282,26 +1295,26 @@ class iD extends N {
1282
1295
  set endAngle(D) {
1283
1296
  this.imp.setEndAngle(D);
1284
1297
  }
1285
- computeArc(D, C, B, F, A, t) {
1298
+ computeArc(D, C, B, F, A, e) {
1286
1299
  return this.imp.computeArc(
1287
1300
  D,
1288
1301
  C,
1289
1302
  B,
1290
1303
  F,
1291
1304
  A,
1292
- t
1305
+ e
1293
1306
  );
1294
1307
  }
1295
1308
  }
1296
- class rD extends N {
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 u(D, C, B).imp, new w(F, A, t).imp, e, r, s)));
1309
+ class uD extends N {
1310
+ constructor(D, C, B, F, A, e, t, r, s) {
1311
+ D instanceof Object ? super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbEllipse()), typeof D == "number" && (t || (t = 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, e).imp, t, r, s)));
1299
1312
  }
1300
1313
  setCenter(D, C, B) {
1301
- this.imp.setCenter(new u(D, C, B).imp);
1314
+ this.imp.setCenter(new a(D, C, B).imp);
1302
1315
  }
1303
1316
  get center() {
1304
- return new u(this.imp.center());
1317
+ return new a(this.imp.center());
1305
1318
  }
1306
1319
  set center(D) {
1307
1320
  this.imp.setCenter(D.imp);
@@ -1347,7 +1360,7 @@ function z(E = null) {
1347
1360
  let D;
1348
1361
  return E == null ? D = new i.mxcadassemblyimp.McDrawResbuf() : D = E.getImp(), D;
1349
1362
  }
1350
- class q extends j {
1363
+ class q extends G {
1351
1364
  constructor(D) {
1352
1365
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.McDrawResbuf());
1353
1366
  }
@@ -1367,7 +1380,7 @@ class q extends j {
1367
1380
  if (this.imp.AtObjectName(D) == "McDbMText") {
1368
1381
  let B = this.imp.AtObjectMdDbMText(D);
1369
1382
  if (B)
1370
- return { val: new AD(B), ret: i.getCallResult() };
1383
+ return { val: new Q(B), ret: i.getCallResult() };
1371
1384
  }
1372
1385
  return { val: void 0, ret: -1 };
1373
1386
  }
@@ -1381,7 +1394,7 @@ class q extends j {
1381
1394
  return C ? { val: g.decodeFromGb2312(this.imp.AtString(D)), ret: i.getCallResult() } : { val: this.imp.AtString(D), ret: i.getCallResult() };
1382
1395
  }
1383
1396
  AtPoint(D) {
1384
- return { val: new u(this.imp.AtPoint(D)), ret: i.getCallResult() };
1397
+ return { val: new a(this.imp.AtPoint(D)), ret: i.getCallResult() };
1385
1398
  }
1386
1399
  ItemDataType() {
1387
1400
  return this.imp.ItemDataType();
@@ -1408,7 +1421,7 @@ class q extends j {
1408
1421
  this.imp.Remove(D);
1409
1422
  }
1410
1423
  }
1411
- class vD {
1424
+ class OD {
1412
1425
  imp;
1413
1426
  constructor() {
1414
1427
  }
@@ -1420,25 +1433,25 @@ class vD {
1420
1433
  }
1421
1434
  findEntAtPoint(D, C, B, F = -1, A = null) {
1422
1435
  this.init();
1423
- let t = this.imp.findEntAtPoint(D, C, B, F, z(A));
1424
- return new M(t, f.kMxCAD);
1436
+ let e = this.imp.findEntAtPoint(D, C, B, F, z(A));
1437
+ return new M(e, f.kMxCAD);
1425
1438
  }
1426
1439
  selectEnt(D, C = null) {
1427
1440
  return this.init(), new Promise(async (B) => {
1428
- const F = new k();
1429
- D && F.setMessage(D), F.setCursorType(lD.kRect);
1441
+ const F = new T();
1442
+ D && F.setMessage(D), F.setCursorType(dD.kRect);
1430
1443
  let A = await F.go();
1431
1444
  if (!A) {
1432
1445
  B([]);
1433
1446
  return;
1434
1447
  }
1435
- cD.findEntAtPoint(A).then((t) => {
1436
- let e = [];
1437
- t.forEach((s) => {
1438
- e.push(new M(s, f.kMxDraw));
1448
+ hD.findEntAtPoint(A).then((e) => {
1449
+ let t = [];
1450
+ e.forEach((s) => {
1451
+ t.push(new M(s, f.kMxDraw));
1439
1452
  });
1440
1453
  let r = this.findEntAtPoint(A.x, A.y, A.z, -1, C);
1441
- r.isValid() && e.push(r), B(e);
1454
+ r.isValid() && t.push(r), B(t);
1442
1455
  });
1443
1456
  });
1444
1457
  }
@@ -1454,8 +1467,8 @@ class vD {
1454
1467
  this.imp || (this.imp = new i.mxcadassemblyimp.McDrawUtility());
1455
1468
  }
1456
1469
  }
1457
- let sD = new vD();
1458
- class OD extends j {
1470
+ let $ = new OD();
1471
+ class BD extends G {
1459
1472
  constructor() {
1460
1473
  super(), this.initTempObject(new i.mxcadassemblyimp.McDrawSelSet());
1461
1474
  }
@@ -1479,29 +1492,35 @@ class OD extends j {
1479
1492
  for (let B = 0; B < C; B++)
1480
1493
  D(this.item(B));
1481
1494
  }
1495
+ getIds() {
1496
+ let D = [], C = this.imp.count();
1497
+ for (let B = 0; B < C; B++)
1498
+ D.push(this.item(B));
1499
+ return D;
1500
+ }
1482
1501
  async userSelect(D, C = null) {
1483
- let B = new k();
1484
- D && B.setMessage(D), B.setCursorType(lD.kRect), B.setDynamicInputType(ZD.kDynTip);
1502
+ let B = new T();
1503
+ D && B.setMessage(D), B.setCursorType(dD.kRect), B.setDynamicInputType(ZD.kDynTip);
1485
1504
  let F = 0;
1486
1505
  for (; ; ) {
1487
1506
  let A = await B.go();
1488
1507
  if (F = B.getDetailedResult(), !A)
1489
1508
  break;
1490
- let t = await cD.getCorner(A, D, !0, (e) => {
1491
- F = e.detailedResult;
1509
+ let e = await hD.getCorner(A, D, !0, (t) => {
1510
+ F = t.detailedResult;
1492
1511
  });
1493
- if (!t)
1512
+ if (!e)
1494
1513
  break;
1495
- this.imp.userSelect(A.x, A.y, t.x, t.y, z(C));
1514
+ this.imp.userSelect(A.x, A.y, e.x, e.y, z(C));
1496
1515
  }
1497
- return this.imp.highlightEntity(!1), F == X.kEcsIn || F == X.kNewCommadIn || F == X.kUnknown ? new Promise((A) => {
1516
+ return this.imp.highlightEntity(!1), F == FD.kEcsIn || F == FD.kNewCommadIn || F == FD.kUnknown ? new Promise((A) => {
1498
1517
  A(!1);
1499
1518
  }) : new Promise((A) => {
1500
1519
  A(!0);
1501
1520
  });
1502
1521
  }
1503
1522
  }
1504
- class V {
1523
+ class K {
1505
1524
  imp;
1506
1525
  mxObject;
1507
1526
  static currentFileName;
@@ -1517,9 +1536,6 @@ class V {
1517
1536
  getImp() {
1518
1537
  return this.imp;
1519
1538
  }
1520
- getMxCppImp() {
1521
- return i.mxcadassemblyimp;
1522
- }
1523
1539
  updateDisplay(D, C) {
1524
1540
  this.imp.updateDisplay(D, C);
1525
1541
  }
@@ -1529,15 +1545,15 @@ class V {
1529
1545
  openWebFile(D, C, B = !0) {
1530
1546
  let F = Math.round(Math.random() * 1e7);
1531
1547
  if (C) {
1532
- let A = this, t = (e, r) => {
1533
- A.mxObject.removeEventFuction("openFileComplete", t), F == r && C(e);
1548
+ let A = this, e = (t, r) => {
1549
+ A.mxObject.removeEventFuction("openFileComplete", e), F == r && C(t);
1534
1550
  };
1535
- A.mxObject.addEvent("openFileComplete", t);
1551
+ A.mxObject.addEvent("openFileComplete", e);
1536
1552
  }
1537
- return V.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, B, F);
1553
+ return K.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, B, F);
1538
1554
  }
1539
1555
  getCurrentFileName() {
1540
- return V.currentFileName;
1556
+ return K.currentFileName;
1541
1557
  }
1542
1558
  saveFileToUrl(D, C) {
1543
1559
  const B = window;
@@ -1548,12 +1564,12 @@ class V {
1548
1564
  saveFile(D, C, B = !0, F = !0) {
1549
1565
  D || (D = this.getCurrentFileName()), D.indexOf(".") == -1 && (D += ".mxweb");
1550
1566
  const A = window;
1551
- return A.mx_saveFile_call = (t) => {
1552
- if (C && C(t), !!t) {
1567
+ return A.mx_saveFile_call = (e) => {
1568
+ if (C && C(e), !!e) {
1553
1569
  if (B) {
1554
- let e;
1555
- /^((?!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({
1556
- blob: e,
1570
+ let t;
1571
+ /^((?!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 ? _.saveAsFileDialog({
1572
+ blob: t,
1557
1573
  filename: D,
1558
1574
  types: [{
1559
1575
  description: "mxweb File",
@@ -1561,14 +1577,14 @@ class V {
1561
1577
  "application/octet-stream": [".mxweb"]
1562
1578
  }
1563
1579
  }]
1564
- }) : _.downloadFile(e, D);
1580
+ }) : _.downloadFile(t, D);
1565
1581
  }
1566
1582
  A.mx_saveFile_call = null;
1567
1583
  }
1568
1584
  }, this.imp.saveFile(D);
1569
1585
  }
1570
1586
  GetDatabase() {
1571
- return this.imp.McDbDatabase || (this.imp.McDbDatabase = new FD(this.imp.GetDatabase())), this.imp.McDbDatabase;
1587
+ return this.imp.McDbDatabase || (this.imp.McDbDatabase = new oD(this.imp.GetDatabase())), this.imp.McDbDatabase;
1572
1588
  }
1573
1589
  GetSysVarString(D) {
1574
1590
  return this.imp.GetSysVarString(D);
@@ -1589,7 +1605,7 @@ class V {
1589
1605
  return this.imp.SetSysVarLong(D, C);
1590
1606
  }
1591
1607
  get DrawColor() {
1592
- return new G(this.imp.GetDrawColor());
1608
+ return new I(this.imp.GetDrawColor());
1593
1609
  }
1594
1610
  set DrawColor(D) {
1595
1611
  this.imp.SetDrawColor(D.getImp());
@@ -1636,8 +1652,8 @@ class V {
1636
1652
  AddLinetypeEx(D, C, B) {
1637
1653
  this.imp.AddLinetypeEx(D, C, B);
1638
1654
  }
1639
- DrawLine(D, C, B, F, A, t) {
1640
- return this.imp.DrawLine(D, C, B, F, A, t);
1655
+ DrawLine(D, C, B, F, A, e) {
1656
+ return this.imp.DrawLine(D, C, B, F, A, e);
1641
1657
  }
1642
1658
  AddDimStyle(D, C, B, F, A) {
1643
1659
  return this.imp.AddDimStyle(D, C, B, F, A);
@@ -1663,8 +1679,8 @@ class V {
1663
1679
  DrawArc(D, C, B, F, A) {
1664
1680
  return this.imp.DrawArc(D, C, B, F, A);
1665
1681
  }
1666
- DrawArc2(D, C, B, F, A, t) {
1667
- return this.imp.DrawArc2(D, C, B, F, A, t);
1682
+ DrawArc2(D, C, B, F, A, e) {
1683
+ return this.imp.DrawArc2(D, C, B, F, A, e);
1668
1684
  }
1669
1685
  DrawCircle(D, C, B) {
1670
1686
  return this.imp.DrawCircle(D, C, B);
@@ -1672,35 +1688,35 @@ class V {
1672
1688
  DrawEllipse(D, C, B, F, A) {
1673
1689
  return this.imp.DrawEllipse(D, C, B, F, A);
1674
1690
  }
1675
- DrawEllipseArc(D, C, B, F, A, t, e) {
1676
- return this.imp.DrawEllipseArc(D, C, B, F, A, t, e);
1691
+ DrawEllipseArc(D, C, B, F, A, e, t) {
1692
+ return this.imp.DrawEllipseArc(D, C, B, F, A, e, t);
1677
1693
  }
1678
1694
  DrawPoint(D, C) {
1679
1695
  return this.imp.DrawPoint(D, C);
1680
1696
  }
1681
- DrawSolid(D, C, B, F, A, t, e, r) {
1682
- return this.imp.DrawSolid(D, C, B, F, A, t, e, r);
1697
+ DrawSolid(D, C, B, F, A, e, t, r) {
1698
+ return this.imp.DrawSolid(D, C, B, F, A, e, t, r);
1683
1699
  }
1684
- DrawMText(D, C, B, F, A, t, e) {
1685
- return this.imp.DrawMText(D, C, B, F, A, t, e);
1700
+ DrawMText(D, C, B, F, A, e, t) {
1701
+ return this.imp.DrawMText(D, C, B, F, A, e, t);
1686
1702
  }
1687
- DrawText(D, C, B, F, A, t, e) {
1688
- return this.imp.DrawTextDrawText(D, C, B, F, A, t, e);
1703
+ DrawText(D, C, B, F, A, e, t) {
1704
+ return this.imp.DrawTextDrawText(D, C, B, F, A, e, t);
1689
1705
  }
1690
1706
  DrawBlockReference(D, C, B, F, A) {
1691
1707
  return this.imp.DrawBlockReference(D, C, B, F, A);
1692
1708
  }
1693
- DrawDimAligned(D, C, B, F, A, t) {
1694
- return this.imp.DrawDimAligned(D, C, B, F, A, t);
1709
+ DrawDimAligned(D, C, B, F, A, e) {
1710
+ return this.imp.DrawDimAligned(D, C, B, F, A, e);
1695
1711
  }
1696
- DrawDimAngular(D, C, B, F, A, t, e, r) {
1697
- return this.imp.DrawDimAngular(D, C, B, F, A, t, e, r);
1712
+ DrawDimAngular(D, C, B, F, A, e, t, r) {
1713
+ return this.imp.DrawDimAngular(D, C, B, F, A, e, t, r);
1698
1714
  }
1699
1715
  DrawDimDiametric(D, C, B, F, A) {
1700
1716
  return this.imp.DrawDimDiametric(D, C, B, F, A);
1701
1717
  }
1702
- DrawDimRotated(D, C, B, F, A, t, e) {
1703
- return this.imp.DrawDimRotated(D, C, B, F, A, t, e);
1718
+ DrawDimRotated(D, C, B, F, A, e, t) {
1719
+ return this.imp.DrawDimRotated(D, C, B, F, A, e, t);
1704
1720
  }
1705
1721
  DrawDimOrdinate(D, C, B, F, A) {
1706
1722
  return this.imp.DrawDimOrdinate(D, C, B, F, A);
@@ -1738,27 +1754,23 @@ class V {
1738
1754
  ObjectIdToObject(D) {
1739
1755
  return i.App.ObjectIdToObject(D);
1740
1756
  }
1741
- CloneMcDbObject(D) {
1742
- let C = this.imp.CloneMcDbObject(D);
1743
- return i.App.CreateCloneObject(C);
1744
- }
1745
- ObjectIdToMdObjectImp(D) {
1746
- return i.App.getImp().ObjectIdToMdObject(D);
1747
- }
1748
1757
  DestroyObject(D) {
1749
1758
  !D || i.App.getImp().DestroyObject(D);
1750
1759
  }
1751
1760
  GetAllLayoutName() {
1752
- return new bD(this.imp.GetAllLayoutName());
1761
+ return new TD(this.imp.GetAllLayoutName());
1753
1762
  }
1754
1763
  SetCurrentLayout(D) {
1755
1764
  this.imp.SetCurrentLayout(g.encodeToGb2312(D));
1756
1765
  }
1766
+ GetMxCpp() {
1767
+ return i;
1768
+ }
1757
1769
  }
1758
1770
  class jD {
1759
1771
  imp;
1760
1772
  init(D) {
1761
- this.imp = D, w.kZAxis = new w(0, 0, 1), w.kXAxis = new w(1, 0, 0), w.kYAxis = new w(0, 1, 0), u.kOrigin = new u(0, 0, 0), U.kIdentity = new U();
1773
+ 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), V.kIdentity = new V();
1762
1774
  }
1763
1775
  getImp() {
1764
1776
  return this.imp;
@@ -1767,15 +1779,15 @@ class jD {
1767
1779
  return this.imp.getLastCallResult();
1768
1780
  }
1769
1781
  CreateMxCAD(D, C, B, F, A) {
1770
- let t = this.imp.CreateMxDraw(D, C, B, F, A);
1771
- return new V(t);
1782
+ let e = this.imp.CreateMxDraw(D, C, B, F, A);
1783
+ return new K(e);
1772
1784
  }
1773
1785
  DestroyObject(D) {
1774
1786
  this.imp.DestroyObject(D);
1775
1787
  }
1776
1788
  GetCurrentMxCAD() {
1777
1789
  let D = this.imp.GetCurrentMxDraw();
1778
- return D.McObject || (D.McObject = new V(this.imp.GetCurrentMxDraw())), D.McObject;
1790
+ return D.McObject || (D.McObject = new K(this.imp.GetCurrentMxDraw())), D.McObject;
1779
1791
  }
1780
1792
  mcedRGB2Index(D, C, B, F = !0) {
1781
1793
  return this.imp.mcedRGB2Index(D, C, B, F);
@@ -1786,44 +1798,44 @@ class jD {
1786
1798
  let C = this.imp.ObjectIdToObjectName(D);
1787
1799
  if (C == "McDbLine") {
1788
1800
  let B = this.imp.ObjectIdToMdDbLine(D);
1789
- return new Z(B);
1801
+ return new Y(B);
1790
1802
  } else if (C == "McDbText") {
1791
1803
  let B = this.imp.ObjectIdToMdDbText(D);
1792
- return new ED(B);
1804
+ return new iD(B);
1793
1805
  } else if (C == "McDbPolyline") {
1794
1806
  let B = this.imp.ObjectIdToMdDbPolyline(D);
1795
- return new tD(B);
1807
+ return new X(B);
1796
1808
  } else if (C == "McDbCircle") {
1797
1809
  let B = this.imp.ObjectIdToMdDbCircle(D);
1798
1810
  return new O(B);
1799
1811
  } else if (C == "McDbArc") {
1800
1812
  let B = this.imp.ObjectIdToMdDbArc(D);
1801
- return new iD(B);
1813
+ return new DD(B);
1802
1814
  } else if (C == "McDbBlockReference") {
1803
1815
  let B = this.imp.ObjectIdToMdDbBlockReference(D);
1804
- return new RD(B);
1816
+ return new rD(B);
1805
1817
  } else if (C == "McDbAlignedDimension") {
1806
1818
  let B = this.imp.ObjectIdToMdDbAlignedDimension(D);
1807
- return new SD(B);
1819
+ return new sD(B);
1808
1820
  } else if (C == "McDbRotatedDimension") {
1809
1821
  let B = this.imp.ObjectIdToMdDbRotatedDimension(D);
1810
- return new LD(B);
1822
+ return new nD(B);
1811
1823
  } else if (C == "McDbMText") {
1812
1824
  let B = this.imp.ObjectIdToMdDbMText(D);
1813
- return new AD(B);
1825
+ return new Q(B);
1826
+ } else if (this.imp.ObjectIdIsKindOf(D, "McDbEntity")) {
1827
+ let B = this.imp.ObjectIdToMdDbEntity(D);
1828
+ return new j(B);
1829
+ } else {
1830
+ let B = this.imp.ObjectIdToMdObject(D);
1831
+ return new v(B);
1814
1832
  }
1815
- return console.log("Mx ObjectIdToObject error type:" + C), null;
1816
1833
  }
1817
1834
  CreateCloneObject(D) {
1818
- let C = D.getObjectName();
1819
- if (C == "McDbLine") {
1820
- let B = new Z();
1821
- return B.getImp().ConnectionTempObject(D), i.App.DestroyObject(D), B;
1822
- } else if (C == "McDbText") {
1823
- let B = new ED();
1824
- return B.getImp().ConnectionTempObject(D), i.App.DestroyObject(D), B;
1825
- }
1826
- return console.log("Mx: Clone error type"), new v(D);
1835
+ if (!D)
1836
+ return null;
1837
+ let C = D.getObjectName(), B = null;
1838
+ return C == "McDbLine" ? B = new Y() : C == "McDbText" ? B = new iD() : C == "McDbPolyline" ? B = new X() : C == "McDbCircle" ? B = new O() : C == "McDbArc" ? B = new DD() : C == "McDbBlockReference" ? B = new rD() : C == "McDbAlignedDimension" ? B = new sD() : C == "McDbRotatedDimension" ? B = new nD() : C == "McDbMText" ? B = new Q() : D.isKindOf("McDbEntity") && (B = new j(), B.initTempObject(new i.mxcadassemblyimp.MdDbEntity())), B ? (B.getImp().ConnectionTempObject(D), i.App.DestroyObject(D), B) : new v(D);
1827
1839
  }
1828
1840
  setFontFilePath(D) {
1829
1841
  this.imp.setFontFilePath(D);
@@ -1845,7 +1857,7 @@ class GD {
1845
1857
  let F = D.z || 0;
1846
1858
  D = h.getCurrentDraw().docCoord2Cad(D.x, D.y, F);
1847
1859
  }
1848
- let B = new u();
1860
+ let B = new a();
1849
1861
  return D && D.x && D.y && (B.x = D.x, B.y = D.y, D.z && (B.y = D.z)), B;
1850
1862
  }
1851
1863
  GetCurrentMxCAD() {
@@ -1855,7 +1867,7 @@ class GD {
1855
1867
  return this.App.GetCurrentMxCAD().GetDatabase();
1856
1868
  }
1857
1869
  }
1858
- const nD = "1.0.72", rC = "SharedArrayBuffer" in window, Q = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), sC = (E, D = self.location.href) => Q ? `https://unpkg.com/mxcad@${nD}/dist/wasm/2d-st/${E}` : D + E, nC = (E, D = self.location.href) => Q ? `https://unpkg.com/mxcad@${nD}/dist/wasm/2d/${E}` : D + E, oC = (E, D = self.location.href) => Q ? `https://unpkg.com/mxcad@${nD}/dist/wasm/3d/${E}` : D + E, ID = (E) => new Promise((D, C) => {
1870
+ const lD = "1.0.74", rC = "SharedArrayBuffer" in window, ED = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), sC = (E, D = self.location.href) => ED ? `https://unpkg.com/mxcad@${lD}/dist/wasm/2d-st/${E}` : D + E, nC = (E, D = self.location.href) => ED ? `https://unpkg.com/mxcad@${lD}/dist/wasm/2d/${E}` : D + E, oC = (E, D = self.location.href) => ED ? `https://unpkg.com/mxcad@${lD}/dist/wasm/3d/${E}` : D + E, ID = (E) => new Promise((D, C) => {
1859
1871
  const B = document.createElement("script");
1860
1872
  B.src = E, B.type = "text/javascript", B.crossOrigin = "anonymous", document.body.appendChild(B), B.onload = () => {
1861
1873
  D();
@@ -1867,8 +1879,8 @@ const nD = "1.0.72", rC = "SharedArrayBuffer" in window, Q = document.currentScr
1867
1879
  return await ID(F), await globalThis[D](C);
1868
1880
  };
1869
1881
  let i;
1870
- async function WD(E, D = rC || !Q ? sC : nC, C, B, F) {
1871
- return new Promise(async (A, t) => {
1882
+ async function WD(E, D = rC || !ED ? sC : nC, C, B, F) {
1883
+ return new Promise(async (A, e) => {
1872
1884
  try {
1873
1885
  if (i || (i = new GD()), i.mxcadassemblyimp)
1874
1886
  return E && E(i), A(i);
@@ -1879,8 +1891,8 @@ async function WD(E, D = rC || !Q ? sC : nC, C, B, F) {
1879
1891
  i.mxcadassemblyimp = r;
1880
1892
  let s = new r.McApp();
1881
1893
  B && s.setFontFilePath(B), s.Init(), i.App.init(s), F && i.App.addNetworkLoadingFont(F), E && E(i), A(i);
1882
- } catch (e) {
1883
- t(e);
1894
+ } catch (t) {
1895
+ e(t);
1884
1896
  }
1885
1897
  });
1886
1898
  }
@@ -1904,8 +1916,8 @@ const uC = (E) => {
1904
1916
  B(F);
1905
1917
  }
1906
1918
  }), cC = async (E) => {
1907
- mD.state.MxFun || await YD();
1908
- const { multipleSelect: D, networkFonts: C, fontspath: B, locateFile: F, wasmBinary: A, canvas: t, userIdentitySign: e, onOpenFileComplete: r, fileUrl: s, onInit: o = () => {
1919
+ wD.state.MxFun || await YD();
1920
+ const { multipleSelect: D, networkFonts: C, fontspath: B, locateFile: F, wasmBinary: A, canvas: e, userIdentitySign: t, onOpenFileComplete: r, fileUrl: s, onInit: o = () => {
1909
1921
  h.setIniset({
1910
1922
  EnableIntelliSelect: !0,
1911
1923
  IntelliSelectType: 1,
@@ -1914,17 +1926,17 @@ const uC = (E) => {
1914
1926
  } } = E || {};
1915
1927
  await WD(() => {
1916
1928
  }, F, A, B, C), o();
1917
- let a = await lC(t, e);
1929
+ let u = await lC(e, t);
1918
1930
  const p = h.getMxFunTHREE();
1919
1931
  let d = new p.Vector2();
1920
- a.getRenderer().getSize(d);
1921
- const n = i.App.CreateMxCAD(d.width, d.height, a.getCanvas().id, a.isWebgl2(), a.getId());
1922
- return a.initMxCpp(n), a.addEvent("openFileComplete", () => {
1932
+ u.getRenderer().getSize(d);
1933
+ const n = i.App.CreateMxCAD(d.width, d.height, u.getCanvas().id, u.isWebgl2(), u.getId());
1934
+ return u.initMxCpp(n), u.addEvent("openFileComplete", () => {
1923
1935
  r && r();
1924
1936
  }), s && n.openWebFile(s), n;
1925
1937
  };
1926
1938
  async function mC() {
1927
- const E = new k();
1939
+ const E = new T();
1928
1940
  E.setMessage(`
1929
1941
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
1930
1942
  let D = await E.go();
@@ -1943,43 +1955,43 @@ async function mC() {
1943
1955
  };
1944
1956
  h.call("Mx_Text", F);
1945
1957
  }
1946
- class pC extends pD {
1958
+ class pC extends yD {
1947
1959
  getGripPoints() {
1948
1960
  const { x: D, y: C, z: B } = this.center;
1949
- 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);
1950
- return [this.center, F, A, t, e];
1961
+ 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);
1962
+ return [this.center, F, A, e, t];
1951
1963
  }
1952
1964
  moveGripPointsAt(D, C) {
1953
- const [B, F, A, t, e] = this.getGripPoints();
1954
- 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;
1965
+ const [B, F, A, e, t] = this.getGripPoints();
1966
+ 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;
1955
1967
  }
1956
1968
  }
1957
- const aD = (E) => {
1958
- const [D, C, B] = E, { x: F, y: A, z: t } = D, { x: e, y: r, z: s } = C, { x: o, y: a, z: p } = B, d = A * s - r * t - A * p + a * t + r * p - a * s, n = -(F * s - e * t - F * p + o * t + e * p - o * s), c = F * r - e * A - F * a + o * A + e * a - o * r, y = -(F * r * p - F * a * s - e * A * p + e * a * t + o * A * s - o * r * t), b = 2 * (e - F), l = 2 * (r - A), m = 2 * (s - t), I = F * F + A * A + t * t - e * e - r * r - s * s, P = 2 * (o - F), R = 2 * (a - A), S = 2 * (p - t), W = F * F + A * A + t * t - o * o - a * a - p * p, _D = -(n * m * W - n * S * I - l * c * W + l * S * y + R * c * I - R * m * y) / (d * l * S - d * R * m - b * n * S + b * R * c + P * n * m - P * l * c), $D = (d * m * W - d * S * I - b * c * W + b * S * y + P * c * I - P * m * y) / (d * l * S - d * R * m - b * n * S + b * R * c + P * n * m - P * l * c), JD = -(d * l * W - d * R * I - b * n * W + b * R * y + P * n * I - P * l * y) / (d * l * S - d * R * m - b * n * S + b * R * c + P * n * m - P * l * c);
1969
+ const mD = (E) => {
1970
+ const [D, C, B] = E, { x: F, y: A, z: e } = D, { x: t, y: r, z: s } = C, { x: o, y: u, z: p } = B, d = A * s - r * e - A * p + u * e + r * p - u * s, n = -(F * s - t * e - F * p + o * e + t * p - o * s), c = F * r - t * A - F * u + o * A + t * u - o * r, y = -(F * r * p - F * u * s - t * A * p + t * u * e + o * A * s - o * r * e), b = 2 * (t - F), l = 2 * (r - A), m = 2 * (s - e), W = F * F + A * A + e * e - t * t - r * r - s * s, P = 2 * (o - F), S = 2 * (u - A), R = 2 * (p - e), U = F * F + A * A + e * e - o * o - u * u - p * p, _D = -(n * m * U - n * R * W - l * c * U + l * R * y + S * c * W - S * m * y) / (d * l * R - d * S * m - b * n * R + b * S * c + P * n * m - P * l * c), $D = (d * m * U - d * R * W - b * c * U + b * R * y + P * c * W - P * m * y) / (d * l * R - d * S * m - b * n * R + b * S * c + P * n * m - P * l * c), JD = -(d * l * U - d * S * W - b * n * U + b * S * y + P * n * W - P * l * y) / (d * l * R - d * S * m - b * n * R + b * S * c + P * n * m - P * l * c);
1959
1971
  return new THREE.Vector3(_D, $D, JD);
1960
1972
  };
1961
- function zD() {
1962
- const E = new k();
1973
+ function UD() {
1974
+ const E = new T();
1963
1975
  let D = new pC(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor();
1964
1976
  L.use(D), D.closed = !1, D.setColor(C);
1965
1977
  let B = 0, F = "default", A = !0;
1966
- const t = () => {
1978
+ const e = () => {
1967
1979
  E.setUserDraw(
1968
1980
  (n, c) => {
1969
1981
  D.radius = A ? D.center.distanceTo(n) : D.center.distanceTo(n) / 2, c.drawCustomEntity(D), c.drawLine(D.center, n);
1970
1982
  }
1971
1983
  );
1972
- }, e = (n) => {
1984
+ }, t = (n) => {
1973
1985
  if (F === "default") {
1974
1986
  if (n === x.kOk) {
1975
1987
  if (B === 0)
1976
1988
  E.setMessage(`
1977
- \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(), t();
1989
+ \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(), e();
1978
1990
  else if (B === 1)
1979
1991
  return i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius)), !0;
1980
1992
  B++;
1981
1993
  }
1982
- n === x.kKeyWord && E.isKeyWordPicked("D") && (A = !1, t(), E.setMessage(`
1994
+ n === x.kKeyWord && E.isKeyWordPicked("D") && (A = !1, e(), E.setMessage(`
1983
1995
  \u6307\u5B9A\u5706\u7684\u76F4\u5F84:`), E.setKeyWords(""));
1984
1996
  }
1985
1997
  };
@@ -1992,28 +2004,28 @@ function zD() {
1992
2004
  }), E.setMessage(`
1993
2005
  \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), B === 1 && (r.push(E.value()), E.setUserDraw((c, y) => {
1994
2006
  const [b, l] = r, m = c;
1995
- D.center = aD([
2007
+ D.center = mD([
1996
2008
  b,
1997
2009
  l,
1998
2010
  m
1999
2011
  ]), D.radius = D.center.distanceTo(b), y.drawCustomEntity(D);
2000
2012
  }), E.setMessage(`
2001
2013
  \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E09\u4E2A\u70B9:`)), B === 2)
2002
- return r.push(E.value()), D.center = aD(r), D.radius = D.center.distanceTo(r[0]), i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius)), !0;
2014
+ return r.push(E.value()), D.center = mD(r), D.radius = D.center.distanceTo(r[0]), i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius)), !0;
2003
2015
  B++;
2004
2016
  }
2005
2017
  };
2006
2018
  let o;
2007
- const a = (n, c) => {
2019
+ const u = (n, c) => {
2008
2020
  new THREE.Line3(n, c).getCenter(D.center), D.radius = c.distanceTo(n) / 2;
2009
2021
  }, p = (n) => {
2010
2022
  if (F === "2P" && (E.setMessage(`
2011
2023
  \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E00\u4E2A\u7AEF\u70B9:`), n === x.kOk)) {
2012
2024
  if (B === 0 && (o = E.value(), E.setUserDraw((c, y) => {
2013
- a(o, c), y.drawCustomEntity(D), y.drawLine(o, c);
2025
+ u(o, c), y.drawCustomEntity(D), y.drawLine(o, c);
2014
2026
  }), E.setMessage(`
2015
2027
  \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E8C\u4E2A\u7AEF\u70B9:`)), B === 1)
2016
- return a(o, E.value()), i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius)), !0;
2028
+ return u(o, E.value()), i.GetCurrentMxCAD().DrawEntity(new O(D.center.x, D.center.y, 0, D.radius)), !0;
2017
2029
  B++;
2018
2030
  }
2019
2031
  }, d = (n) => {
@@ -2034,7 +2046,7 @@ function zD() {
2034
2046
  \u6307\u5B9A\u5706\u7684\u5706\u5FC3\u6216[\u4E09\u70B9(3P)/\u4E24\u70B9(2P)/\u5207\u70B9\u3001\u5207\u70B9\u3001\u534A\u5F84(T)]:`
2035
2047
  ), E.setKeyWords("3P 2P T"), E.goWhile(
2036
2048
  (n) => {
2037
- if (n === x.kKeyWord && (E.isKeyWordPicked("3P") ? F = "3P" : E.isKeyWordPicked("2P") ? F = "2P" : E.isKeyWordPicked("T") && (F = "T")), e(n))
2049
+ if (n === x.kKeyWord && (E.isKeyWordPicked("3P") ? F = "3P" : E.isKeyWordPicked("2P") ? F = "2P" : E.isKeyWordPicked("T") && (F = "T")), t(n))
2038
2050
  return { exit: !0 };
2039
2051
  if (s(n))
2040
2052
  return { exit: !0 };
@@ -2049,15 +2061,15 @@ function zD() {
2049
2061
  );
2050
2062
  }
2051
2063
  h.on("init", () => {
2052
- h.addCommand("Mx_Circle", zD);
2064
+ h.addCommand("Mx_Circle", UD);
2053
2065
  });
2054
- const uD = () => mD.state.MxFun.stopRunCommand();
2055
- function DD(E, D, C, B) {
2066
+ const pD = () => wD.state.MxFun.stopRunCommand();
2067
+ function AD(E, D, C, B) {
2056
2068
  const F = E - C, A = D - B;
2057
- let t = 0;
2058
- 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;
2069
+ let e = 0;
2070
+ 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;
2059
2071
  }
2060
- const T = (E, D, C) => {
2072
+ const k = (E, D, C) => {
2061
2073
  const B = () => {
2062
2074
  E.go((F) => {
2063
2075
  if (F === x.kKeyWord && C() && B(), F === x.kOk && D() && B(), F === x.kNone && B(), F === x.kCancel)
@@ -2066,47 +2078,47 @@ const T = (E, D, C) => {
2066
2078
  };
2067
2079
  return B;
2068
2080
  };
2069
- async function UD() {
2070
- const E = new k();
2071
- let D = new J(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor(), B = [];
2081
+ async function zD() {
2082
+ const E = new T();
2083
+ let D = new Z(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor(), B = [];
2072
2084
  E.setMessage(`
2073
2085
  \u6307\u5B9A\u7B2C\u4E00\u70B9:`);
2074
2086
  let F = await E.go();
2075
2087
  if (!F)
2076
2088
  return;
2077
- E.setUserDraw((t, e) => {
2078
- e.setColor(C), B.forEach((r) => {
2079
- r.color = C, e.drawCustomEntity(r);
2080
- }), e.drawLine(F, t);
2089
+ E.setUserDraw((e, t) => {
2090
+ t.setColor(C), B.forEach((r) => {
2091
+ r.color = C, t.drawCustomEntity(r);
2092
+ }), t.drawLine(F, e);
2081
2093
  });
2082
2094
  const A = () => {
2083
2095
  E.setMessage(`
2084
2096
  \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)]");
2085
2097
  };
2086
2098
  A(), E.goWhile(
2087
- (t) => {
2088
- 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) {
2099
+ (e) => {
2100
+ if (e === x.kOk && (D = new Z(), L.use(D), D.pt1 = F, D.pt2 = E.value(), F = D.pt2.clone(), B.push(D), A()), e === x.kKeyWord) {
2089
2101
  if (E.isKeyWordPicked("E"))
2090
- uD();
2102
+ pD();
2091
2103
  else if (E.isKeyWordPicked("C")) {
2092
- const e = new J();
2093
- return e.pt1 = F.clone(), e.pt2 = B[0].pt1.clone(), L.use(e), B.push(e), F = e.pt2.clone(), uD(), { exit: !0 };
2104
+ const t = new Z();
2105
+ return t.pt1 = F.clone(), t.pt2 = B[0].pt1.clone(), L.use(t), B.push(t), F = t.pt2.clone(), pD(), { exit: !0 };
2094
2106
  } else if (E.isKeyWordPicked("U")) {
2095
- const e = B.pop();
2096
- e && (F = e.pt1);
2107
+ const t = B.pop();
2108
+ t && (F = t.pt1);
2097
2109
  }
2098
2110
  }
2099
2111
  },
2100
- (t) => (t != x.kCancel && B.forEach((e) => {
2101
- i.GetCurrentMxCAD().DrawEntity(new Z(e.pt1.x, e.pt1.y, 0, e.pt2.x, e.pt2.y, 0));
2112
+ (e) => (e != x.kCancel && B.forEach((t) => {
2113
+ i.GetCurrentMxCAD().DrawEntity(new Y(t.pt1.x, t.pt1.y, 0, t.pt2.x, t.pt2.y, 0));
2102
2114
  }), { exit: !0 })
2103
2115
  );
2104
2116
  }
2105
2117
  h.on("init", () => {
2106
- h.addCommand("Mx_Line", UD);
2118
+ h.addCommand("Mx_Line", zD);
2107
2119
  });
2108
2120
  async function dC() {
2109
- const E = new k();
2121
+ const E = new T();
2110
2122
  E.setMessage(`
2111
2123
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
2112
2124
  let D = await E.go();
@@ -2127,7 +2139,7 @@ async function dC() {
2127
2139
  h.call("Mx_MText", F);
2128
2140
  }
2129
2141
  async function VD() {
2130
- const E = new k();
2142
+ const E = new T();
2131
2143
  let D = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2132
2144
  const C = new QD();
2133
2145
  L.use(C), C.color = D, E.setMessage(`
@@ -2146,10 +2158,10 @@ async function VD() {
2146
2158
  },
2147
2159
  (F) => {
2148
2160
  if (F === x.kCancel) {
2149
- let A = i.GetCurrentMxCAD(), t = new tD();
2150
- for (let e = 0; e < C.points.length; e++)
2151
- t.addVertexAt(C.points[e]);
2152
- A.DrawEntity(t);
2161
+ let A = i.GetCurrentMxCAD(), e = new X();
2162
+ for (let t = 0; t < C.points.length; t++)
2163
+ e.addVertexAt(C.points[t]);
2164
+ A.DrawEntity(e);
2153
2165
  }
2154
2166
  }
2155
2167
  );
@@ -2158,25 +2170,25 @@ h.on("init", () => {
2158
2170
  h.addCommand("Mx_Pline", VD);
2159
2171
  });
2160
2172
  async function KD() {
2161
- const E = new k();
2173
+ const E = new T();
2162
2174
  E.setMessage(`
2163
2175
  \u6307\u5B9A\u4E00\u70B9:`);
2164
2176
  let D = await E.go(), C = new O();
2165
2177
  C.setCenter(D.x, D.y, D.z);
2166
2178
  let B = 5, F = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2167
- E.setUserDraw((A, t) => {
2168
- t.setColor(F), C.radius = D.distanceTo(A);
2169
- let e = C.getEndParam().val, s = C.getDistAtParam(e).val / B, o = 0, a = new THREE.Vector3(), p = new THREE.Vector3();
2179
+ E.setUserDraw((A, e) => {
2180
+ e.setColor(F), C.radius = D.distanceTo(A);
2181
+ let t = C.getEndParam().val, s = C.getDistAtParam(t).val / B, o = 0, u = new THREE.Vector3(), p = new THREE.Vector3();
2170
2182
  for (let d = 0; d < B; d++) {
2171
2183
  let n = C.getPointAtDist(o).val;
2172
- o += s, d > 0 ? t.drawMcDbLine(n.x, n.y, n.z, a.x, a.y, a.z) : p = new THREE.Vector3(n.x, n.y, n.z), d == B - 1 && t.drawMcDbLine(n.x, n.y, n.z, p.x, p.y, p.z), a = new THREE.Vector3(n.x, n.y, n.z);
2184
+ o += s, d > 0 ? e.drawMcDbLine(n.x, n.y, n.z, u.x, u.y, u.z) : p = new THREE.Vector3(n.x, n.y, n.z), d == B - 1 && e.drawMcDbLine(n.x, n.y, n.z, p.x, p.y, p.z), u = new THREE.Vector3(n.x, n.y, n.z);
2173
2185
  }
2174
2186
  }), E.setMessage(`
2175
2187
  \u6307\u5B9A\u4E8C\u70B9:`), await E.go(), E.drawReserve();
2176
2188
  }
2177
2189
  h.addCommand("Mx_Polygon", KD);
2178
2190
  function hC(E, D, C) {
2179
- 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, a = B - A, p = t - r, d = (B * B - F * F + (t * t - e * e)) / 2, n = (B * B - A * A + (t * t - r * r)) / 2, c = o * a - s * p, y = -(p * d - o * n) / c, b = -(s * n - a * d) / c;
2191
+ const B = E.x, F = D.x, A = C.x, e = E.y, t = D.y, r = C.y, s = B - F, o = e - t, u = B - A, p = e - r, d = (B * B - F * F + (e * e - t * t)) / 2, n = (B * B - A * A + (e * e - r * r)) / 2, c = o * u - s * p, y = -(p * d - o * n) / c, b = -(s * n - u * d) / c;
2180
2192
  return new THREE.Vector3(y, b, 0);
2181
2193
  }
2182
2194
  function wC(E, D) {
@@ -2189,16 +2201,16 @@ function yC(E, D, C) {
2189
2201
  let F;
2190
2202
  return E < D ? F = D - E : F = D - E + 360, F > B;
2191
2203
  }
2192
- function CD(E, D, C) {
2193
- const B = E.x, F = D.x, A = E.y, t = D.y;
2194
- let e, r, s;
2195
- 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), {
2196
- sin: e,
2204
+ function eD(E, D, C) {
2205
+ const B = E.x, F = D.x, A = E.y, e = D.y;
2206
+ let t, r, s;
2207
+ return t = (A - e) / 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, t < -0.05 && (s = 360 - s), {
2208
+ sin: t,
2197
2209
  cos: r,
2198
2210
  angle: s
2199
2211
  };
2200
2212
  }
2201
- class oD extends pD {
2213
+ class cD extends yD {
2202
2214
  constructor() {
2203
2215
  super(), this._propertyDbKeys = [...this._propertyDbKeys, "bulge"];
2204
2216
  }
@@ -2206,24 +2218,24 @@ class oD extends pD {
2206
2218
  return "MxDbCircle";
2207
2219
  }
2208
2220
  create() {
2209
- return new oD();
2221
+ return new cD();
2210
2222
  }
2211
2223
  getArcBulge(D, C, B) {
2212
2224
  const F = D.distanceTo(C);
2213
- let e = 2 * new THREE.Line3(D, C).getCenter(
2225
+ let t = 2 * new THREE.Line3(D, C).getCenter(
2214
2226
  new THREE.Vector3()
2215
2227
  ).distanceTo(B) / F;
2216
- 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;
2228
+ 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;
2217
2229
  }
2218
2230
  getArcMidPoint(D, C, B, F, A) {
2219
- const t = D, e = B * Math.PI / 180;
2231
+ const e = D, t = B * Math.PI / 180;
2220
2232
  let r = F * Math.PI / 180;
2221
2233
  const s = new THREE.Vector3(), o = new THREE.Vector3();
2222
- 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);
2223
- const a = C;
2234
+ s.x = e.x + C * Math.cos(t), s.y = e.y + C * Math.sin(t), o.x = e.x + C * Math.cos(r), o.y = e.y + C * Math.sin(r);
2235
+ const u = C;
2224
2236
  (A ? B < F : B > F) && (r += Math.PI * 2);
2225
2237
  const p = new THREE.Vector3();
2226
- return p.x = t.x + a * Math.cos((e + r) / 2), p.y = t.y + a * Math.sin((e + r) / 2), [s, p, o, this.center];
2238
+ return p.x = e.x + u * Math.cos((t + r) / 2), p.y = e.y + u * Math.sin((t + r) / 2), [s, p, o, this.center];
2227
2239
  }
2228
2240
  getGripPoints() {
2229
2241
  return this.getArcMidPoint(
@@ -2242,25 +2254,25 @@ class oD extends pD {
2242
2254
  }
2243
2255
  upDatePoints(D, C, B) {
2244
2256
  D[C].add(B);
2245
- const [F, A, t] = D;
2246
- this.center = hC(F, t, A), this.radius = wC(A, this.center);
2247
- const e = CD(F, this.center, this.radius), r = CD(t, this.center, this.radius), s = CD(A, this.center, this.radius);
2257
+ const [F, A, e] = D;
2258
+ this.center = hC(F, e, A), this.radius = wC(A, this.center);
2259
+ const t = eD(F, this.center, this.radius), r = eD(e, this.center, this.radius), s = eD(A, this.center, this.radius);
2248
2260
  this.clockwise = yC(
2249
2261
  r.angle,
2250
- e.angle,
2262
+ t.angle,
2251
2263
  s.angle
2252
- ), this.startAngle = THREE.MathUtils.degToRad(e.angle), this.endAngle = THREE.MathUtils.degToRad(r.angle);
2264
+ ), this.startAngle = THREE.MathUtils.degToRad(t.angle), this.endAngle = THREE.MathUtils.degToRad(r.angle);
2253
2265
  }
2254
2266
  }
2255
2267
  async function HD() {
2256
2268
  let E = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2257
- const D = new k();
2269
+ const D = new T();
2258
2270
  D.setMessage(`
2259
2271
  \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)]");
2260
- let C = new oD();
2272
+ let C = new cD();
2261
2273
  C.closed = !1, L.use(C);
2262
2274
  let B, F, A;
2263
- const t = T(
2275
+ const e = k(
2264
2276
  D,
2265
2277
  () => {
2266
2278
  B = D.value(), D.setMessage(`
@@ -2270,33 +2282,33 @@ async function HD() {
2270
2282
  },
2271
2283
  () => {
2272
2284
  if (D.isKeyWordPicked("C")) {
2273
- const l = new $();
2285
+ const l = new J();
2274
2286
  l.color = E, C.center = D.value(), l.center = D.value(), D.setMessage(`
2275
2287
  \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), D.setKeyWords(""), r();
2276
2288
  } else
2277
2289
  return !0;
2278
2290
  }
2279
2291
  );
2280
- let e;
2281
- const r = T(
2292
+ let t;
2293
+ const r = k(
2282
2294
  D,
2283
2295
  () => {
2284
- e = D.value(), A = new $(), A.closed = !1, L.use(A), A.color = E, A.center = e, C.center = e, D.setMessage(`
2296
+ t = D.value(), A = new J(), A.closed = !1, L.use(A), A.color = E, A.center = t, C.center = t, D.setMessage(`
2285
2297
  \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setUserDraw((l, m) => {
2286
- m.drawCustomEntity(A), m.setColor(E), m.drawLine(e, l);
2287
- }), a();
2298
+ m.drawCustomEntity(A), m.setColor(E), m.drawLine(t, l);
2299
+ }), u();
2288
2300
  },
2289
2301
  () => {
2290
2302
  }
2291
2303
  );
2292
2304
  let s, o;
2293
- const a = T(
2305
+ const u = k(
2294
2306
  D,
2295
2307
  () => {
2296
2308
  s = D.value(), A.endPoint = s, D.setMessage(
2297
2309
  `
2298
2310
  \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)]:`
2299
- ), 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((l, m) => {
2311
+ ), D.setKeyWords("A L R"), o = new Z(), o.setDashLineDisplay(!0), o.setDashArray(0.05), o.setLineWidth(2), o.setColor("#ffd30d"), o.pt1 = A.center, D.setUserDraw((l, m) => {
2300
2312
  A.startPoint = l, o.pt2 = l, m.drawCustomEntity(A), m.drawCustomEntity(o);
2301
2313
  }), d();
2302
2314
  },
@@ -2304,7 +2316,7 @@ async function HD() {
2304
2316
  }
2305
2317
  );
2306
2318
  let p;
2307
- const d = T(
2319
+ const d = k(
2308
2320
  D,
2309
2321
  () => {
2310
2322
  p = D.value(), A.startPoint = p, A.endPoint = s, y.DrawArc(A.center.x, A.center.y, A.radius, A.startAngle, A.endAngle);
@@ -2330,13 +2342,13 @@ async function HD() {
2330
2342
  \u6307\u5B9A\u5706\u5F27\u7684\u534A\u5F84${A.radius ? "<" + A.radius + ">" : ""}:`
2331
2343
  ), D.setKeyWords(""), D.setUserDraw((l, m) => {
2332
2344
  m.drawLine(l, A.center), A.startPoint = l, m.drawCustomEntity(A);
2333
- }), a();
2345
+ }), u();
2334
2346
  else
2335
2347
  return !0;
2336
2348
  }
2337
2349
  );
2338
2350
  let n;
2339
- const c = T(
2351
+ const c = k(
2340
2352
  D,
2341
2353
  () => {
2342
2354
  n = D.value(), D.setMessage(`
@@ -2346,12 +2358,12 @@ async function HD() {
2346
2358
  },
2347
2359
  () => {
2348
2360
  if (D.isKeyWordPicked("C"))
2349
- A = new $(), A.closed = !1, L.use(A), A.color = E, D.setMessage(`
2361
+ A = new J(), A.closed = !1, L.use(A), A.color = E, D.setMessage(`
2350
2362
  \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((l, m) => {
2351
2363
  A.startPoint = B, m.drawLine(l, A.startPoint);
2352
2364
  }), r();
2353
2365
  else if (D.isKeyWordPicked("E"))
2354
- A = new $(), A.closed = !1, L.use(A), A.color = E, D.setMessage(`
2366
+ A = new J(), A.closed = !1, L.use(A), A.color = E, D.setMessage(`
2355
2367
  \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((l, m) => {
2356
2368
  A.startPoint = B, m.drawLine(l, A.startPoint);
2357
2369
  }), r();
@@ -2360,11 +2372,11 @@ async function HD() {
2360
2372
  }
2361
2373
  );
2362
2374
  let y = i.GetCurrentMxCAD();
2363
- const b = T(
2375
+ const b = k(
2364
2376
  D,
2365
2377
  () => {
2366
2378
  F.point1 = B, F.point2 = D.value(), F.point3 = n;
2367
- let l = new iD();
2379
+ let l = new DD();
2368
2380
  l.computeArc(F.point1.x, F.point1.y, F.point3.x, F.point3.y, F.point2.x, F.point2.y), y.DrawEntity(l);
2369
2381
  },
2370
2382
  () => {
@@ -2376,70 +2388,70 @@ async function HD() {
2376
2388
  return !0;
2377
2389
  }
2378
2390
  );
2379
- t();
2391
+ e();
2380
2392
  }
2381
2393
  h.on("init", () => {
2382
2394
  h.addCommand("Mx_Arc", HD);
2383
2395
  });
2384
2396
  function ND() {
2385
- const E = new k(), D = new DC();
2397
+ const E = new T(), D = new DC();
2386
2398
  D.closed = !1, L.use(D), E.setMessage(`
2387
2399
  \u6307\u5B9A\u692D\u5706\u7684\u8F74\u7AEF\u70B9`), E.setKeyWords("[\u4E2D\u5FC3\u70B9(C)]");
2388
2400
  let C, B = new THREE.Vector3();
2389
- T(
2401
+ k(
2390
2402
  E,
2391
2403
  () => {
2392
2404
  C = E.value(), E.setUserDraw((s, o) => {
2393
- const a = new THREE.Line3(C, s);
2394
- a.getCenter(B), D.center = B, D.xRadius = a.distance() / 2, D.yRadius = D.xRadius, D.rotation = DD(s.x, s.y, B.x, B.y), o.drawLine(s, C);
2405
+ const u = new THREE.Line3(C, s);
2406
+ u.getCenter(B), D.center = B, D.xRadius = u.distance() / 2, D.yRadius = D.xRadius, D.rotation = AD(s.x, s.y, B.x, B.y), o.drawLine(s, C);
2395
2407
  }), E.setMessage(`
2396
2408
  \u6307\u5B9A\u692D\u5706\u5F27\u8F74\u7684\u53E6\u4E00\u4E2A\u7AEF\u70B9:`), E.setKeyWords(""), A();
2397
2409
  },
2398
2410
  () => {
2399
2411
  }
2400
2412
  )();
2401
- const A = T(
2413
+ const A = k(
2402
2414
  E,
2403
2415
  () => {
2404
2416
  E.setUserDraw((s, o) => {
2405
2417
  D.yRadius = B.distanceTo(s), o.drawLine(B, s), o.drawCustomEntity(D);
2406
2418
  }), E.setMessage(`
2407
- \u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), E.setKeyWords(""), t();
2419
+ \u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), E.setKeyWords(""), e();
2408
2420
  },
2409
2421
  () => {
2410
2422
  }
2411
- ), t = T(
2423
+ ), e = k(
2412
2424
  E,
2413
2425
  () => {
2414
2426
  E.setMessage(`
2415
2427
  \u6307\u5B9A\u8D77\u59CB\u89D2\u5EA6`), E.setKeyWords(""), E.setUserDraw((s, o) => {
2416
- D.startAngle = DD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2417
- }), e();
2428
+ D.startAngle = AD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2429
+ }), t();
2418
2430
  },
2419
2431
  () => {
2420
2432
  }
2421
- ), e = T(
2433
+ ), t = k(
2422
2434
  E,
2423
2435
  () => {
2424
2436
  E.setUserDraw((s, o) => {
2425
- D.endAngle = DD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2437
+ D.endAngle = AD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2426
2438
  }), E.setMessage(`
2427
2439
  \u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), E.setKeyWords(""), r();
2428
2440
  },
2429
2441
  () => {
2430
2442
  }
2431
- ), r = T(
2443
+ ), r = k(
2432
2444
  E,
2433
2445
  () => {
2434
2446
  let s = new w(D.xRadius, 0, 0);
2435
- s.rotateBy(D.rotation, w.kZAxis), i.GetCurrentMxCAD().DrawEntity(new rD(D.center.x, D.center.y, 0, s.x, s.y, 0, D.yRadius / D.xRadius, D.startAngle, D.endAngle));
2447
+ s.rotateBy(D.rotation, w.kZAxis), i.GetCurrentMxCAD().DrawEntity(new uD(D.center.x, D.center.y, 0, s.x, s.y, 0, D.yRadius / D.xRadius, D.startAngle, D.endAngle));
2436
2448
  },
2437
2449
  () => {
2438
2450
  }
2439
2451
  );
2440
2452
  }
2441
2453
  function gC() {
2442
- const E = new k(), D = new CC(), C = new BC();
2454
+ const E = new T(), D = new CC(), C = new BC();
2443
2455
  let B = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2444
2456
  C.setColor(B), E.setMessage(`
2445
2457
  \u70B9\u51FB\u5F00\u59CB\u7ED8\u5236\u692D\u5706:`), E.go(() => {
@@ -2447,7 +2459,7 @@ function gC() {
2447
2459
  C.point2 = F, D.drawCustomEntity(C);
2448
2460
  }), E.setUserDraw(D), E.setMessage(`
2449
2461
  \u518D\u6B21\u70B9\u51FB\u7ED3\u675F\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2450
- i.GetCurrentMxCAD().DrawEntity(new rD(C.center.x, C.center.y, 0, C.xRadius, 0, 0, C.yRadius / C.xRadius));
2462
+ i.GetCurrentMxCAD().DrawEntity(new uD(C.center.x, C.center.y, 0, C.xRadius, 0, 0, C.yRadius / C.xRadius));
2451
2463
  });
2452
2464
  });
2453
2465
  }
@@ -2455,30 +2467,86 @@ h.on("init", () => {
2455
2467
  h.addCommand("Mx_EllipseArc", ND), h.addCommand("Mx_Ellipse", gC);
2456
2468
  });
2457
2469
  async function qD() {
2458
- let E = sD.getCurrentSelect();
2470
+ let E = $.getCurrentSelect();
2459
2471
  if (E.length > 0) {
2460
2472
  E.forEach((C) => {
2461
2473
  C.erase();
2462
2474
  });
2463
2475
  return;
2464
2476
  }
2465
- let D = new OD();
2477
+ let D = new BD();
2466
2478
  !await D.userSelect(`
2467
2479
  \u9009\u62E9\u5220\u9664\u5BF9\u8C61`) || D.forEach((C) => {
2468
2480
  C.erase();
2469
2481
  });
2470
2482
  }
2471
- h.addCommand("Mx_Erase", qD);
2472
- const bC = async (E, D, C) => {
2483
+ async function bC() {
2484
+ let E;
2485
+ for (; E = $.getCurrentSelect(), !(E.length > 0); ) {
2486
+ let F = new BD();
2487
+ if (!await F.userSelect(`
2488
+ \u9009\u62E9\u590D\u5236\u5BF9\u8C61`) || (E = F.getIds(), E.length == 0))
2489
+ return;
2490
+ break;
2491
+ }
2492
+ let D = new T();
2493
+ D.setMessage("\u6307\u5B9A\u57FA\u70B9");
2494
+ let C = await D.go();
2495
+ if (!C)
2496
+ return;
2497
+ D.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), D.setBasePt(C), D.setUseBasePt(!0), D.setUserDraw((F, A) => {
2498
+ for (let e = 0; e < E.length && e < 10; e++) {
2499
+ let t = E[e].clone();
2500
+ !t || (t.Move(new a(C), new a(F)), A.drawMcDbEntity(t));
2501
+ }
2502
+ });
2503
+ let B = await D.go();
2504
+ if (!!B)
2505
+ for (let F = 0; F < E.length; F++) {
2506
+ let A = E[F].clone();
2507
+ !A || (A.Move(new a(C), new a(B)), i.GetCurrentMxCAD().DrawEntity(A));
2508
+ }
2509
+ }
2510
+ async function xC() {
2511
+ let E;
2512
+ for (; E = $.getCurrentSelect(), !(E.length > 0); ) {
2513
+ let F = new BD();
2514
+ if (!await F.userSelect(`
2515
+ \u9009\u62E9\u79FB\u52A8\u5BF9\u8C61`) || (E = F.getIds(), E.length == 0))
2516
+ return;
2517
+ break;
2518
+ }
2519
+ let D = new T();
2520
+ D.setMessage("\u6307\u5B9A\u57FA\u70B9");
2521
+ let C = await D.go();
2522
+ if (!C)
2523
+ return;
2524
+ D.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), D.setBasePt(C), D.setUseBasePt(!0), D.setUserDraw((F, A) => {
2525
+ for (let e = 0; e < E.length && e < 10; e++) {
2526
+ let t = E[e].clone();
2527
+ !t || (t.Move(new a(C), new a(F)), A.drawMcDbEntity(t));
2528
+ }
2529
+ });
2530
+ let B = await D.go();
2531
+ if (!!B)
2532
+ for (let F = 0; F < E.length; F++) {
2533
+ let A = E[F].getMcDbObject();
2534
+ !A || A.Move(new a(C), new a(B));
2535
+ }
2536
+ }
2537
+ h.on("init", () => {
2538
+ h.addCommand("Mx_Erase", qD), h.addCommand("Mx_Copy", bC), h.addCommand("Mx_Move", xC);
2539
+ });
2540
+ const fC = async (E, D, C) => {
2473
2541
  const { locateFile: B } = C, F = B(E + ".js");
2474
2542
  return await ID(F), await globalThis[D](C);
2475
2543
  };
2476
- function xC(E) {
2544
+ function MC(E) {
2477
2545
  return typeof ResizeObserver == "function" ? new ResizeObserver(E) : null;
2478
2546
  }
2479
- function fC(E, D) {
2547
+ function TC(E, D) {
2480
2548
  const C = () => requestAnimationFrame(D);
2481
- let B = xC(C);
2549
+ let B = MC(C);
2482
2550
  if (B) {
2483
2551
  B.observe(E);
2484
2552
  return;
@@ -2488,7 +2556,7 @@ function fC(E, D) {
2488
2556
  return;
2489
2557
  }
2490
2558
  }
2491
- function MC(E, D) {
2559
+ function kC(E, D) {
2492
2560
  let C = null;
2493
2561
  return function(...B) {
2494
2562
  C || (C = setTimeout(() => {
@@ -2496,52 +2564,52 @@ function MC(E, D) {
2496
2564
  }, D));
2497
2565
  };
2498
2566
  }
2499
- class K {
2567
+ class H {
2500
2568
  static onloadWasmMxDraw3dModel;
2501
2569
  canvas;
2502
2570
  constructor(D) {
2503
2571
  const C = () => {
2504
- const a = this.canvas.parentElement?.clientWidth || window.innerWidth, p = this.canvas.parentElement?.clientHeight || window.innerHeight;
2505
- let d = Math.min(a, window.screen.availWidth), n = Math.min(p, window.screen.availHeight);
2506
- d = Math.max(A, d), n = Math.max(t, n), this.canvas.style.width = d + 1 + "px", this.canvas.style.height = n + "px";
2572
+ const u = this.canvas.parentElement?.clientWidth || window.innerWidth, p = this.canvas.parentElement?.clientHeight || window.innerHeight;
2573
+ let d = Math.min(u, window.screen.availWidth), n = Math.min(p, window.screen.availHeight);
2574
+ d = Math.max(A, d), n = Math.max(e, n), this.canvas.style.width = d + 1 + "px", this.canvas.style.height = n + "px";
2507
2575
  const c = window.devicePixelRatio || 1;
2508
2576
  this.canvas.width = d * c, this.canvas.height = n * c;
2509
- }, B = MC(C, 50), {
2577
+ }, B = kC(C, 50), {
2510
2578
  canvas: F,
2511
2579
  minWidth: A = 300,
2512
- minHeight: t = 300,
2513
- updateCanvasSize: e = B,
2580
+ minHeight: e = 300,
2581
+ updateCanvasSize: t = B,
2514
2582
  ...r
2515
2583
  } = D;
2516
2584
  let s = typeof F == "string" ? document.querySelectorAll(F)[0] : F, o = s.getContext("webgl2", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 });
2517
2585
  o == null && (o = s.getContext("webgl", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 })), this.canvas = s, this.ctx = o, r.canvas = this.canvas;
2518
- for (let a in r)
2519
- this[a] = r[a];
2586
+ for (let u in r)
2587
+ this[u] = r[u];
2520
2588
  if (this.canvas instanceof HTMLCanvasElement) {
2521
- const a = this.canvas.parentElement || document.body;
2522
- fC(a, e);
2589
+ const u = this.canvas.parentElement || document.body;
2590
+ TC(u, t);
2523
2591
  } else
2524
2592
  console.error("createMxDraw3d canvas \u53C2\u6570\u4E0D\u6B63\u786E \u65E0\u6CD5\u83B7\u53D6\u5230canvas\u5143\u7D20");
2525
- window.onresize = C, C(), bC("mxdraw3d_min", "mxdraw3d", this).then(() => {
2526
- K.onloadWasmMxDraw3dModel && K.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = e, this.open3DFile = (a) => {
2593
+ window.onresize = C, C(), fC("mxdraw3d_min", "mxdraw3d", this).then(() => {
2594
+ H.onloadWasmMxDraw3dModel && H.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = t, this.open3DFile = (u) => {
2527
2595
  const p = new FileReader();
2528
2596
  p.onload = () => {
2529
2597
  if (!!p.result && p.result instanceof ArrayBuffer) {
2530
2598
  var d = new Uint8Array(p.result);
2531
2599
  const n = this._malloc(d.length);
2532
- this.HEAPU8.set(d, n), this.openFromMemory(a.name, n, d.length, !0), this.displayGround(!0), this.canvas.focus();
2600
+ this.HEAPU8.set(d, n), this.openFromMemory(u.name, n, d.length, !0), this.displayGround(!0), this.canvas.focus();
2533
2601
  }
2534
- }, p.readAsArrayBuffer(a);
2602
+ }, p.readAsArrayBuffer(u);
2535
2603
  };
2536
2604
  });
2537
2605
  }
2538
2606
  }
2539
- function TC(E, D) {
2607
+ function PC(E, D) {
2540
2608
  return new Promise(async (C, B) => {
2541
2609
  try {
2542
2610
  E.locateFile || (E.locateFile = oC);
2543
- const F = new K(E);
2544
- K.onloadWasmMxDraw3dModel = () => {
2611
+ const F = new H(E);
2612
+ H.onloadWasmMxDraw3dModel = () => {
2545
2613
  C(F), D && D(F);
2546
2614
  };
2547
2615
  } catch (F) {
@@ -2549,56 +2617,56 @@ function TC(E, D) {
2549
2617
  }
2550
2618
  });
2551
2619
  }
2552
- const PC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2620
+ const RC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2553
2621
  __proto__: null,
2554
- b64Encode: dD,
2555
- b64Decode: hD,
2556
- saveAsFileDialog: wD,
2557
- downloadFile: yD,
2558
- downloadFileFromUrl: gD,
2622
+ b64Encode: gD,
2623
+ b64Decode: bD,
2624
+ saveAsFileDialog: xD,
2625
+ downloadFile: fD,
2626
+ downloadFileFromUrl: MD,
2559
2627
  MxTools: _,
2560
- McGePoint3d: u,
2628
+ McGePoint3d: a,
2561
2629
  McGeVector3d: w,
2562
- McGeMatrix3d: U,
2630
+ McGeMatrix3d: V,
2563
2631
  McGeLongArray: FC,
2564
- McGeStringArray: bD,
2632
+ McGeStringArray: TD,
2565
2633
  McGePoint3dArray: AC,
2566
2634
  getFilterImp: z,
2567
2635
  McDrawResbuf: q,
2568
- MxCADUtilityClass: vD,
2569
- MxCADUtility: sD,
2570
- MxCADSelectionSet: OD,
2571
- McRxObject: j,
2636
+ MxCADUtilityClass: OD,
2637
+ MxCADUtility: $,
2638
+ MxCADSelectionSet: BD,
2639
+ McRxObject: G,
2572
2640
  McObjectIdType: f,
2573
2641
  McObjectId: M,
2574
2642
  McDbObject: v,
2575
2643
  get McDb() {
2576
- return BD;
2644
+ return tD;
2577
2645
  },
2578
- McCmColor: G,
2646
+ McCmColor: I,
2579
2647
  McDbLayerTableRecord: iC,
2580
- McDbLayerTable: xD,
2581
- McDbLinetypeTable: fD,
2582
- McDbTextStyleTable: MD,
2583
- McDbDatabase: FD,
2584
- McDbBlockTableRecordIterator: TD,
2585
- McDbBlockTableRecord: Y,
2586
- McDbBlockTableIterator: kD,
2587
- McDbBlockTable: PD,
2588
- McDbEntity: H,
2648
+ McDbLayerTable: kD,
2649
+ McDbLinetypeTable: PD,
2650
+ McDbTextStyleTable: SD,
2651
+ McDbDatabase: oD,
2652
+ McDbBlockTableRecordIterator: RD,
2653
+ McDbBlockTableRecord: CD,
2654
+ McDbBlockTableIterator: LD,
2655
+ McDbBlockTable: vD,
2656
+ McDbEntity: j,
2589
2657
  McDbCurve: N,
2590
- McDbLine: Z,
2591
- McDbText: ED,
2592
- McDbMText: AD,
2658
+ McDbLine: Y,
2659
+ McDbText: iD,
2660
+ McDbMText: Q,
2593
2661
  McDbCircle: O,
2594
- McDbPolyline: tD,
2595
- McDbBlockReference: RD,
2596
- McDbDimension: eD,
2597
- McDbAlignedDimension: SD,
2598
- McDbRotatedDimension: LD,
2599
- McDbArc: iD,
2600
- McDbEllipse: rD,
2601
- McObject: V,
2662
+ McDbPolyline: X,
2663
+ McDbBlockReference: rD,
2664
+ McDbDimension: aD,
2665
+ McDbAlignedDimension: sD,
2666
+ McDbRotatedDimension: nD,
2667
+ McDbArc: DD,
2668
+ McDbEllipse: uD,
2669
+ McObject: K,
2602
2670
  McAppType: jD,
2603
2671
  MxCppType: GD,
2604
2672
  get MxCpp() {
@@ -2607,79 +2675,79 @@ const PC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2607
2675
  loadMxCADassembly: WD,
2608
2676
  createMxCad: cC,
2609
2677
  drawText: mC,
2610
- drawCircle: zD,
2611
- drawLine: UD,
2678
+ drawCircle: UD,
2679
+ drawLine: zD,
2612
2680
  drawMText: dC,
2613
2681
  drawPolyLine: VD,
2614
2682
  drawPolygon: KD,
2615
2683
  drawArc: HD,
2616
2684
  drawEllipticalArc: ND,
2617
2685
  mxErase: qD,
2618
- MxDraw3d: K,
2619
- loadMxCADassembly3d: TC
2686
+ MxDraw3d: H,
2687
+ loadMxCADassembly3d: PC
2620
2688
  }, Symbol.toStringTag, { value: "Module" }));
2621
2689
  export {
2622
2690
  jD as McAppType,
2623
- G as McCmColor,
2624
- BD as McDb,
2625
- SD as McDbAlignedDimension,
2626
- iD as McDbArc,
2627
- RD as McDbBlockReference,
2628
- PD as McDbBlockTable,
2629
- kD as McDbBlockTableIterator,
2630
- Y as McDbBlockTableRecord,
2631
- TD as McDbBlockTableRecordIterator,
2691
+ I as McCmColor,
2692
+ tD as McDb,
2693
+ sD as McDbAlignedDimension,
2694
+ DD as McDbArc,
2695
+ rD as McDbBlockReference,
2696
+ vD as McDbBlockTable,
2697
+ LD as McDbBlockTableIterator,
2698
+ CD as McDbBlockTableRecord,
2699
+ RD as McDbBlockTableRecordIterator,
2632
2700
  O as McDbCircle,
2633
2701
  N as McDbCurve,
2634
- FD as McDbDatabase,
2635
- eD as McDbDimension,
2636
- rD as McDbEllipse,
2637
- H as McDbEntity,
2638
- xD as McDbLayerTable,
2702
+ oD as McDbDatabase,
2703
+ aD as McDbDimension,
2704
+ uD as McDbEllipse,
2705
+ j as McDbEntity,
2706
+ kD as McDbLayerTable,
2639
2707
  iC as McDbLayerTableRecord,
2640
- Z as McDbLine,
2641
- fD as McDbLinetypeTable,
2642
- AD as McDbMText,
2708
+ Y as McDbLine,
2709
+ PD as McDbLinetypeTable,
2710
+ Q as McDbMText,
2643
2711
  v as McDbObject,
2644
- tD as McDbPolyline,
2645
- LD as McDbRotatedDimension,
2646
- ED as McDbText,
2647
- MD as McDbTextStyleTable,
2712
+ X as McDbPolyline,
2713
+ nD as McDbRotatedDimension,
2714
+ iD as McDbText,
2715
+ SD as McDbTextStyleTable,
2648
2716
  q as McDrawResbuf,
2649
2717
  FC as McGeLongArray,
2650
- U as McGeMatrix3d,
2651
- u as McGePoint3d,
2718
+ V as McGeMatrix3d,
2719
+ a as McGePoint3d,
2652
2720
  AC as McGePoint3dArray,
2653
- bD as McGeStringArray,
2721
+ TD as McGeStringArray,
2654
2722
  w as McGeVector3d,
2655
- V as McObject,
2723
+ K as McObject,
2656
2724
  M as McObjectId,
2657
2725
  f as McObjectIdType,
2658
- j as McRxObject,
2659
- OD as MxCADSelectionSet,
2660
- sD as MxCADUtility,
2661
- vD as MxCADUtilityClass,
2726
+ G as McRxObject,
2727
+ BD as MxCADSelectionSet,
2728
+ $ as MxCADUtility,
2729
+ OD as MxCADUtilityClass,
2662
2730
  i as MxCpp,
2663
2731
  GD as MxCppType,
2664
- K as MxDraw3d,
2732
+ H as MxDraw3d,
2665
2733
  _ as MxTools,
2666
- hD as b64Decode,
2667
- dD as b64Encode,
2734
+ bD as b64Decode,
2735
+ gD as b64Encode,
2668
2736
  cC as createMxCad,
2669
- PC as default,
2670
- yD as downloadFile,
2671
- gD as downloadFileFromUrl,
2737
+ RC as default,
2738
+ fD as downloadFile,
2739
+ MD as downloadFileFromUrl,
2672
2740
  HD as drawArc,
2673
- zD as drawCircle,
2741
+ UD as drawCircle,
2674
2742
  ND as drawEllipticalArc,
2675
- UD as drawLine,
2743
+ zD as drawLine,
2676
2744
  dC as drawMText,
2677
2745
  VD as drawPolyLine,
2678
2746
  KD as drawPolygon,
2679
2747
  mC as drawText,
2680
2748
  z as getFilterImp,
2681
2749
  WD as loadMxCADassembly,
2682
- TC as loadMxCADassembly3d,
2750
+ PC as loadMxCADassembly3d,
2683
2751
  qD as mxErase,
2684
- wD as saveAsFileDialog
2752
+ xD as saveAsFileDialog
2685
2753
  };