mxcad 1.0.67 → 1.0.68

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/mxcad.es.js CHANGED
@@ -1,11 +1,11 @@
1
- import qD, { MxFun as d, MrxDbgUiPrPoint as T, MxCursorType as $D, MrxDbgUtils as JD, store as oD, loadCoreCode as ZD, MxPaintBrush as R, MrxDbgUiPrBaseReturn as x, MxDbCircleShape as aD, MxDbLine as J, MxDbPolyline as YD, MxDbCircleArc as q, Mx3PointArc as QD, MxDbEllipseShape as XD, McEdGetPointWorldDrawObject as DC, MxDbEllipse as CC } from "mxdraw";
2
- function uD(E) {
1
+ import qD, { MxFun as d, MrxDbgUiPrPoint as S, MxCursorType as _D, MrxDbgUtils as $D, store as aD, loadCoreCode as JD, MxPaintBrush as R, MrxDbgUiPrBaseReturn as x, MxDbCircleShape as uD, MxDbLine as J, MxDbPolyline as ZD, MxDbCircleArc as _, Mx3PointArc as YD, MxDbEllipseShape as QD, McEdGetPointWorldDrawObject as XD, MxDbEllipse as DC } from "mxdraw";
2
+ function lD(E) {
3
3
  return btoa(unescape(encodeURIComponent(E)));
4
4
  }
5
- function lD(E) {
5
+ function cD(E) {
6
6
  return decodeURIComponent(escape(atob(E)));
7
7
  }
8
- async function cD({
8
+ async function mD({
9
9
  blob: E,
10
10
  filename: D = "",
11
11
  types: C = [
@@ -46,24 +46,24 @@ async function cD({
46
46
  console.error(B.name, B.message);
47
47
  }
48
48
  }
49
- function mD(E, D) {
49
+ function pD(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 pD(E, D) {
53
+ function dD(E, D) {
54
54
  fetch(E).then((C) => C.blob()).then((C) => {
55
55
  const B = document.createElement("a");
56
56
  B.href = window.URL.createObjectURL(C), B.download = D, B.click();
57
57
  });
58
58
  }
59
- const H = {
60
- b64Encode: uD,
61
- b64Decode: lD,
62
- saveAsFileDialog: cD,
63
- downloadFile: mD,
64
- downloadFileFromUrl: pD
59
+ const N = {
60
+ b64Encode: lD,
61
+ b64Decode: cD,
62
+ saveAsFileDialog: mD,
63
+ downloadFile: pD,
64
+ downloadFileFromUrl: dD
65
65
  };
66
- class BC {
66
+ class CC {
67
67
  z = "D2BBB6A18140C6DF814181428143CDF2D5C9C8FDC9CFCFC2D8A2B2BBD3EB8144D8A4B3F38145D7A8C7D2D8A7CAC08146C7F0B1FBD2B5B4D4B6ABCBBFD8A9814781488149B6AA814AC1BDD1CF814BC9A5D8AD814CB8F6D1BEE3DCD6D0814D814EB7E1814FB4AE8150C1D98151D8BC8152CDE8B5A4CEAAD6F78153C0F6BED9D8AF815481558156C4CB8157BEC38158D8B1C3B4D2E58159D6AECEDAD5A7BAF5B7A6C0D6815AC6B9C5D2C7C7815BB9D4815CB3CBD2D2815D815ED8BFBEC5C6F2D2B2CFB0CFE7815F816081618162CAE981638164D8C081658166816781688169816AC2F2C2D2816BC8E9816C816D816E816F817081718172817381748175C7AC8176817781788179817A817B817CC1CB817DD3E8D5F9817ECAC2B6FED8A1D3DABFF78180D4C6BBA5D8C1CEE5BEAE81818182D8A88183D1C7D0A9818481858186D8BDD9EFCDF6BFBA8187BDBBBAA5D2E0B2FABAE0C4B68188CFEDBEA9CDA4C1C18189818A818BC7D7D9F1818CD9F4818D818E818F8190C8CBD8E9819181928193D2DACAB2C8CAD8ECD8EAD8C6BDF6C6CDB3F08194D8EBBDF1BDE98195C8D4B4D381968197C2D88198B2D6D7D0CACBCBFBD5CCB8B6CFC98199819A819BD9DAD8F0C7AA819CD8EE819DB4FAC1EED2D4819E819FD8ED81A0D2C7D8EFC3C781A181A281A3D1F681A4D6D9D8F281A5D8F5BCFEBCDB81A681A781A8C8CE81A9B7DD81AAB7C281ABC6F381AC81AD81AE81AF81B081B181B2D8F8D2C181B381B4CEE9BCBFB7FCB7A5D0DD81B581B681B781B881B9D6DAD3C5BBEFBBE1D8F181BA81BBC9A1CEB0B4AB81BCD8F381BDC9CBD8F6C2D7D8F781BE81BFCEB1D8F981C081C181C2B2AEB9C081C3D9A381C4B0E981C5C1E681C6C9EC81C7CBC581C8CBC6D9A481C981CA81CB81CC81CDB5E881CE81CFB5AB81D081D181D281D381D481D5CEBBB5CDD7A1D7F4D3D381D6CCE581D7BACE81D8D9A2D9DCD3E0D8FDB7F0D7F7D8FED8FAD9A1C4E381D981DAD3B6D8F4D9DD81DBD8FB81DCC5E581DD81DEC0D081DF81E0D1F0B0DB81E181E2BCD1D9A681E3D9A581E481E581E681E7D9ACD9AE81E8D9ABCAB981E981EA81EBD9A9D6B681EC81ED81EEB3DED9A881EFC0FD81F0CACC81F1D9AA81F2D9A781F381F4D9B081F581F6B6B181F781F881F9B9A981FAD2C081FB81FCCFC081FD81FEC2C28240BDC4D5ECB2E0C7C8BFEBD9AD8241D9AF8242CEEABAEE82438244824582468247C7D682488249824A824B824C824D824E824F8250B1E3825182528253B4D9B6EDD9B48254825582568257BFA182588259825AD9DEC7CEC0FED9B8825B825C825D825E825FCBD7B7FD8260D9B58261D9B7B1A3D3E1D9B98262D0C58263D9B682648265D9B18266D9B2C1A9D9B382678268BCF3D0DEB8A98269BEE3826AD9BD826B826C826D826ED9BA826FB0B3827082718272D9C28273827482758276827782788279827A827B827C827D827E8280D9C4B1B68281D9BF82828283B5B98284BEF3828582868287CCC8BAF2D2D08288D9C38289828ABDE8828BB3AB828C828D828ED9C5BEEB828FD9C6D9BBC4DF8290D9BED9C1D9C0829182928293829482958296829782988299829A829BD5AE829CD6B5829DC7E3829E829F82A082A1D9C882A282A382A4BCD9D9CA82A582A682A7D9BC82A8D9CBC6AB82A982AA82AB82AC82ADD9C982AE82AF82B082B1D7F682B2CDA382B382B482B582B682B782B882B982BABDA182BB82BC82BD82BE82BF82C0D9CC82C182C282C382C482C582C682C782C882C9C5BCCDB582CA82CB82CCD9CD82CD82CED9C7B3A5BFFE82CF82D082D182D2B8B582D382D4C0FC82D582D682D782D8B0F882D982DA82DB82DC82DD82DE82DF82E082E182E282E382E482E582E682E782E882E982EA82EB82EC82EDB4F682EED9CE82EFD9CFB4A2D9D082F082F1B4DF82F282F382F482F582F6B0C182F782F882F982FA82FB82FC82FDD9D1C9B582FE8340834183428343834483458346834783488349834A834B834C834D834E834F83508351CFF1835283538354835583568357D9D283588359835AC1C5835B835C835D835E835F836083618362836383648365D9D6C9AE8366836783688369D9D5D9D4D9D7836A836B836C836DCBDB836EBDA9836F8370837183728373C6A7837483758376837783788379837A837B837C837DD9D3D9D8837E83808381D9D9838283838384838583868387C8E583888389838A838B838C838D838E838F839083918392839383948395C0DC8396839783988399839A839B839C839D839E839F83A083A183A283A383A483A583A683A783A883A983AA83AB83AC83AD83AE83AF83B083B183B2B6F9D8A3D4CA83B3D4AAD0D6B3E4D5D783B4CFC8B9E283B5BFCB83B6C3E283B783B883B9B6D283BA83BBCDC3D9EED9F083BC83BD83BEB5B383BFB6B583C083C183C283C383C4BEA483C583C6C8EB83C783C8C8AB83C983CAB0CBB9ABC1F9D9E283CBC0BCB9B283CCB9D8D0CBB1F8C6E4BEDFB5E4D7C883CDD1F8BCE6CADE83CE83CFBCBDD9E6D8E783D083D1C4DA83D283D3B8D4C8BD83D483D5B2E1D4D983D683D783D883D9C3B083DA83DBC3E1DAA2C8DF83DCD0B483DDBEFCC5A983DE83DF83E0B9DA83E1DAA383E2D4A9DAA483E383E483E583E683E7D9FBB6AC83E883E9B7EBB1F9D9FCB3E5BEF683EABFF6D2B1C0E483EB83EC83EDB6B3D9FED9FD83EE83EFBEBB83F083F183F2C6E083F3D7BCDAA183F4C1B983F5B5F2C1E883F683F7BCF583F8B4D583F983FA83FB83FC83FD83FE844084418442C1DD8443C4FD84448445BCB8B7B284468447B7EF84488449844A844B844C844DD9EC844EC6BE844FBFADBBCB84508451B5CA8452DBC9D0D78453CDB9B0BCB3F6BBF7DBCABAAF8454D4E4B5B6B5F3D8D6C8D084558456B7D6C7D0D8D78457BFAF84588459DBBBD8D8845A845BD0CCBBAE845C845D845EEBBEC1D0C1F5D4F2B8D5B4B4845FB3F584608461C9BE846284638464C5D0846584668467C5D9C0FB8468B1F08469D8D9B9CE846AB5BD846B846CD8DA846D846ED6C6CBA2C8AFC9B2B4CCBFCC846FB9F48470D8DBD8DCB6E7BCC1CCEA847184728473847484758476CFF78477D8DDC7B084788479B9D0BDA3847A847BCCDE847CC6CA847D847E848084818482D8E08483D8DE84848485D8DF848684878488B0FE8489BEE7848ACAA3BCF4848B848C848D848EB8B1848F8490B8EE849184928493849484958496849784988499849AD8E2849BBDCB849CD8E4D8E3849D849E849F84A084A1C5FC84A284A384A484A584A684A784A8D8E584A984AAD8E684AB84AC84AD84AE84AF84B084B1C1A684B2C8B0B0ECB9A6BCD3CEF1DBBDC1D384B384B484B584B6B6AFD6FAC5ACBDD9DBBEDBBF84B784B884B9C0F8BEA2C0CD84BA84BB84BC84BD84BE84BF84C084C184C284C3DBC0CAC684C484C584C6B2AA84C784C884C9D3C284CAC3E384CBD1AB84CC84CD84CE84CFDBC284D0C0D584D184D284D3DBC384D4BFB184D584D684D784D884D984DAC4BC84DB84DC84DD84DEC7DA84DF84E084E184E284E384E484E584E684E784E884E9DBC484EA84EB84EC84ED84EE84EF84F084F1D9E8C9D784F284F384F4B9B4CEF0D4C884F584F684F784F8B0FCB4D284F9D0D984FA84FB84FC84FDD9E984FEDECBD9EB8540854185428543D8B0BBAFB1B18544B3D7D8CE85458546D4D185478548BDB3BFEF8549CFBB854A854BD8D0854C854D854EB7CB854F85508551D8D185528553855485558556855785588559855A855BC6A5C7F8D2BD855C855DD8D2C4E4855ECAAE855FC7A78560D8A68561C9FDCEE7BBDCB0EB856285638564BBAAD0AD8565B1B0D7E4D7BF8566B5A5C2F4C4CF85678568B2A98569B2B7856AB1E5DFB2D5BCBFA8C2ACD8D5C2B1856BD8D4CED4856CDAE0856DCEC0856E856FD8B4C3AED3A1CEA38570BCB4C8B4C2D18571BEEDD0B68572DAE18573857485758576C7E485778578B3A78579B6F2CCFCC0FA857A857BC0F7857CD1B9D1E1D8C7857D857E85808581858285838584B2DE85858586C0E58587BAF185888589D8C8858AD4AD858B858CCFE1D8C9858DD8CACFC3858EB3F8BEC7858F859085918592D8CB8593859485958596859785988599DBCC859A859B859C859DC8A5859E859F85A0CFD885A1C8FEB2CE85A285A385A485A585A6D3D6B2E6BCB0D3D1CBABB7B485A785A885A9B7A285AA85ABCAE585ACC8A1CADCB1E4D0F085ADC5D185AE85AF85B0DBC5B5FE85B185B2BFDAB9C5BEE4C1ED85B3DFB6DFB5D6BBBDD0D5D9B0C8B6A3BFC9CCA8DFB3CAB7D3D285B4D8CFD2B6BAC5CBBECCBE85B5DFB7B5F0DFB485B685B785B8D3F585B9B3D4B8F785BADFBA85BBBACFBCAAB5F585BCCDACC3FBBAF3C0F4CDC2CFF2DFB8CFC585BDC2C0DFB9C2F085BE85BF85C0BEFD85C1C1DFCDCCD2F7B7CDDFC185C2DFC485C385C4B7F1B0C9B6D6B7D485C5BAACCCFDBFD4CBB1C6F485C6D6A8DFC585C7CEE2B3B385C885C9CEFCB4B585CACEC7BAF085CBCEE185CCD1BD85CD85CEDFC085CF85D0B4F485D1B3CA85D2B8E6DFBB85D385D485D585D6C4C585D7DFBCDFBDDFBEC5BBDFBFDFC2D4B1DFC385D8C7BACED885D985DA85DB85DC85DDC4D885DEDFCA85DFDFCF85E0D6DC85E185E285E385E485E585E685E785E8DFC9DFDACEB685E9BAC7DFCEDFC8C5DE85EA85EBC9EBBAF4C3FC85EC85EDBED785EEDFC685EFDFCD85F0C5D885F185F285F385F4D5A6BACD85F5BECCD3BDB8C085F6D6E485F7DFC7B9BEBFA785F885F9C1FCDFCBDFCC85FADFD085FB85FC85FD85FE8640DFDBDFE58641DFD7DFD6D7C9DFE3DFE4E5EBD2A7DFD28642BFA98643D4DB8644BFC8DFD4864586468647CFCC86488649DFDD864AD1CA864BDFDEB0A7C6B7DFD3864CBAE5864DB6DFCDDBB9FED4D5864E864FDFDFCFECB0A5DFE7DFD1D1C6DFD5DFD8DFD9DFDC8650BBA98651DFE0DFE18652DFE2DFE6DFE8D3B486538654865586568657B8E7C5B6DFEAC9DAC1A8C4C486588659BFDECFF8865A865B865CD5DCDFEE865D865E865F866086618662B2B88663BADFDFEC8664DBC18665D1E48666866786688669CBF4B4BD866AB0A6866B866C866D866E866FDFF1CCC6DFF286708671DFED867286738674867586768677DFE986788679867A867BDFEB867CDFEFDFF0BBBD867D867EDFF386808681DFF48682BBA38683CADBCEA8E0A7B3AA8684E0A6868586868687E0A186888689868A868BDFFE868CCDD9DFFC868DDFFA868EBFD0D7C4868FC9CC86908691DFF8B0A186928693869486958696DFFD869786988699869ADFFBE0A2869B869C869D869E869FE0A886A086A186A286A3B7C886A486A5C6A1C9B6C0B2DFF586A686A7C5BE86A8D8C4DFF9C4F686A986AA86AB86AC86AD86AEE0A3E0A4E0A5D0A586AF86B0E0B4CCE486B1E0B186B2BFA6E0AFCEB9E0ABC9C686B386B4C0AEE0AEBAEDBAB0E0A986B586B686B7DFF686B8E0B386B986BAE0B886BB86BC86BDB4ADE0B986BE86BFCFB2BAC886C0E0B086C186C286C386C486C586C686C7D0FA86C886C986CA86CB86CC86CD86CE86CF86D0E0AC86D1D4FB86D2DFF786D3C5E786D4E0AD86D5D3F786D6E0B6E0B786D786D886D986DA86DBE0C4D0E186DC86DD86DEE0BC86DF86E0E0C9E0CA86E186E286E3E0BEE0AAC9A4E0C186E4E0B286E586E686E786E886E9CAC8E0C386EAE0B586EBCECB86ECCBC3E0CDE0C6E0C286EDE0CB86EEE0BAE0BFE0C086EF86F0E0C586F186F2E0C7E0C886F3E0CC86F4E0BB86F586F686F786F886F9CBD4E0D586FAE0D6E0D286FB86FC86FD86FE87408741E0D0BCCE87428743E0D18744B8C2D8C587458746874787488749874A874B874CD0EA874D874EC2EF874F8750E0CFE0BD875187528753E0D4E0D387548755E0D78756875787588759E0DCE0D8875A875B875CD6F6B3B0875DD7EC875ECBBB875F8760E0DA8761CEFB876287638764BAD987658766876787688769876A876B876C876D876E876F8770E0E1E0DDD2AD87718772877387748775E0E287768777E0DBE0D9E0DF87788779E0E0877A877B877C877D877EE0DE8780E0E4878187828783C6F7D8ACD4EBE0E6CAC98784878587868787E0E587888789878A878BB8C1878C878D878E878FE0E7E0E887908791879287938794879587968797E0E9E0E387988799879A879B879C879D879EBABFCCE7879F87A087A1E0EA87A287A387A487A587A687A787A887A987AA87AB87AC87AD87AE87AF87B0CFF987B187B287B387B487B587B687B787B887B987BA87BBE0EB87BC87BD87BE87BF87C087C187C2C8C287C387C487C587C6BDC087C787C887C987CA87CB87CC87CD87CE87CF87D087D187D287D3C4D287D487D587D687D787D887D987DA87DB87DCE0EC87DD87DEE0ED87DF87E0C7F4CBC487E1E0EEBBD8D8B6D2F2E0EFCDC587E2B6DA87E387E487E587E687E787E8E0F187E9D4B087EA87EBC0A7B4D187EC87EDCEA7E0F087EE87EF87F0E0F2B9CC87F187F2B9FACDBCE0F387F387F487F5C6D4E0F487F6D4B287F7C8A6E0F6E0F587F887F987FA87FB87FC87FD87FE8840884188428843884488458846884788488849E0F7884A884BCDC1884C884D884ECAA5884F885088518852D4DADBD7DBD98853DBD8B9E7DBDCDBDDB5D888548855DBDA8856885788588859885ADBDBB3A1DBDF885B885CBBF8885DD6B7885EDBE0885F886088618862BEF988638864B7BB8865DBD0CCAEBFB2BBB5D7F8BFD38866886788688869886ABFE9886B886CBCE1CCB3DBDEB0D3CEEBB7D8D7B9C6C2886D886EC0A4886FCCB98870DBE7DBE1C6BADBE38871DBE88872C5F7887388748875DBEA88768877DBE9BFC088788879887ADBE6DBE5887B887C887D887E8880B4B9C0ACC2A2DBE2DBE48881888288838884D0CDDBED88858886888788888889C0DDDBF2888A888B888C888D888E888F8890B6E28891889288938894DBF3DBD2B9B8D4ABDBEC8895BFD1DBF08896DBD18897B5E68898DBEBBFE58899889A889BDBEE889CDBF1889D889E889FDBF988A088A188A288A388A488A588A688A788A8B9A1B0A388A988AA88AB88AC88AD88AE88AFC2F188B088B1B3C7DBEF88B288B3DBF888B4C6D2DBF488B588B6DBF5DBF7DBF688B788B8DBFE88B9D3F2B2BA88BA88BB88BCDBFD88BD88BE88BF88C088C188C288C388C4DCA488C5DBFB88C688C788C888C9DBFA88CA88CB88CCDBFCC5E0BBF988CD88CEDCA388CF88D0DCA588D1CCC388D288D388D4B6D1DDC088D588D688D7DCA188D8DCA288D988DA88DBC7B588DC88DD88DEB6E988DF88E088E1DCA788E288E388E488E5DCA688E6DCA9B1A488E788E8B5CC88E988EA88EB88EC88EDBFB088EE88EF88F088F188F2D1DF88F388F488F588F6B6C288F788F888F988FA88FB88FC88FD88FE894089418942894389448945DCA88946894789488949894A894B894CCBFAEBF3894D894E894FCBDC89508951CBFE895289538954CCC189558956895789588959C8FB895A895B895C895D895E895FDCAA89608961896289638964CCEEDCAB89658966896789688969896A896B896C896D896E896F897089718972897389748975DBD38976DCAFDCAC8977BEB38978CAFB8979897A897BDCAD897C897D897E89808981898289838984C9CAC4B989858986898789888989C7BDDCAE898A898B898CD4F6D0E6898D898E898F89908991899289938994C4ABB6D589958996899789988999899A899B899C899D899E899F89A089A189A289A389A489A589A6DBD489A789A889A989AAB1DA89AB89AC89ADDBD589AE89AF89B089B189B289B389B489B589B689B789B8DBD689B989BA89BBBABE89BC89BD89BE89BF89C089C189C289C389C489C589C689C789C889C9C8C089CA89CB89CC89CD89CE89CFCABFC8C989D0D7B389D1C9F989D289D3BFC789D489D5BAF889D689D7D2BC89D889D989DA89DB89DC89DD89DE89DFE2BA89E0B4A689E189E2B1B889E389E489E589E689E7B8B489E8CFC489E989EA89EB89ECD9E7CFA6CDE289ED89EED9EDB6E089EFD2B989F089F1B9BB89F289F389F489F5E2B9E2B789F6B4F389F7CCECCCABB7F289F8D8B2D1EBBABB89F9CAA789FA89FBCDB789FC89FDD2C4BFE4BCD0B6E189FEDEC58A408A418A428A43DEC6DBBC8A44D1D98A458A46C6E6C4CEB7EE8A47B7DC8A488A49BFFCD7E08A4AC6F58A4B8A4CB1BCDEC8BDB1CCD7DECA8A4DDEC98A4E8A4F8A508A518A52B5EC8A53C9DD8A548A55B0C28A568A578A588A598A5A8A5B8A5C8A5D8A5E8A5F8A608A618A62C5AEC5AB8A63C4CC8A64BCE9CBFD8A658A668A67BAC38A688A698A6AE5F9C8E7E5FACDFD8A6BD7B1B8BEC2E88A6CC8D18A6D8A6EE5FB8A6F8A708A718A72B6CABCCB8A738A74D1FDE6A18A75C3EE8A768A778A788A79E6A48A7A8A7B8A7C8A7DE5FEE6A5CDD78A7E8A80B7C1E5FCE5FDE6A38A818A82C4DDE6A88A838A84E6A78A858A868A878A888A898A8AC3C38A8BC6DE8A8C8A8DE6AA8A8E8A8F8A908A918A928A938A94C4B78A958A968A97E6A2CABC8A988A998A9A8A9BBDE3B9C3E6A6D0D5CEAF8A9C8A9DE6A9E6B08A9ED2A68A9FBDAAE6AD8AA08AA18AA28AA38AA4E6AF8AA5C0D18AA68AA7D2CC8AA88AA98AAABCA78AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB38AB48AB58AB6E6B18AB7D2F68AB88AB98ABAD7CB8ABBCDFE8ABCCDDEC2A6E6ABE6ACBDBFE6AEE6B38ABD8ABEE6B28ABF8AC08AC18AC2E6B68AC3E6B88AC48AC58AC68AC7C4EF8AC88AC98ACAC4C88ACB8ACCBEEAC9EF8ACD8ACEE6B78ACFB6F08AD08AD18AD2C3E48AD38AD48AD58AD68AD78AD88AD9D3E9E6B48ADAE6B58ADBC8A28ADC8ADD8ADE8ADF8AE0E6BD8AE18AE28AE3E6B98AE48AE58AE68AE78AE8C6C58AE98AEACDF1E6BB8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF38AF4E6BC8AF58AF68AF78AF8BBE98AF98AFA8AFB8AFC8AFD8AFE8B40E6BE8B418B428B438B44E6BA8B458B46C0B78B478B488B498B4A8B4B8B4C8B4D8B4E8B4FD3A4E6BFC9F4E6C38B508B51E6C48B528B538B548B55D0F68B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B658B668B67C3BD8B688B698B6A8B6B8B6C8B6D8B6EC3C4E6C28B6F8B708B718B728B738B748B758B768B778B788B798B7A8B7B8B7CE6C18B7D8B7E8B808B818B828B838B84E6C7CFB18B85EBF48B868B87E6CA8B888B898B8A8B8B8B8CE6C58B8D8B8EBCDEC9A98B8F8B908B918B928B938B94BCB58B958B96CFD38B978B988B998B9A8B9BE6C88B9CE6C98B9DE6CE8B9EE6D08B9F8BA08BA1E6D18BA28BA38BA4E6CBB5D58BA5E6CC8BA68BA7E6CF8BA88BA9C4DB8BAAE6C68BAB8BAC8BAD8BAE8BAFE6CD8BB08BB18BB28BB38BB48BB58BB68BB78BB88BB98BBA8BBB8BBC8BBD8BBE8BBF8BC08BC18BC28BC38BC48BC58BC6E6D28BC78BC88BC98BCA8BCB8BCC8BCD8BCE8BCF8BD08BD18BD2E6D4E6D38BD38BD48BD58BD68BD78BD88BD98BDA8BDB8BDC8BDD8BDE8BDF8BE08BE18BE28BE38BE48BE58BE68BE78BE88BE98BEA8BEB8BECE6D58BEDD9F88BEE8BEFE6D68BF08BF18BF28BF38BF48BF58BF68BF7E6D78BF88BF98BFA8BFB8BFC8BFD8BFE8C408C418C428C438C448C458C468C47D7D3E6DD8C48E6DEBFD7D4D08C49D7D6B4E6CBEFE6DAD8C3D7CED0A28C4AC3CF8C4B8C4CE6DFBCBEB9C2E6DBD1A78C4D8C4EBAA2C2CF8C4FD8AB8C508C518C52CAEBE5EE8C53E6DC8C54B7F58C558C568C578C58C8E68C598C5AC4F58C5B8C5CE5B2C4FE8C5DCBFCE5B3D5AC8C5ED3EECAD8B0B28C5FCBCECDEA8C608C61BAEA8C628C638C64E5B58C65E5B48C66D7DAB9D9D6E6B6A8CDF0D2CBB1A6CAB58C67B3E8C9F3BFCDD0FBCAD2E5B6BBC28C688C698C6ACFDCB9AC8C6B8C6C8C6D8C6ED4D78C6F8C70BAA6D1E7CFFCBCD28C71E5B7C8DD8C728C738C74BFEDB1F6CBDE8C758C76BCC58C77BCC4D2FAC3DCBFDC8C788C798C7A8C7BB8BB8C7C8C7D8C7EC3C28C80BAAED4A28C818C828C838C848C858C868C878C888C89C7DEC4AFB2EC8C8AB9D18C8B8C8CE5BBC1C88C8D8C8ED5AF8C8F8C908C918C928C93E5BC8C94E5BE8C958C968C978C988C998C9A8C9BB4E7B6D4CBC2D1B0B5BC8C9C8C9DCAD98C9EB7E28C9F8CA0C9E48CA1BDAB8CA28CA3CEBED7F08CA48CA58CA68CA7D0A18CA8C9D98CA98CAAB6FBE6D8BCE28CABB3BE8CACC9D08CADE6D9B3A28CAE8CAF8CB08CB1DECC8CB2D3C8DECD8CB3D2A28CB48CB58CB68CB7DECE8CB88CB98CBA8CBBBECD8CBC8CBDDECF8CBE8CBF8CC0CAACD2FCB3DFE5EAC4E1BEA1CEB2C4F2BED6C6A8B2E38CC18CC2BED38CC38CC4C7FCCCEBBDECCEDD8CC58CC6CABAC6C1E5ECD0BC8CC78CC88CC9D5B98CCA8CCB8CCCE5ED8CCD8CCE8CCF8CD0CAF48CD1CDC0C2C58CD2E5EF8CD3C2C4E5F08CD48CD58CD68CD78CD88CD98CDAE5F8CDCD8CDBC9BD8CDC8CDD8CDE8CDF8CE08CE18CE2D2D9E1A88CE38CE48CE58CE6D3EC8CE7CBEAC6F18CE88CE98CEA8CEB8CECE1AC8CED8CEE8CEFE1A7E1A98CF08CF1E1AAE1AF8CF28CF3B2ED8CF4E1ABB8DAE1ADE1AEE1B0B5BAE1B18CF58CF68CF78CF88CF9E1B3E1B88CFA8CFB8CFC8CFD8CFED1D28D40E1B6E1B5C1EB8D418D428D43E1B78D44D4C08D45E1B28D46E1BAB0B68D478D488D498D4AE1B48D4BBFF98D4CE1B98D4D8D4EE1BB8D4F8D508D518D528D538D54E1BE8D558D568D578D588D598D5AE1BC8D5B8D5C8D5D8D5E8D5F8D60D6C58D618D628D638D648D658D668D67CFBF8D688D69E1BDE1BFC2CD8D6AB6EB8D6BD3F88D6C8D6DC7CD8D6E8D6FB7E58D708D718D728D738D748D758D768D778D788D79BEFE8D7A8D7B8D7C8D7D8D7E8D80E1C0E1C18D818D82E1C7B3E78D838D848D858D868D878D88C6E98D898D8A8D8B8D8C8D8DB4DE8D8ED1C28D8F8D908D918D92E1C88D938D94E1C68D958D968D978D988D99E1C58D9AE1C3E1C28D9BB1C08D9C8D9D8D9ED5B8E1C48D9F8DA08DA18DA28DA3E1CB8DA48DA58DA68DA78DA88DA98DAA8DABE1CCE1CA8DAC8DAD8DAE8DAF8DB08DB18DB28DB3EFFA8DB48DB5E1D3E1D2C7B68DB68DB78DB88DB98DBA8DBB8DBC8DBD8DBE8DBF8DC0E1C98DC18DC2E1CE8DC3E1D08DC48DC58DC68DC78DC88DC98DCA8DCB8DCC8DCD8DCEE1D48DCFE1D1E1CD8DD08DD1E1CF8DD28DD38DD48DD5E1D58DD68DD78DD88DD98DDA8DDB8DDC8DDD8DDE8DDF8DE08DE18DE2E1D68DE38DE48DE58DE68DE78DE88DE98DEA8DEB8DEC8DED8DEE8DEF8DF08DF18DF28DF38DF48DF58DF68DF78DF8E1D78DF98DFA8DFBE1D88DFC8DFD8DFE8E408E418E428E438E448E458E468E478E488E498E4A8E4B8E4C8E4D8E4E8E4F8E508E518E528E538E548E55E1DA8E568E578E588E598E5A8E5B8E5C8E5D8E5E8E5F8E608E618E62E1DB8E638E648E658E668E678E688E69CEA18E6A8E6B8E6C8E6D8E6E8E6F8E708E718E728E738E748E758E76E7DD8E77B4A8D6DD8E788E79D1B2B3B28E7A8E7BB9A4D7F3C7C9BEDEB9AE8E7CCED78E7D8E7EB2EEDBCF8E80BCBAD2D1CBC8B0CD8E818E82CFEF8E838E848E858E868E87D9E3BDED8E888E89B1D2CAD0B2BC8E8ACBA7B7AB8E8BCAA68E8C8E8D8E8ECFA38E8F8E90E0F8D5CAE0FB8E918E92E0FAC5C1CCFB8E93C1B1E0F9D6E3B2AFD6C4B5DB8E948E958E968E978E988E998E9A8E9BB4F8D6A18E9C8E9D8E9E8E9F8EA0CFAFB0EF8EA18EA2E0FC8EA38EA48EA58EA68EA7E1A1B3A38EA88EA9E0FDE0FEC3B18EAA8EAB8EAC8EADC3DD8EAEE1A2B7F98EAF8EB08EB18EB28EB38EB4BBCF8EB58EB68EB78EB88EB98EBA8EBBE1A3C4BB8EBC8EBD8EBE8EBF8EC0E1A48EC18EC2E1A58EC38EC4E1A6B4B18EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF8ED08ED18ED28ED3B8C9C6BDC4EA8ED4B2A28ED5D0D28ED6E7DBBBC3D3D7D3C48ED7B9E3E2CF8ED88ED98EDAD7AF8EDBC7ECB1D38EDC8EDDB4B2E2D18EDE8EDF8EE0D0F2C2AEE2D08EE1BFE2D3A6B5D7E2D2B5EA8EE2C3EDB8FD8EE3B8AE8EE4C5D3B7CFE2D48EE58EE68EE78EE8E2D3B6C8D7F98EE98EEA8EEB8EEC8EEDCDA58EEE8EEF8EF08EF18EF2E2D88EF3E2D6CAFCBFB5D3B9E2D58EF48EF58EF68EF7E2D78EF88EF98EFA8EFB8EFC8EFD8EFE8F408F418F42C1AEC0C88F438F448F458F468F478F48E2DBE2DAC0AA8F498F4AC1CE8F4B8F4C8F4D8F4EE2DC8F4F8F508F518F528F538F548F558F568F578F588F598F5AE2DD8F5BE2DE8F5C8F5D8F5E8F5F8F608F618F628F638F64DBC88F65D1D3CDA28F668F67BDA88F688F698F6ADEC3D8A5BFAADBCDD2ECC6FAC5AA8F6B8F6C8F6DDEC48F6EB1D7DFAE8F6F8F708F71CABD8F72DFB18F73B9AD8F74D2FD8F75B8A5BAEB8F768F77B3DA8F788F798F7AB5DCD5C58F7B8F7C8F7D8F7EC3D6CFD2BBA18F80E5F3E5F28F818F82E5F48F83CDE48F84C8F58F858F868F878F888F898F8A8F8BB5AFC7BF8F8CE5F68F8D8F8E8F8FECB08F908F918F928F938F948F958F968F978F988F998F9A8F9B8F9C8F9D8F9EE5E68F9FB9E9B5B18FA0C2BCE5E8E5E7E5E98FA18FA28FA38FA4D2CD8FA58FA68FA7E1EAD0CE8FA8CDAE8FA9D1E58FAA8FABB2CAB1EB8FACB1F2C5ED8FAD8FAED5C3D3B08FAFE1DC8FB08FB18FB2E1DD8FB3D2DB8FB4B3B9B1CB8FB58FB68FB7CDF9D5F7E1DE8FB8BEB6B4FD8FB9E1DFBADCE1E0BBB2C2C9E1E18FBA8FBB8FBCD0EC8FBDCDBD8FBE8FBFE1E28FC0B5C3C5C7E1E38FC18FC2E1E48FC38FC48FC58FC6D3F98FC78FC88FC98FCA8FCB8FCCE1E58FCDD1AD8FCE8FCFE1E6CEA28FD08FD18FD28FD38FD48FD5E1E78FD6B5C28FD78FD88FD98FDAE1E8BBD58FDB8FDC8FDD8FDE8FDFD0C4E2E0B1D8D2E48FE08FE1E2E18FE28FE3BCC9C8CC8FE4E2E3ECFEECFDDFAF8FE58FE68FE7E2E2D6BECDFCC3A68FE88FE98FEAE3C38FEB8FECD6D2E2E78FED8FEEE2E88FEF8FF0D3C78FF18FF2E2ECBFEC8FF3E2EDE2E58FF48FF5B3C08FF68FF78FF8C4EE8FF98FFAE2EE8FFB8FFCD0C38FFDBAF6E2E9B7DEBBB3CCACCBCBE2E4E2E6E2EAE2EB8FFE90409041E2F790429043E2F4D4F5E2F390449045C5AD9046D5FAC5C2B2C090479048E2EF9049E2F2C1AFCBBC904A904BB5A1E2F9904C904D904EBCB1E2F1D0D4D4B9E2F5B9D6E2F6904F90509051C7D390529053905490559056E2F0905790589059905A905BD7DCEDA1905C905DE2F8905EEDA5E2FECAD1905F906090619062906390649065C1B59066BBD090679068BFD69069BAE3906A906BCBA1906C906D906EEDA6EDA3906F9070EDA29071907290739074BBD6EDA7D0F490759076EDA4BADEB6F7E3A1B6B2CCF1B9A79077CFA2C7A190789079BFD2907A907BB6F1907CE2FAE2FBE2FDE2FCC4D5E3A2907DD3C1907E90809081E3A7C7C49082908390849085CFA490869087E3A9BAB790889089908A908BE3A8908CBBDA908DE3A3908E908F9090E3A4E3AA9091E3A69092CEF2D3C690939094BBBC90959096D4C39097C4FA90989099EDA8D0FCE3A5909AC3F5909BE3ADB1AF909CE3B2909D909E909FBCC290A090A1E3ACB5BF90A290A390A490A590A690A790A890A9C7E9E3B090AA90AB90ACBEAACDEF90AD90AE90AF90B090B1BBF390B290B390B4CCE890B590B6E3AF90B7E3B190B8CFA7E3AE90B9CEA9BBDD90BA90BB90BC90BD90BEB5EBBEE5B2D2B3CD90BFB1B9E3ABB2D1B5ACB9DFB6E890C090C1CFEBE3B790C2BBCC90C390C4C8C7D0CA90C590C690C790C890C9E3B8B3EE90CA90CB90CC90CDEDA990CED3FAD3E490CF90D090D1EDAAE3B9D2E290D290D390D490D590D6E3B590D790D890D990DAD3DE90DB90DC90DD90DEB8D0E3B390DF90E0E3B6B7DF90E1E3B4C0A290E290E390E4E3BA90E590E690E790E890E990EA90EB90EC90ED90EE90EF90F090F190F290F390F490F590F690F7D4B890F890F990FA90FB90FC90FD90FE9140B4C89141E3BB9142BBC59143C9F791449145C9E5914691479148C4BD9149914A914B914C914D914E914FEDAB9150915191529153C2FD9154915591569157BBDBBFAE91589159915A915B915C915D915ECEBF915F916091619162E3BC9163BFB6916491659166916791689169916A916B916C916D916E916F9170917191729173917491759176B1EF91779178D4F79179917A917B917C917DE3BE917E9180918191829183918491859186EDAD918791889189918A918B918C918D918E918FE3BFBAA9EDAC91909191E3BD91929193919491959196919791989199919A919BE3C0919C919D919E919F91A091A1BAB691A291A391A4B6AE91A591A691A791A891A9D0B891AAB0C3EDAE91AB91AC91AD91AE91AFEDAFC0C191B0E3C191B191B291B391B491B591B691B791B891B991BA91BB91BC91BD91BE91BF91C091C1C5B391C291C391C491C591C691C791C891C991CA91CB91CC91CD91CE91CFE3C291D091D191D291D391D491D591D691D791D8DCB291D991DA91DB91DC91DD91DEEDB091DFB8EA91E0CEECEAA7D0E7CAF9C8D6CFB7B3C9CED2BDE491E191E2E3DEBBF2EAA8D5BD91E3C6DDEAA991E491E591E6EAAA91E7EAACEAAB91E8EAAEEAAD91E991EA91EB91ECBDD891EDEAAF91EEC2BE91EF91F091F191F2B4C1B4F791F391F4BBA791F591F691F791F891F9ECE6ECE5B7BFCBF9B1E291FAECE791FB91FC91FDC9C8ECE8ECE991FECAD6DED0B2C5D4FA92409241C6CBB0C7B4F2C8D3924292439244CDD092459246BFB8924792489249924A924B924C924DBFDB924E924FC7A4D6B49250C0A9DED1C9A8D1EFC5A4B0E7B3B6C8C592519252B0E292539254B7F692559256C5FA92579258B6F39259D5D2B3D0BCBC925A925B925CB3AD925D925E925F9260BEF1B0D1926192629263926492659266D2D6CAE3D7A59267CDB6B6B6BFB9D5DB9268B8A7C5D79269926A926BDED2BFD9C2D5C7C0926CBBA4B1A8926D926EC5EA926F9270C5FBCCA79271927292739274B1A7927592769277B5D692789279927AC4A8927BDED3D1BAB3E9927CC3F2927D927EB7F79280D6F4B5A3B2F0C4B4C4E9C0ADDED49281B0E8C5C4C1E09282B9D59283BEDCCDD8B0CE9284CDCFDED6BED0D7BEDED5D5D0B0DD92859286C4E292879288C2A3BCF09289D3B5C0B9C5A1B2A6D4F1928A928BC0A8CAC3DED7D5FC928CB9B0928DC8ADCBA9928EDED9BFBD928F929092919292C6B4D7A7CAB0C4C39293B3D6B9D29294929592969297D6B8EAFCB0B492989299929A929BBFE6929C929DCCF4929E929F92A092A1CDDA92A292A392A4D6BFC2CE92A5CECECCA2D0AEC4D3B5B2DED8D5F5BCB7BBD392A692A7B0A492A8C5B2B4EC92A992AA92ABD5F192AC92ADEAFD92AE92AF92B092B192B292B3DEDACDA692B492B5CDEC92B692B792B892B9CEE6DEDC92BACDB1C0A692BB92BCD7BD92BDDEDBB0C6BAB4C9D3C4F3BEE892BE92BF92C092C1B2B692C292C392C492C592C692C792C892C9C0CCCBF092CABCF1BBBBB5B792CB92CC92CDC5F592CEDEE692CF92D092D1DEE3BEDD92D292D3DEDF92D492D592D692D7B4B7BDDD92D892D9DEE0C4ED92DA92DB92DC92DDCFC692DEB5E092DF92E092E192E2B6DECADAB5F4DEE592E3D5C692E4DEE1CCCDC6FE92E5C5C592E692E792E8D2B492E9BEF292EA92EB92EC92ED92EE92EF92F0C2D392F1CCBDB3B892F2BDD392F3BFD8CDC6D1DAB4EB92F4DEE4DEDDDEE792F5EAFE92F692F7C2B0DEE292F892F9D6C0B5A792FAB2F492FBDEE892FCDEF292FD92FE934093419342DEED9343DEF193449345C8E0934693479348D7E1DEEFC3E8CCE19349B2E5934A934B934CD2BE934D934E934F9350935193529353DEEE9354DEEBCED59355B4A79356935793589359935ABFABBEBE935B935CBDD2935D935E935F9360DEE99361D4AE9362DEDE9363DEEA9364936593669367C0BF9368DEECB2F3B8E9C2A79369936ABDC1936B936C936D936E936FDEF5DEF893709371B2ABB4A493729373B4EAC9A6937493759376937793789379DEF6CBD1937AB8E3937BDEF7DEFA937C937D937E9380DEF9938193829383CCC29384B0E1B4EE93859386938793889389938AE5BA938B938C938D938E938FD0AF93909391B2EB9392EBA19393DEF493949395C9E3DEF3B0DAD2A1B1F79396CCAF939793989399939A939B939C939DDEF0939ECBA4939F93A093A1D5AA93A293A393A493A593A6DEFB93A793A893A993AA93AB93AC93AD93AEB4DD93AFC4A693B093B193B2DEFD93B393B493B593B693B793B893B993BA93BB93BCC3FEC4A1DFA193BD93BE93BF93C093C193C293C3C1CC93C4DEFCBEEF93C5C6B293C693C793C893C993CA93CB93CC93CD93CEB3C5C8F693CF93D0CBBADEFE93D193D2DFA493D393D493D593D6D7B293D793D893D993DA93DBB3B793DC93DD93DE93DFC1C393E093E1C7CBB2A5B4E993E2D7AB93E393E493E593E6C4EC93E7DFA2DFA393E8DFA593E9BAB393EA93EB93ECDFA693EDC0DE93EE93EFC9C393F093F193F293F393F493F593F6B2D9C7E693F7DFA793F8C7DC93F993FA93FB93FCDFA8EBA293FD93FE944094419442CBD3944394449445DFAA9446DFA99447B2C194489449944A944B944C944D944E944F9450945194529453945494559456945794589459945A945B945C945D945E945F9460C5CA94619462946394649465946694679468DFAB9469946A946B946C946D946E946F9470D4DC94719472947394749475C8C19476947794789479947A947B947C947D947E948094819482DFAC94839484948594869487BEF094889489DFADD6A7948A948B948C948DEAB7EBB6CAD5948ED8FCB8C4948FB9A594909491B7C5D5FE94929493949494959496B9CA94979498D0A7F4CD9499949AB5D0949B949CC3F4949DBEC8949E949F94A0EBB7B0BD94A194A2BDCC94A3C1B294A4B1D6B3A894A594A694A7B8D2C9A294A894A9B6D894AA94AB94AC94ADEBB8BEB494AE94AF94B0CAFD94B1C7C394B2D5FB94B394B4B7F394B594B694B794B894B994BA94BB94BC94BD94BE94BF94C094C194C294C3CEC494C494C594C6D5ABB1F394C794C894C9ECB3B0DF94CAECB594CB94CC94CDB6B794CEC1CF94CFF5FAD0B194D094D1D5E594D2CED394D394D4BDEFB3E294D5B8AB94D6D5B694D7EDBD94D8B6CF94D9CBB9D0C294DA94DB94DC94DD94DE94DF94E094E1B7BD94E294E3ECB6CAA994E494E594E6C5D494E7ECB9ECB8C2C3ECB794E894E994EA94EBD0FDECBA94ECECBBD7E594ED94EEECBC94EF94F094F1ECBDC6EC94F294F394F494F594F694F794F894F9CEDE94FABCC894FB94FCC8D5B5A9BEC9D6BCD4E794FD94FED1AED0F1EAB8EAB9EABABAB59540954195429543CAB1BFF595449545CDFA9546954795489549954AEAC0954BB0BAEABE954C954DC0A5954E954F9550EABB9551B2FD9552C3F7BBE8955395549555D2D7CEF4EABF955695579558EABC9559955A955BEAC3955CD0C7D3B3955D955E955F9560B4BA9561C3C1D7F29562956395649565D5D19566CAC79567EAC595689569EAC4EAC7EAC6956A956B956C956D956ED6E7956FCFD495709571EACB9572BBCE9573957495759576957795789579BDFAC9CE957A957BEACC957C957DC9B9CFFEEACAD4CEEACDEACF957E9580CDED9581958295839584EAC99585EACE95869587CEEE9588BBDE9589B3BF958A958B958C958D958EC6D5BEB0CEFA958F95909591C7E79592BEA7EAD095939594D6C7959595969597C1C095989599959AD4DD959BEAD1959C959DCFBE959E959F95A095A1EAD295A295A395A495A5CAEE95A695A795A895A9C5AFB0B595AA95AB95AC95AD95AEEAD495AF95B095B195B295B395B495B595B695B7EAD3F4DF95B895B995BA95BB95BCC4BA95BD95BE95BF95C095C1B1A995C295C395C495C5E5DF95C695C795C895C9EAD595CA95CB95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB95DC95DD95DE95DF95E095E195E295E3CAEF95E4EAD6EAD7C6D895E595E695E795E895E995EA95EB95ECEAD895ED95EEEAD995EF95F095F195F295F395F4D4BB95F5C7FAD2B7B8FC95F695F7EAC295F8B2DC95F995FAC2FC95FBD4F8CCE6D7EE95FC95FD95FE9640964196429643D4C2D3D0EBC3C5F39644B7FE96459646EBD4964796489649CBB7EBDE964AC0CA964B964C964DCDFB964EB3AF964FC6DA965096519652965396549655EBFC9656C4BE9657CEB4C4A9B1BED4FD9658CAF59659D6EC965A965BC6D3B6E4965C965D965E965FBBFA96609661D0E096629663C9B19664D4D3C8A896659666B8CB9667E8BEC9BC96689669E8BB966AC0EED0D3B2C4B4E5966BE8BC966C966DD5C8966E966F967096719672B6C59673E8BDCAF8B8DCCCF5967496759676C0B496779678D1EEE8BFE8C29679967ABABC967BB1ADBDDC967CEABDE8C3967DE8C6967EE8CB9680968196829683E8CC9684CBC9B0E59685BCAB96869687B9B996889689E8C1968ACDF7968BE8CA968C968D968E968FCEF69690969196929693D5ED9694C1D6E8C49695C3B69696B9FBD6A6E8C8969796989699CAE0D4E6969AE8C0969BE8C5E8C7969CC7B9B7E3969DE8C9969EBFDDE8D2969F96A0E8D796A1E8D5BCDCBCCFE8DB96A296A396A496A596A696A796A896A9E8DE96AAE8DAB1FA96AB96AC96AD96AE96AF96B096B196B296B396B4B0D8C4B3B8CCC6E2C8BEC8E196B596B696B7E8CFE8D4E8D696B8B9F1E8D8D7F596B9C4FB96BAE8DC96BB96BCB2E996BD96BE96BFE8D196C096C1BCED96C296C3BFC2E8CDD6F996C4C1F8B2F196C596C696C796C896C996CA96CB96CCE8DF96CDCAC1E8D996CE96CF96D096D1D5A496D2B1EAD5BBE8CEE8D0B6B0E8D396D3E8DDC0B896D4CAF796D5CBA896D696D7C6DCC0F596D896D996DA96DB96DCE8E996DD96DE96DFD0A396E096E196E296E396E496E596E6E8F2D6EA96E796E896E996EA96EB96EC96EDE8E0E8E196EE96EF96F0D1F9BACBB8F996F196F2B8F1D4D4E8EF96F3E8EEE8ECB9F0CCD2E8E6CEA6BFF296F4B0B8E8F1E8F096F5D7C096F6E8E496F7CDA9C9A396F8BBB8BDDBE8EA96F996FA96FB96FC96FD96FE9740974197429743E8E2E8E3E8E5B5B5E8E7C7C5E8EBE8EDBDB0D7AE9744E8F897459746974797489749974A974B974CE8F5974DCDB0E8F6974E974F9750975197529753975497559756C1BA9757E8E89758C3B7B0F09759975A975B975C975D975E975F9760E8F4976197629763E8F7976497659766B9A3976797689769976A976B976C976D976E976F9770C9D2977197729773C3CECEE0C0E69774977597769777CBF39778CCDDD0B59779977ACAE1977BE8F3977C977D977E9780978197829783978497859786BCEC9787E8F997889789978A978B978C978DC3DE978EC6E5978FB9F79790979197929793B0F497949795D7D897969797BCAC9798C5EF9799979A979B979C979DCCC4979E979FE9A697A097A197A297A397A497A597A697A797A897A9C9AD97AAE9A2C0E297AB97AC97ADBFC397AE97AF97B0E8FEB9D797B1E8FB97B297B397B497B5E9A497B697B797B8D2CE97B997BA97BB97BC97BDE9A397BED6B2D7B597BFE9A797C0BDB797C197C297C397C497C597C697C797C897C997CA97CB97CCE8FCE8FD97CD97CE97CFE9A197D097D197D297D397D497D597D697D7CDD697D897D9D2AC97DA97DB97DCE9B297DD97DE97DF97E0E9A997E197E297E3B4AA97E4B4BB97E597E6E9AB97E797E897E997EA97EB97EC97ED97EE97EF97F097F197F297F397F497F597F697F7D0A897F897F9E9A597FA97FBB3FE97FC97FDE9ACC0E397FEE9AA98409841E9B998429843E9B89844984598469847E9AE98489849E8FA984A984BE9A8984C984D984E984F9850BFACE9B1E9BA98519852C2A5985398549855E9AF9856B8C59857E9AD9858D3DCE9B4E9B5E9B79859985A985BE9C7985C985D985E985F98609861C0C6E9C598629863E9B098649865E9BBB0F19866986798689869986A986B986C986D986E986FE9BCD5A598709871E9BE9872E9BF987398749875E9C198769877C1F198789879C8B6987A987B987CE9BD987D987E988098819882E9C29883988498859886988798889889988AE9C3988BE9B3988CE9B6988DBBB1988E988F9890E9C0989198929893989498959896BCF7989798989899E9C4E9C6989A989B989C989D989E989F98A098A198A298A398A498A5E9CA98A698A798A898A9E9CE98AA98AB98AC98AD98AE98AF98B098B198B298B3B2DB98B4E9C898B598B698B798B898B998BA98BB98BC98BD98BEB7AE98BF98C098C198C298C398C498C598C698C798C898C998CAE9CBE9CC98CB98CC98CD98CE98CF98D0D5C198D1C4A398D298D398D498D598D698D7E9D898D8BAE198D998DA98DB98DCE9C998DDD3A398DE98DF98E0E9D498E198E298E398E498E598E698E7E9D7E9D098E898E998EA98EB98ECE9CF98ED98EEC7C198EF98F098F198F298F398F498F598F6E9D298F798F898F998FA98FB98FC98FDE9D9B3C898FEE9D399409941994299439944CFF0994599469947E9CD99489949994A994B994C994D994E994F995099519952B3F79953995499559956995799589959E9D6995A995BE9DA995C995D995ECCB4995F99609961CFAD99629963996499659966996799689969996AE9D5996BE9DCE9DB996C996D996E996F9970E9DE99719972997399749975997699779978E9D19979997A997B997C997D997E99809981E9DD9982E9DFC3CA9983998499859986998799889989998A998B998C998D998E998F9990999199929993999499959996999799989999999A999B999C999D999E999F99A099A199A299A399A499A599A699A799A899A999AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B999BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C999CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D899D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E899E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F5C7B7B4CEBBB6D0C0ECA399F699F7C5B799F899F999FA99FB99FC99FD99FE9A409A419A42D3FB9A439A449A459A46ECA49A47ECA5C6DB9A489A499A4ABFEE9A4B9A4C9A4D9A4EECA69A4F9A50ECA7D0AA9A51C7B89A529A53B8E89A549A559A569A579A589A599A5A9A5B9A5C9A5D9A5E9A5FECA89A609A619A629A639A649A659A669A67D6B9D5FDB4CBB2BDCEE4C6E79A689A69CDE19A6A9A6B9A6C9A6D9A6E9A6F9A709A719A729A739A749A759A769A77B4F59A78CBC0BCDF9A799A7A9A7B9A7CE9E2E9E3D1EAE9E59A7DB4F9E9E49A7ED1B3CAE2B2D09A80E9E89A819A829A839A84E9E6E9E79A859A86D6B39A879A889A89E9E9E9EA9A8A9A8B9A8C9A8D9A8EE9EB9A8F9A909A919A929A939A949A959A96E9EC9A979A989A999A9A9A9B9A9C9A9D9A9EECAFC5B9B6CE9A9FD2F39AA09AA19AA29AA39AA49AA59AA6B5EE9AA7BBD9ECB19AA89AA9D2E39AAA9AAB9AAC9AAD9AAECEE39AAFC4B89AB0C3BF9AB19AB2B6BED8B9B1C8B1CFB1D1C5FE9AB3B1D09AB4C3AB9AB59AB69AB79AB89AB9D5B19ABA9ABB9ABC9ABD9ABE9ABF9AC09AC1EBA4BAC19AC29AC39AC4CCBA9AC59AC69AC7EBA59AC8EBA79AC99ACA9ACBEBA89ACC9ACD9ACEEBA69ACF9AD09AD19AD29AD39AD49AD5EBA9EBABEBAA9AD69AD79AD89AD99ADAEBAC9ADBCACFD8B5C3F19ADCC3A5C6F8EBADC4CA9ADDEBAEEBAFEBB0B7D59ADE9ADF9AE0B7FA9AE1EBB1C7E29AE2EBB39AE3BAA4D1F5B0B1EBB2EBB49AE49AE59AE6B5AAC2C8C7E89AE7EBB59AE8CBAEE3DF9AE99AEAD3C09AEB9AEC9AED9AEED9DB9AEF9AF0CDA1D6ADC7F39AF19AF29AF3D9E0BBE39AF4BABAE3E29AF59AF69AF79AF89AF9CFAB9AFA9AFB9AFCE3E0C9C79AFDBAB99AFE9B409B41D1B4E3E1C8EAB9AFBDADB3D8CEDB9B429B43CCC09B449B459B46E3E8E3E9CDF49B479B489B499B4A9B4BCCAD9B4CBCB39B4DE3EA9B4EE3EB9B4F9B50D0DA9B519B529B53C6FBB7DA9B549B55C7DFD2CACED69B56E3E4E3EC9B57C9F2B3C19B589B59E3E79B5A9B5BC6E3E3E59B5C9B5DEDB3E3E69B5E9B5F9B609B61C9B39B62C5E69B639B649B65B9B59B66C3BB9B67E3E3C5BDC1A4C2D9B2D79B68E3EDBBA6C4AD9B69E3F0BEDA9B6A9B6BE3FBE3F5BAD39B6C9B6D9B6E9B6FB7D0D3CD9B70D6CED5D3B9C1D5B4D1D89B719B729B739B74D0B9C7F69B759B769B77C8AAB2B49B78C3DA9B799B7A9B7BE3EE9B7C9B7DE3FCE3EFB7A8E3F7E3F49B7E9B809B81B7BA9B829B83C5A29B84E3F6C5DDB2A8C6FC9B85C4E09B869B87D7A29B88C0E1E3F99B899B8AE3FAE3FDCCA9E3F39B8BD3BE9B8CB1C3EDB4E3F1E3F29B8DE3F8D0BAC6C3D4F3E3FE9B8E9B8FBDE09B909B91E4A79B929B93E4A69B949B959B96D1F3E4A39B97E4A99B989B999B9AC8F79B9B9B9C9B9D9B9ECFB49B9FE4A8E4AEC2E59BA09BA1B6B49BA29BA39BA49BA59BA69BA7BDF29BA8E4A29BA99BAABAE9E4AA9BAB9BACE4AC9BAD9BAEB6FDD6DEE4B29BAFE4AD9BB09BB19BB2E4A19BB3BBEECDDDC7A2C5C99BB49BB5C1F79BB6E4A49BB7C7B3BDACBDBDE4A59BB8D7C7B2E29BB9E4ABBCC3E4AF9BBABBEBE4B0C5A8E4B19BBB9BBC9BBD9BBED5E3BFA39BBFE4BA9BC0E4B79BC1E4BB9BC29BC3E4BD9BC49BC5C6D69BC69BC7BAC6C0CB9BC89BC99BCAB8A1E4B49BCB9BCC9BCD9BCED4A19BCF9BD0BAA3BDFE9BD19BD29BD3E4BC9BD49BD59BD69BD79BD8CDBF9BD99BDAC4F99BDB9BDCCFFBC9E69BDD9BDED3BF9BDFCFD19BE09BE1E4B39BE2E4B8E4B9CCE99BE39BE49BE59BE69BE7CCCE9BE8C0D4E4B5C1B0E4B6CED09BE9BBC1B5D39BEAC8F3BDA7D5C7C9ACB8A2E4CA9BEB9BECE4CCD1C49BED9BEED2BA9BEF9BF0BAAD9BF19BF2BAD49BF39BF49BF59BF69BF79BF8E4C3B5ED9BF99BFA9BFBD7CDE4C0CFFDE4BF9BFC9BFD9BFEC1DCCCCA9C409C419C429C43CAE79C449C459C469C47C4D79C48CCD4E4C89C499C4A9C4BE4C7E4C19C4CE4C4B5AD9C4D9C4ED3D99C4FE4C69C509C519C529C53D2F9B4E39C54BBB49C559C56C9EE9C57B4BE9C589C599C5ABBEC9C5BD1CD9C5CCCEDEDB59C5D9C5E9C5F9C609C619C629C639C64C7E59C659C669C679C68D4A89C69E4CBD7D5E4C29C6ABDA5E4C59C6B9C6CD3E69C6DE4C9C9F89C6E9C6FE4BE9C709C71D3E59C729C73C7FEB6C99C74D4FCB2B3E4D79C759C769C77CEC29C78E4CD9C79CEBC9C7AB8DB9C7B9C7CE4D69C7DBFCA9C7E9C809C81D3CE9C82C3EC9C839C849C859C869C879C889C899C8AC5C8E4D89C8B9C8C9C8D9C8E9C8F9C909C919C92CDC4E4CF9C939C949C959C96E4D4E4D59C97BAFE9C98CFE69C999C9AD5BF9C9B9C9C9C9DE4D29C9E9C9F9CA09CA19CA29CA39CA49CA59CA69CA79CA8E4D09CA99CAAE4CE9CAB9CAC9CAD9CAE9CAF9CB09CB19CB29CB39CB49CB59CB69CB79CB89CB9CDE5CAAA9CBA9CBB9CBCC0A39CBDBDA6E4D39CBE9CBFB8C89CC09CC19CC29CC39CC4E4E7D4B49CC59CC69CC79CC89CC99CCA9CCBE4DB9CCC9CCD9CCEC1EF9CCF9CD0E4E99CD19CD2D2E79CD39CD4E4DF9CD5E4E09CD69CD7CFAA9CD89CD99CDA9CDBCBDD9CDCE4DAE4D19CDDE4E59CDEC8DCE4E39CDF9CE0C4E7E4E29CE1E4E19CE29CE39CE4B3FCE4E89CE59CE69CE79CE8B5E19CE99CEA9CEBD7CC9CEC9CED9CEEE4E69CEFBBAC9CF0D7D2CCCFEBF89CF1E4E49CF29CF3B9F69CF49CF59CF6D6CDE4D9E4DCC2FAE4DE9CF7C2CBC0C4C2D09CF8B1F5CCB29CF99CFA9CFB9CFC9CFD9CFE9D409D419D429D43B5CE9D449D459D469D47E4EF9D489D499D4A9D4B9D4C9D4D9D4E9D4FC6AF9D509D519D52C6E19D539D54E4F59D559D569D579D589D59C2A99D5A9D5B9D5CC0ECD1DDE4EE9D5D9D5E9D5F9D609D619D629D639D649D659D66C4AE9D679D689D69E4ED9D6A9D6B9D6C9D6DE4F6E4F4C2FE9D6EE4DD9D6FE4F09D70CAFE9D71D5C49D729D73E4F19D749D759D769D779D789D799D7AD1FA9D7B9D7C9D7D9D7E9D809D819D82E4EBE4EC9D839D849D85E4F29D86CEAB9D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D90C5CB9D919D929D93C7B19D94C2BA9D959D969D97E4EA9D989D999D9AC1CA9D9B9D9C9D9D9D9E9D9F9DA0CCB6B3B19DA19DA29DA3E4FB9DA4E4F39DA59DA69DA7E4FA9DA8E4FD9DA9E4FC9DAA9DAB9DAC9DAD9DAE9DAF9DB0B3CE9DB19DB29DB3B3BAE4F79DB49DB5E4F9E4F8C5EC9DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2C0BD9DC39DC49DC59DC6D4E89DC79DC89DC99DCA9DCBE5A29DCC9DCD9DCE9DCF9DD09DD19DD29DD39DD49DD59DD6B0C49DD79DD8E5A49DD99DDAE5A39DDB9DDC9DDD9DDE9DDF9DE0BCA49DE1E5A59DE29DE39DE49DE59DE69DE7E5A19DE89DE99DEA9DEB9DEC9DED9DEEE4FEB1F49DEF9DF09DF19DF29DF39DF49DF59DF69DF79DF89DF9E5A89DFAE5A9E5A69DFB9DFC9DFD9DFE9E409E419E429E439E449E459E469E47E5A7E5AA9E489E499E4A9E4B9E4C9E4D9E4E9E4F9E509E519E529E539E549E559E569E579E589E599E5A9E5B9E5C9E5D9E5E9E5F9E609E619E629E639E649E659E669E679E68C6D99E699E6A9E6B9E6C9E6D9E6E9E6F9E70E5ABE5AD9E719E729E739E749E759E769E77E5AC9E789E799E7A9E7B9E7C9E7D9E7E9E809E819E829E839E849E859E869E879E889E89E5AF9E8A9E8B9E8CE5AE9E8D9E8E9E8F9E909E919E929E939E949E959E969E979E989E999E9A9E9B9E9C9E9D9E9EB9E09E9F9EA0E5B09EA19EA29EA39EA49EA59EA69EA79EA89EA99EAA9EAB9EAC9EAD9EAEE5B19EAF9EB09EB19EB29EB39EB49EB59EB69EB79EB89EB99EBABBF0ECE1C3F09EBBB5C6BBD29EBC9EBD9EBE9EBFC1E9D4EE9EC0BEC49EC19EC29EC3D7C69EC4D4D6B2D3ECBE9EC59EC69EC79EC8EAC19EC99ECA9ECBC2AFB4B69ECC9ECD9ECED1D79ECF9ED09ED1B3B49ED2C8B2BFBBECC09ED39ED4D6CB9ED59ED6ECBFECC19ED79ED89ED99EDA9EDB9EDC9EDD9EDE9EDF9EE09EE19EE29EE3ECC5BEE6CCBFC5DABEBC9EE4ECC69EE5B1FE9EE69EE79EE8ECC4D5A8B5E39EE9ECC2C1B6B3E39EEA9EEBECC3CBB8C0C3CCFE9EEC9EED9EEE9EEFC1D29EF0ECC89EF19EF29EF39EF49EF59EF69EF79EF89EF99EFA9EFB9EFC9EFDBAE6C0D39EFED6F29F409F419F42D1CC9F439F449F459F46BFBE9F47B7B3C9D5ECC7BBE29F48CCCCBDFDC8C89F49CFA99F4A9F4B9F4C9F4D9F4E9F4F9F50CDE99F51C5EB9F529F539F54B7E99F559F569F579F589F599F5A9F5B9F5C9F5D9F5E9F5FD1C9BAB89F609F619F629F639F64ECC99F659F66ECCA9F67BBC0ECCB9F68ECE2B1BAB7D99F699F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F73BDB99F749F759F769F779F789F799F7A9F7BECCCD1E6ECCD9F7C9F7D9F7E9F80C8BB9F819F829F839F849F859F869F879F889F899F8A9F8B9F8C9F8D9F8EECD19F8F9F909F919F92ECD39F93BBCD9F94BCE59F959F969F979F989F999F9A9F9B9F9C9F9D9F9E9F9F9FA09FA1ECCF9FA2C9B79FA39FA49FA59FA69FA7C3BA9FA8ECE3D5D5ECD09FA99FAA9FAB9FAC9FADD6F39FAE9FAF9FB0ECD2ECCE9FB19FB29FB39FB4ECD49FB5ECD59FB69FB7C9BF9FB89FB99FBA9FBB9FBC9FBDCFA89FBE9FBF9FC09FC19FC2D0DC9FC39FC49FC59FC6D1AC9FC79FC89FC99FCAC8DB9FCB9FCC9FCDECD6CEF59FCE9FCF9FD09FD19FD2CAECECDA9FD39FD49FD59FD69FD79FD89FD9ECD99FDA9FDB9FDCB0BE9FDD9FDE9FDF9FE09FE19FE2ECD79FE3ECD89FE49FE59FE6ECE49FE79FE89FE99FEA9FEB9FEC9FED9FEE9FEFC8BC9FF09FF19FF29FF39FF49FF59FF69FF79FF89FF9C1C79FFA9FFB9FFC9FFD9FFEECDCD1E0A040A041A042A043A044A045A046A047A048A049ECDBA04AA04BA04CA04DD4EFA04EECDDA04FA050A051A052A053A054DBC6A055A056A057A058A059A05AA05BA05CA05DA05EECDEA05FA060A061A062A063A064A065A066A067A068A069A06AB1ACA06BA06CA06DA06EA06FA070A071A072A073A074A075A076A077A078A079A07AA07BA07CA07DA07EA080A081ECDFA082A083A084A085A086A087A088A089A08AA08BECE0A08CD7A6A08DC5C0A08EA08FA090EBBCB0AEA091A092A093BEF4B8B8D2AFB0D6B5F9A094D8B3A095CBACA096E3DDA097A098A099A09AA09BA09CA09DC6ACB0E6A09EA09FA0A0C5C6EBB9A0A1A0A2A0A3A0A4EBBAA0A5A0A6A0A7EBBBA0A8A0A9D1C0A0AAC5A3A0ABEAF2A0ACC4B2A0ADC4B5C0CEA0AEA0AFA0B0EAF3C4C1A0B1CEEFA0B2A0B3A0B4A0B5EAF0EAF4A0B6A0B7C9FCA0B8A0B9C7A3A0BAA0BBA0BCCCD8CEFEA0BDA0BEA0BFEAF5EAF6CFACC0E7A0C0A0C1EAF7A0C2A0C3A0C4A0C5A0C6B6BFEAF8A0C7EAF9A0C8EAFAA0C9A0CAEAFBA0CBA0CCA0CDA0CEA0CFA0D0A0D1A0D2A0D3A0D4A0D5A0D6EAF1A0D7A0D8A0D9A0DAA0DBA0DCA0DDA0DEA0DFA0E0A0E1A0E2C8AEE1EBA0E3B7B8E1ECA0E4A0E5A0E6E1EDA0E7D7B4E1EEE1EFD3CCA0E8A0E9A0EAA0EBA0ECA0EDA0EEE1F1BFF1E1F0B5D2A0EFA0F0A0F1B1B7A0F2A0F3A0F4A0F5E1F3E1F2A0F6BAFCA0F7E1F4A0F8A0F9A0FAA0FBB9B7A0FCBED1A0FDA0FEAA40AA41C4FCAA42BADDBDC6AA43AA44AA45AA46AA47AA48E1F5E1F7AA49AA4AB6C0CFC1CAA8E1F6D5F8D3FCE1F8E1FCE1F9AA4BAA4CE1FAC0EAAA4DE1FEE2A1C0C7AA4EAA4FAA50AA51E1FBAA52E1FDAA53AA54AA55AA56AA57AA58E2A5AA59AA5AAA5BC1D4AA5CAA5DAA5EAA5FE2A3AA60E2A8B2FEE2A2AA61AA62AA63C3CDB2C2E2A7E2A6AA64AA65E2A4E2A9AA66AA67E2ABAA68AA69AA6AD0C9D6EDC3A8E2ACAA6BCFD7AA6CAA6DE2AEAA6EAA6FBAEFAA70AA71E9E0E2ADE2AAAA72AA73AA74AA75BBABD4B3AA76AA77AA78AA79AA7AAA7BAA7CAA7DAA7EAA80AA81AA82AA83E2B0AA84AA85E2AFAA86E9E1AA87AA88AA89AA8AE2B1AA8BAA8CAA8DAA8EAA8FAA90AA91AA92E2B2AA93AA94AA95AA96AA97AA98AA99AA9AAA9BAA9CAA9DE2B3CCA1AA9EE2B4AA9FAAA0AB40AB41AB42AB43AB44AB45AB46AB47AB48AB49AB4AAB4BE2B5AB4CAB4DAB4EAB4FAB50D0FEAB51AB52C2CAAB53D3F1AB54CDF5AB55AB56E7E0AB57AB58E7E1AB59AB5AAB5BAB5CBEC1AB5DAB5EAB5FAB60C2EAAB61AB62AB63E7E4AB64AB65E7E3AB66AB67AB68AB69AB6AAB6BCDE6AB6CC3B5AB6DAB6EE7E2BBB7CFD6AB6FC1E1E7E9AB70AB71AB72E7E8AB73AB74E7F4B2A3AB75AB76AB77AB78E7EAAB79E7E6AB7AAB7BAB7CAB7DAB7EE7ECE7EBC9BAAB80AB81D5E4AB82E7E5B7A9E7E7AB83AB84AB85AB86AB87AB88AB89E7EEAB8AAB8BAB8CAB8DE7F3AB8ED6E9AB8FAB90AB91AB92E7EDAB93E7F2AB94E7F1AB95AB96AB97B0E0AB98AB99AB9AAB9BE7F5AB9CAB9DAB9EAB9FABA0AC40AC41AC42AC43AC44AC45AC46AC47AC48AC49AC4AC7F2AC4BC0C5C0EDAC4CAC4DC1F0E7F0AC4EAC4FAC50AC51E7F6CBF6AC52AC53AC54AC55AC56AC57AC58AC59AC5AE8A2E8A1AC5BAC5CAC5DAC5EAC5FAC60D7C1AC61AC62E7FAE7F9AC63E7FBAC64E7F7AC65E7FEAC66E7FDAC67E7FCAC68AC69C1D5C7D9C5FDC5C3AC6AAC6BAC6CAC6DAC6EC7EDAC6FAC70AC71AC72E8A3AC73AC74AC75AC76AC77AC78AC79AC7AAC7BAC7CAC7DAC7EAC80AC81AC82AC83AC84AC85AC86E8A6AC87E8A5AC88E8A7BAF7E7F8E8A4AC89C8F0C9AAAC8AAC8BAC8CAC8DAC8EAC8FAC90AC91AC92AC93AC94AC95AC96E8A9AC97AC98B9E5AC99AC9AAC9BAC9CAC9DD1FEE8A8AC9EAC9FACA0AD40AD41AD42E8AAAD43E8ADE8AEAD44C1A7AD45AD46AD47E8AFAD48AD49AD4AE8B0AD4BAD4CE8ACAD4DE8B4AD4EAD4FAD50AD51AD52AD53AD54AD55AD56AD57AD58E8ABAD59E8B1AD5AAD5BAD5CAD5DAD5EAD5FAD60AD61E8B5E8B2E8B3AD62AD63AD64AD65AD66AD67AD68AD69AD6AAD6BAD6CAD6DAD6EAD6FAD70AD71E8B7AD72AD73AD74AD75AD76AD77AD78AD79AD7AAD7BAD7CAD7DAD7EAD80AD81AD82AD83AD84AD85AD86AD87AD88AD89E8B6AD8AAD8BAD8CAD8DAD8EAD8FAD90AD91AD92B9CFAD93F0ACAD94F0ADAD95C6B0B0EAC8BFAD96CDDFAD97AD98AD99AD9AAD9BAD9CAD9DCECDEAB1AD9EAD9FADA0AE40EAB2AE41C6BFB4C9AE42AE43AE44AE45AE46AE47AE48EAB3AE49AE4AAE4BAE4CD5E7AE4DAE4EAE4FAE50AE51AE52AE53AE54DDF9AE55EAB4AE56EAB5AE57EAB6AE58AE59AE5AAE5BB8CADFB0C9F5AE5CCCF0AE5DAE5EC9FAAE5FAE60AE61AE62AE63C9FBAE64AE65D3C3CBA6AE66B8A6F0AEB1C2AE67E5B8CCEFD3C9BCD7C9EAAE68B5E7AE69C4D0B5E9AE6AEEAEBBADAE6BAE6CE7DEAE6DEEAFAE6EAE6FAE70AE71B3A9AE72AE73EEB2AE74AE75EEB1BDE7AE76EEB0CEB7AE77AE78AE79AE7AC5CFAE7BAE7CAE7DAE7EC1F4DBCEEEB3D0F3AE80AE81AE82AE83AE84AE85AE86AE87C2D4C6E8AE88AE89AE8AB7ACAE8BAE8CAE8DAE8EAE8FAE90AE91EEB4AE92B3EBAE93AE94AE95BBFBEEB5AE96AE97AE98AE99AE9AE7DCAE9BAE9CAE9DEEB6AE9EAE9FBDAEAEA0AF40AF41AF42F1E2AF43AF44AF45CAE8AF46D2C9F0DAAF47F0DBAF48F0DCC1C6AF49B8EDBECEAF4AAF4BF0DEAF4CC5B1F0DDD1F1AF4DF0E0B0CCBDEAAF4EAF4FAF50AF51AF52D2DFF0DFAF53B4AFB7E8F0E6F0E5C6A3F0E1F0E2B4C3AF54AF55F0E3D5EEAF56AF57CCDBBED2BCB2AF58AF59AF5AF0E8F0E7F0E4B2A1AF5BD6A2D3B8BEB7C8ACAF5CAF5DF0EAAF5EAF5FAF60AF61D1F7AF62D6CCBADBF0E9AF63B6BBAF64AF65CDB4AF66AF67C6A6AF68AF69AF6AC1A1F0EBF0EEAF6BF0EDF0F0F0ECAF6CBBBEF0EFAF6DAF6EAF6FAF70CCB5F0F2AF71AF72B3D5AF73AF74AF75AF76B1D4AF77AF78F0F3AF79AF7AF0F4F0F6B4E1AF7BF0F1AF7CF0F7AF7DAF7EAF80AF81F0FAAF82F0F8AF83AF84AF85F0F5AF86AF87AF88AF89F0FDAF8AF0F9F0FCF0FEAF8BF1A1AF8CAF8DAF8ECEC1F1A4AF8FF1A3AF90C1F6F0FBCADDAF91AF92B4F1B1F1CCB1AF93F1A6AF94AF95F1A7AF96AF97F1ACD5CEF1A9AF98AF99C8B3AF9AAF9BAF9CF1A2AF9DF1ABF1A8F1A5AF9EAF9FF1AAAFA0B040B041B042B043B044B045B046B0A9F1ADB047B048B049B04AB04BB04CF1AFB04DF1B1B04EB04FB050B051B052F1B0B053F1AEB054B055B056B057D1A2B058B059B05AB05BB05CB05DB05EF1B2B05FB060B061F1B3B062B063B064B065B066B067B068B069B9EFB06AB06BB5C7B06CB0D7B0D9B06DB06EB06FD4EDB070B5C4B071BDD4BBCAF0A7B072B073B8DEB074B075F0A8B076B077B0A8B078F0A9B079B07ACDEEB07BB07CF0AAB07DB07EB080B081B082B083B084B085B086B087F0ABB088B089B08AB08BB08CB08DB08EB08FB090C6A4B091B092D6E5F1E4B093F1E5B094B095B096B097B098B099B09AB09BB09CB09DC3F3B09EB09FD3DBB0A0B140D6D1C5E8B141D3AFB142D2E6B143B144EEC1B0BBD5B5D1CEBCE0BAD0B145BFF8B146B8C7B5C1C5CCB147B148CAA2B149B14AB14BC3CBB14CB14DB14EB14FB150EEC2B151B152B153B154B155B156B157B158C4BFB6A2B159EDECC3A4B15AD6B1B15BB15CB15DCFE0EDEFB15EB15FC5CEB160B6DCB161B162CAA1B163B164EDEDB165B166EDF0EDF1C3BCB167BFB4B168EDEEB169B16AB16BB16CB16DB16EB16FB170B171B172B173EDF4EDF2B174B175B176B177D5E6C3DFB178EDF3B179B17AB17BEDF6B17CD5A3D1A3B17DB17EB180EDF5B181C3D0B182B183B184B185B186EDF7BFF4BEECEDF8B187CCF7B188D1DBB189B18AB18BD7C5D5F6B18CEDFCB18DB18EB18FEDFBB190B191B192B193B194B195B196B197EDF9EDFAB198B199B19AB19BB19CB19DB19EB19FEDFDBEA6B1A0B240B241B242B243CBAFEEA1B6BDB244EEA2C4C0B245EDFEB246B247BDDEB2C7B248B249B24AB24BB24CB24DB24EB24FB250B251B252B253B6C3B254B255B256EEA5D8BAEEA3EEA6B257B258B259C3E9B3F2B25AB25BB25CB25DB25EB25FEEA7EEA4CFB9B260B261EEA8C2F7B262B263B264B265B266B267B268B269B26AB26BB26CB26DEEA9EEAAB26EDEABB26FB270C6B3B271C7C6B272D6F5B5C9B273CBB2B274B275B276EEABB277B278CDABB279EEACB27AB27BB27CB27DB27ED5B0B280EEADB281F6C4B282B283B284B285B286B287B288B289B28AB28BB28CB28DB28EDBC7B28FB290B291B292B293B294B295B296B297B4A3B298B299B29AC3ACF1E6B29BB29CB29DB29EB29FCAB8D2D3B2A0D6AAB340EFF2B341BED8B342BDC3EFF3B6CCB0ABB343B344B345B346CAAFB347B348EDB6B349EDB7B34AB34BB34CB34DCEF9B7AFBFF3EDB8C2EBC9B0B34EB34FB350B351B352B353EDB9B354B355C6F6BFB3B356B357B358EDBCC5F8B359D1D0B35AD7A9EDBAEDBBB35BD1E2B35CEDBFEDC0B35DEDC4B35EB35FB360EDC8B361EDC6EDCED5E8B362EDC9B363B364EDC7EDBEB365B366C5E9B367B368B369C6C6B36AB36BC9E9D4D2EDC1EDC2EDC3EDC5B36CC0F9B36DB4A1B36EB36FB370B371B9E8B372EDD0B373B374B375B376EDD1B377EDCAB378EDCFB379CEF8B37AB37BCBB6EDCCEDCDB37CB37DB37EB380B381CFF5B382B383B384B385B386B387B388B389B38AB38BB38CB38DEDD2C1F2D3B2EDCBC8B7B38EB38FB390B391B392B393B394B395BCEFB396B397B398B399C5F0B39AB39BB39CB39DB39EB39FB3A0B440B441B442EDD6B443B5EFB444B445C2B5B0ADCBE9B446B447B1AEB448EDD4B449B44AB44BCDEBB5E2B44CEDD5EDD3EDD7B44DB44EB5FAB44FEDD8B450EDD9B451EDDCB452B1CCB453B454B455B456B457B458B459B45AC5F6BCEEEDDACCBCB2EAB45BB45CB45DB45EEDDBB45FB460B461B462C4EBB463B464B4C5B465B466B467B0F5B468B469B46AEDDFC0DAB4E8B46BB46CB46DB46EC5CDB46FB470B471EDDDBFC4B472B473B474EDDEB475B476B477B478B479B47AB47BB47CB47DB47EB480B481B482B483C4A5B484B485B486EDE0B487B488B489B48AB48BEDE1B48CEDE3B48DB48EC1D7B48FB490BBC7B491B492B493B494B495B496BDB8B497B498B499EDE2B49AB49BB49CB49DB49EB49FB4A0B540B541B542B543B544B545EDE4B546B547B548B549B54AB54BB54CB54DB54EB54FEDE6B550B551B552B553B554EDE5B555B556B557B558B559B55AB55BB55CB55DB55EB55FB560B561B562B563EDE7B564B565B566B567B568CABEECEAC0F1B569C9E7B56AECEBC6EEB56BB56CB56DB56EECECB56FC6EDECEDB570B571B572B573B574B575B576B577B578ECF0B579B57AD7E6ECF3B57BB57CECF1ECEEECEFD7A3C9F1CBEEECF4B57DECF2B57EB580CFE9B581ECF6C6B1B582B583B584B585BCC0B586ECF5B587B588B589B58AB58BB58CB58DB5BBBBF6B58EECF7B58FB590B591B592B593D9F7BDFBB594B595C2BBECF8B596B597B598B599ECF9B59AB59BB59CB59DB8A3B59EB59FB5A0B640B641B642B643B644B645B646ECFAB647B648B649B64AB64BB64CB64DB64EB64FB650B651B652ECFBB653B654B655B656B657B658B659B65AB65BB65CB65DECFCB65EB65FB660B661B662D3EDD8AEC0EBB663C7DDBACCB664D0E3CBBDB665CDBAB666B667B8D1B668B669B1FCB66AC7EFB66BD6D6B66CB66DB66EBFC6C3EBB66FB670EFF5B671B672C3D8B673B674B675B676B677B678D7E2B679B67AB67BEFF7B3D3B67CC7D8D1EDB67DD6C8B67EEFF8B680EFF6B681BBFDB3C6B682B683B684B685B686B687B688BDD5B689B68AD2C6B68BBBE0B68CB68DCFA1B68EEFFCEFFBB68FB690EFF9B691B692B693B694B3CCB695C9D4CBB0B696B697B698B699B69AEFFEB69BB69CB0DEB69DB69ED6C9B69FB6A0B740EFFDB741B3EDB742B743F6D5B744B745B746B747B748B749B74AB74BB74CB74DB74EB74FB750B751B752CEC8B753B754B755F0A2B756F0A1B757B5BEBCDABBFCB758B8E5B759B75AB75BB75CB75DB75EC4C2B75FB760B761B762B763B764B765B766B767B768F0A3B769B76AB76BB76CB76DCBEBB76EB76FB770B771B772B773B774B775B776B777B778B779B77AB77BB77CB77DB77EB780B781B782B783B784B785B786F0A6B787B788B789D1A8B78ABEBFC7EEF1B6F1B7BFD5B78BB78CB78DB78EB4A9F1B8CDBBB78FC7D4D5ADB790F1B9B791F1BAB792B793B794B795C7CFB796B797B798D2A4D6CFB799B79AF1BBBDD1B4B0BEBDB79BB79CB79DB4DCCED1B79EBFDFF1BDB79FB7A0B840B841BFFAF1BCB842F1BFB843B844B845F1BEF1C0B846B847B848B849B84AF1C1B84BB84CB84DB84EB84FB850B851B852B853B854B855C1FEB856B857B858B859B85AB85BB85CB85DB85EB85FB860C1A2B861B862B863B864B865B866B867B868B869B86ACAFAB86BB86CD5BEB86DB86EB86FB870BEBABEB9D5C2B871B872BFA2B873CDAFF1B5B874B875B876B877B878B879BDDFB87AB6CBB87BB87CB87DB87EB880B881B882B883B884D6F1F3C3B885B886F3C4B887B8CDB888B889B88AF3C6F3C7B88BB0CAB88CF3C5B88DF3C9CBF1B88EB88FB890F3CBB891D0A6B892B893B1CAF3C8B894B895B896F3CFB897B5D1B898B899F3D7B89AF3D2B89BB89CB89DF3D4F3D3B7FBB89EB1BFB89FF3CEF3CAB5DAB8A0F3D0B940B941F3D1B942F3D5B943B944B945B946F3CDB947BCE3B948C1FDB949F3D6B94AB94BB94CB94DB94EB94FF3DAB950F3CCB951B5C8B952BDEEF3DCB953B954B7A4BFF0D6FECDB2B955B4F0B956B2DFB957F3D8B958F3D9C9B8B959F3DDB95AB95BF3DEB95CF3E1B95DB95EB95FB960B961B962B963B964B965B966B967F3DFB968B969F3E3F3E2B96AB96BF3DBB96CBFEAB96DB3EFB96EF3E0B96FB970C7A9B971BCF2B972B973B974B975F3EBB976B977B978B979B97AB97BB97CB9BFB97DB97EF3E4B980B981B982B2ADBBFEB983CBE3B984B985B986B987F3EDF3E9B988B989B98AB9DCF3EEB98BB98CB98DF3E5F3E6F3EAC2E1F3ECF3EFF3E8BCFDB98EB98FB990CFE4B991B992F3F0B993B994B995F3E7B996B997B998B999B99AB99BB99CB99DF3F2B99EB99FB9A0BA40D7ADC6AABA41BA42BA43BA44F3F3BA45BA46BA47BA48F3F1BA49C2A8BA4ABA4BBA4CBA4DBA4EB8DDF3F5BA4FBA50F3F4BA51BA52BA53B4DBBA54BA55BA56F3F6F3F7BA57BA58BA59F3F8BA5ABA5BBA5CC0BABA5DBA5EC0E9BA5FBA60BA61BA62BA63C5F1BA64BA65BA66BA67F3FBBA68F3FABA69BA6ABA6BBA6CBA6DBA6EBA6FBA70B4D8BA71BA72BA73F3FEF3F9BA74BA75F3FCBA76BA77BA78BA79BA7ABA7BF3FDBA7CBA7DBA7EBA80BA81BA82BA83BA84F4A1BA85BA86BA87BA88BA89BA8AF4A3BBC9BA8BBA8CF4A2BA8DBA8EBA8FBA90BA91BA92BA93BA94BA95BA96BA97BA98BA99F4A4BA9ABA9BBA9CBA9DBA9EBA9FB2BEF4A6F4A5BAA0BB40BB41BB42BB43BB44BB45BB46BB47BB48BB49BCAEBB4ABB4BBB4CBB4DBB4EBB4FBB50BB51BB52BB53BB54BB55BB56BB57BB58BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB61BB62BB63BB64BB65BB66BB67BB68BB69BB6ABB6BBB6CBB6DBB6EC3D7D9E1BB6FBB70BB71BB72BB73BB74C0E0F4CCD7D1BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB80B7DBBB81BB82BB83BB84BB85BB86BB87F4CEC1A3BB88BB89C6C9BB8AB4D6D5B3BB8BBB8CBB8DF4D0F4CFF4D1CBDABB8EBB8FF4D2BB90D4C1D6E0BB91BB92BB93BB94B7E0BB95BB96BB97C1B8BB98BB99C1BBF4D3BEACBB9ABB9BBB9CBB9DBB9EB4E2BB9FBBA0F4D4F4D5BEABBC40BC41F4D6BC42BC43BC44F4DBBC45F4D7F4DABC46BAFDBC47F4D8F4D9BC48BC49BC4ABC4BBC4CBC4DBC4EB8E2CCC7F4DCBC4FB2DABC50BC51C3D3BC52BC53D4E3BFB7BC54BC55BC56BC57BC58BC59BC5AF4DDBC5BBC5CBC5DBC5EBC5FBC60C5B4BC61BC62BC63BC64BC65BC66BC67BC68F4E9BC69BC6ACFB5BC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78CEC9BC79BC7ABC7BBC7CBC7DBC7EBC80BC81BC82BC83BC84BC85BC86BC87BC88BC89BC8ABC8BBC8CBC8DBC8ECBD8BC8FCBF7BC90BC91BC92BC93BDF4BC94BC95BC96D7CFBC97BC98BC99C0DBBC9ABC9BBC9CBC9DBC9EBC9FBCA0BD40BD41BD42BD43BD44BD45BD46BD47BD48BD49BD4ABD4BBD4CBD4DBD4EBD4FBD50BD51BD52BD53BD54BD55BD56BD57BD58BD59BD5ABD5BBD5CBD5DBD5EBD5FBD60BD61BD62BD63BD64BD65BD66BD67BD68BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71BD72BD73BD74BD75BD76D0F5BD77BD78BD79BD7ABD7BBD7CBD7DBD7EF4EABD80BD81BD82BD83BD84BD85BD86BD87BD88BD89BD8ABD8BBD8CBD8DBD8EBD8FBD90BD91BD92BD93BD94BD95BD96BD97BD98BD99BD9ABD9BBD9CBD9DBD9EBD9FBDA0BE40BE41BE42BE43BE44BE45BE46BE47BE48BE49BE4ABE4BBE4CF4EBBE4DBE4EBE4FBE50BE51BE52BE53F4ECBE54BE55BE56BE57BE58BE59BE5ABE5BBE5CBE5DBE5EBE5FBE60BE61BE62BE63BE64BE65BE66BE67BE68BE69BE6ABE6BBE6CBE6DBE6EBE6FBE70BE71BE72BE73BE74BE75BE76BE77BE78BE79BE7ABE7BBE7CBE7DBE7EBE80BE81BE82BE83BE84BE85BE86BE87BE88BE89BE8ABE8BBE8CBE8DBE8EBE8FBE90BE91BE92BE93BE94BE95BE96BE97BE98BE99BE9ABE9BBE9CBE9DBE9EBE9FBEA0BF40BF41BF42BF43BF44BF45BF46BF47BF48BF49BF4ABF4BBF4CBF4DBF4EBF4FBF50BF51BF52BF53BF54BF55BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF80F7E3BF81BF82BF83BF84BF85B7B1BF86BF87BF88BF89BF8AF4EDBF8BBF8CBF8DBF8EBF8FBF90BF91BF92BF93BF94BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9DBF9EBF9FBFA0C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04EC04FC050C051C052C053C054C055C056C057C058C059C05AC05BC05CC05DC05EC05FC060C061C062C063D7EBC064C065C066C067C068C069C06AC06BC06CC06DC06EC06FC070C071C072C073C074C075C076C077C078C079C07AC07BF4EEC07CC07DC07EE6F9BEC0E6FABAECE6FBCFCBE6FCD4BCBCB6E6FDE6FEBCCDC8D2CEB3E7A1C080B4BFE7A2C9B4B8D9C4C9C081D7DDC2DAB7D7D6BDCEC6B7C4C082C083C5A6E7A3CFDFE7A4E7A5E7A6C1B7D7E9C9F0CFB8D6AFD6D5E7A7B0EDE7A8E7A9C9DCD2EFBEADE7AAB0F3C8DEBDE1E7ABC8C6C084E7ACBBE6B8F8D1A4E7ADC2E7BEF8BDCACDB3E7AEE7AFBEEED0E5C085CBE7CCD0BCCCE7B0BCA8D0F7E7B1C086D0F8E7B2E7B3B4C2E7B4E7B5C9FECEACC3E0E7B7B1C1B3F1C087E7B8E7B9D7DBD5C0E7BAC2CCD7BAE7BBE7BCE7BDBCEAC3E5C0C2E7BEE7BFBCA9C088E7C0E7C1E7B6B6D0E7C2C089E7C3E7C4BBBAB5DEC2C6B1E0E7C5D4B5E7C6B8BFE7C8E7C7B7ECC08AE7C9B2F8E7CAE7CBE7CCE7CDE7CEE7CFE7D0D3A7CBF5E7D1E7D2E7D3E7D4C9C9E7D5E7D6E7D7E7D8E7D9BDC9E7DAF3BEC08BB8D7C08CC8B1C08DC08EC08FC090C091C092C093F3BFC094F3C0F3C1C095C096C097C098C099C09AC09BC09CC09DC09EB9DECDF8C09FC0A0D8E8BAB1C140C2DEEEB7C141B7A3C142C143C144C145EEB9C146EEB8B0D5C147C148C149C14AC14BEEBBD5D6D7EFC14CC14DC14ED6C3C14FC150EEBDCAF0C151EEBCC152C153C154C155EEBEC156C157C158C159EEC0C15AC15BEEBFC15CC15DC15EC15FC160C161C162C163D1F2C164C7BCC165C3C0C166C167C168C169C16AB8E1C16BC16CC16DC16EC16FC1E7C170C171F4C6D0DFF4C7C172CFDBC173C174C8BAC175C176F4C8C177C178C179C17AC17BC17CC17DF4C9F4CAC17EF4CBC180C181C182C183C184D9FAB8FEC185C186E5F1D3F0C187F4E0C188CECCC189C18AC18BB3E1C18CC18DC18EC18FF1B4C190D2EEC191F4E1C192C193C194C195C196CFE8F4E2C197C198C7CCC199C19AC19BC19CC19DC19EB5D4B4E4F4E4C19FC1A0C240F4E3F4E5C241C242F4E6C243C244C245C246F4E7C247BAB2B0BFC248F4E8C249C24AC24BC24CC24DC24EC24FB7ADD2EDC250C251C252D2ABC0CFC253BFBCEBA3D5DFEAC8C254C255C256C257F1F3B6F8CBA3C258C259C4CDC25AF1E7C25BF1E8B8FBF1E9BAC4D4C5B0D2C25CC25DF1EAC25EC25FC260F1EBC261F1ECC262C263F1EDF1EEF1EFF1F1F1F0C5D5C264C265C266C267C268C269F1F2C26AB6FAC26BF1F4D2AEDEC7CBCAC26CC26DB3DCC26EB5A2C26FB9A2C270C271C4F4F1F5C272C273F1F6C274C275C276C1C4C1FBD6B0F1F7C277C278C279C27AF1F8C27BC1AAC27CC27DC27EC6B8C280BEDBC281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EF1F9B4CFC28FC290C291C292C293C294F1FAC295C296C297C298C299C29AC29BC29CC29DC29EC29FC2A0C340EDB2EDB1C341C342CBE0D2DEC343CBC1D5D8C344C8E2C345C0DFBCA1C346C347C348C349C34AC34BEBC1C34CC34DD0A4C34ED6E2C34FB6C7B8D8EBC0B8CEC350EBBFB3A6B9C9D6ABC351B7F4B7CAC352C353C354BCE7B7BEEBC6C355EBC7B0B9BFCFC356EBC5D3FDC357EBC8C358C359EBC9C35AC35BB7CEC35CEBC2EBC4C9F6D6D7D5CDD0B2EBCFCEB8EBD0C35DB5A8C35EC35FC360C361C362B1B3EBD2CCA5C363C364C365C366C367C368C369C5D6EBD3C36AEBD1C5DFEBCECAA4EBD5B0FBC36BC36CBAFAC36DC36ED8B7F1E3C36FEBCAEBCBEBCCEBCDEBD6E6C0EBD9C370BFE8D2C8EBD7EBDCB8ECEBD8C371BDBAC372D0D8C373B0B7C374EBDDC4DCC375C376C377C378D6ACC379C37AC37BB4E0C37CC37DC2F6BCB9C37EC380EBDAEBDBD4E0C6EAC4D4EBDFC5A7D9F5C381B2B1C382EBE4C383BDC5C384C385C386EBE2C387C388C389C38AC38BC38CC38DC38EC38FC390C391C392C393EBE3C394C395B8ACC396CDD1EBE5C397C398C399EBE1C39AC1B3C39BC39CC39DC39EC39FC6A2C3A0C440C441C442C443C444C445CCF3C446EBE6C447C0B0D2B8EBE7C448C449C44AB8AFB8ADC44BEBE8C7BBCDF3C44CC44DC44EEBEAEBEBC44FC450C451C452C453EBEDC454C455C456C457D0C8C458EBF2C459EBEEC45AC45BC45CEBF1C8F9C45DD1FCEBECC45EC45FEBE9C460C461C462C463B8B9CFD9C4E5EBEFEBF0CCDACDC8B0F2C464EBF6C465C466C467C468C469EBF5C46AB2B2C46BC46CC46DC46EB8E0C46FEBF7C470C471C472C473C474C475B1ECC476C477CCC5C4A4CFA5C478C479C47AC47BC47CEBF9C47DC47EECA2C480C5F2C481EBFAC482C483C484C485C486C487C488C489C9C5C48AC48BC48CC48DC48EC48FE2DFEBFEC490C491C492C493CDCEECA1B1DBD3B7C494C495D2DCC496C497C498EBFDC499EBFBC49AC49BC49CC49DC49EC49FC4A0C540C541C542C543C544C545C546C547C548C549C54AC54BC54CC54DC54EB3BCC54FC550C551EAB0C552C553D7D4C554F4ABB3F4C555C556C557C558C559D6C1D6C2C55AC55BC55CC55DC55EC55FD5E9BECAC560F4A7C561D2A8F4A8F4A9C562F4AABECBD3DFC563C564C565C566C567C9E0C9E1C568C569F3C2C56ACAE6C56BCCF2C56CC56DC56EC56FC570C571E2B6CBB4C572CEE8D6DBC573F4ADF4AEF4AFC574C575C576C577F4B2C578BABDF4B3B0E3F4B0C579F4B1BDA2B2D5C57AF4B6F4B7B6E6B2B0CFCFF4B4B4ACC57BF4B5C57CC57DF4B8C57EC580C581C582C583F4B9C584C585CDA7C586F4BAC587F4BBC588C589C58AF4BCC58BC58CC58DC58EC58FC590C591C592CBD2C593F4BDC594C595C596C597F4BEC598C599C59AC59BC59CC59DC59EC59FF4BFC5A0C640C641C642C643F4DEC1BCBCE8C644C9ABD1DEE5F5C645C646C647C648DCB3D2D5C649C64ADCB4B0ACDCB5C64BC64CBDDAC64DDCB9C64EC64FC650D8C2C651DCB7D3F3C652C9D6DCBADCB6C653DCBBC3A2C654C655C656C657DCBCDCC5DCBDC658C659CEDFD6A5C65ADCCFC65BDCCDC65CC65DDCD2BDE6C2ABC65EDCB8DCCBDCCEDCBEB7D2B0C5DCC7D0BEDCC1BBA8C65FB7BCDCCCC660C661DCC6DCBFC7DBC662C663C664D1BFDCC0C665C666DCCAC667C668DCD0C669C66ACEADDCC2C66BDCC3DCC8DCC9B2D4DCD1CBD5C66CD4B7DCDBDCDFCCA6DCE6C66DC3E7DCDCC66EC66FBFC1DCD9C670B0FAB9B6DCE5DCD3C671DCC4DCD6C8F4BFE0C672C673C674C675C9BBC676C677C678B1BDC679D3A2C67AC67BDCDAC67CC67DDCD5C67EC6BBC680DCDEC681C682C683C684C685D7C2C3AFB7B6C7D1C3A9DCE2DCD8DCEBDCD4C686C687DCDDC688BEA5DCD7C689DCE0C68AC68BDCE3DCE4C68CDCF8C68DC68EDCE1DDA2DCE7C68FC690C691C692C693C694C695C696C697C698BCEBB4C4C699C69AC3A3B2E7DCFAC69BDCF2C69CDCEFC69DDCFCDCEED2F0B2E8C69EC8D7C8E3DCFBC69FDCEDC6A0C740C741DCF7C742C743DCF5C744C745BEA3DCF4C746B2DDC747C748C749C74AC74BDCF3BCF6DCE8BBC4C74CC0F3C74DC74EC74FC750C751BCD4DCE9DCEAC752DCF1DCF6DCF9B5B4C753C8D9BBE7DCFEDCFDD3ABDDA1DDA3DDA5D2F1DDA4DDA6DDA7D2A9C754C755C756C757C758C759C75ABAC9DDA9C75BC75CDDB6DDB1DDB4C75DC75EC75FC760C761C762C763DDB0C6CEC764C765C0F2C766C767C768C769C9AFC76AC76BC76CDCECDDAEC76DC76EC76FC770DDB7C771C772DCF0DDAFC773DDB8C774DDACC775C776C777C778C779C77AC77BDDB9DDB3DDADC4AAC77CC77DC77EC780DDA8C0B3C1ABDDAADDABC781DDB2BBF1DDB5D3A8DDBAC782DDBBC3A7C783C784DDD2DDBCC785C786C787DDD1C788B9BDC789C78ABED5C78BBEFAC78CC78DBACAC78EC78FC790C791DDCAC792DDC5C793DDBFC794C795C796B2CBDDC3C797DDCBB2A4DDD5C798C799C79ADDBEC79BC79CC79DC6D0DDD0C79EC79FC7A0C840C841DDD4C1E2B7C6C842C843C844C845C846DDCEDDCFC847C848C849DDC4C84AC84BC84CDDBDC84DDDCDCCD1C84EDDC9C84FC850C851C852DDC2C3C8C6BCCEAEDDCCC853DDC8C854C855C856C857C858C859DDC1C85AC85BC85CDDC6C2DCC85DC85EC85FC860C861C862D3A9D3AADDD3CFF4C8F8C863C864C865C866C867C868C869C86ADDE6C86BC86CC86DC86EC86FC870DDC7C871C872C873DDE0C2E4C874C875C876C877C878C879C87AC87BDDE1C87CC87DC87EC880C881C882C883C884C885C886DDD7C887C888C889C88AC88BD6F8C88CDDD9DDD8B8F0DDD6C88DC88EC88FC890C6CFC891B6ADC892C893C894C895C896DDE2C897BAF9D4E1DDE7C898C899C89AB4D0C89BDDDAC89CBFFBDDE3C89DDDDFC89EDDDDC89FC8A0C940C941C942C943C944B5D9C945C946C947C948DDDBDDDCDDDEC949BDAFDDE4C94ADDE5C94BC94CC94DC94EC94FC950C951C952DDF5C953C3C9C954C955CBE2C956C957C958C959DDF2C95AC95BC95CC95DC95EC95FC960C961C962C963C964C965C966D8E1C967C968C6D1C969DDF4C96AC96BC96CD5F4DDF3DDF0C96DC96EDDECC96FDDEFC970DDE8C971C972D0EEC973C974C975C976C8D8DDEEC977C978DDE9C979C97ADDEACBF2C97BDDEDC97CC97DB1CDC97EC980C981C982C983C984C0B6C985BCBBDDF1C986C987DDF7C988DDF6DDEBC989C98AC98BC98CC98DC5EEC98EC98FC990DDFBC991C992C993C994C995C996C997C998C999C99AC99BDEA4C99CC99DDEA3C99EC99FC9A0CA40CA41CA42CA43CA44CA45CA46CA47CA48DDF8CA49CA4ACA4BCA4CC3EFCA4DC2FBCA4ECA4FCA50D5E1CA51CA52CEB5CA53CA54CA55CA56DDFDCA57B2CCCA58CA59CA5ACA5BCA5CCA5DCA5ECA5FCA60C4E8CADFCA61CA62CA63CA64CA65CA66CA67CA68CA69CA6AC7BEDDFADDFCDDFEDEA2B0AAB1CECA6BCA6CCA6DCA6ECA6FDEACCA70CA71CA72CA73DEA6BDB6C8EFCA74CA75CA76CA77CA78CA79CA7ACA7BCA7CCA7DCA7EDEA1CA80CA81DEA5CA82CA83CA84CA85DEA9CA86CA87CA88CA89CA8ADEA8CA8BCA8CCA8DDEA7CA8ECA8FCA90CA91CA92CA93CA94CA95CA96DEADCA97D4CCCA98CA99CA9ACA9BDEB3DEAADEAECA9CCA9DC0D9CA9ECA9FCAA0CB40CB41B1A1DEB6CB42DEB1CB43CB44CB45CB46CB47CB48CB49DEB2CB4ACB4BCB4CCB4DCB4ECB4FCB50CB51CB52CB53CB54D1A6DEB5CB55CB56CB57CB58CB59CB5ACB5BDEAFCB5CCB5DCB5EDEB0CB5FD0BDCB60CB61CB62DEB4CAEDDEB9CB63CB64CB65CB66CB67CB68DEB8CB69DEB7CB6ACB6BCB6CCB6DCB6ECB6FCB70DEBBCB71CB72CB73CB74CB75CB76CB77BDE5CB78CB79CB7ACB7BCB7CB2D8C3EACB7DCB7EDEBACB80C5BACB81CB82CB83CB84CB85CB86DEBCCB87CB88CB89CB8ACB8BCB8CCB8DCCD9CB8ECB8FCB90CB91B7AACB92CB93CB94CB95CB96CB97CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FCBA0CC40CC41D4E5CC42CC43CC44DEBDCC45CC46CC47CC48CC49DEBFCC4ACC4BCC4CCC4DCC4ECC4FCC50CC51CC52CC53CC54C4A2CC55CC56CC57CC58DEC1CC59CC5ACC5BCC5CCC5DCC5ECC5FCC60CC61CC62CC63CC64CC65CC66CC67CC68DEBECC69DEC0CC6ACC6BCC6CCC6DCC6ECC6FCC70CC71CC72CC73CC74CC75CC76CC77D5BACC78CC79CC7ADEC2CC7BCC7CCC7DCC7ECC80CC81CC82CC83CC84CC85CC86CC87CC88CC89CC8ACC8BF2AEBBA2C2B2C5B0C2C7CC8CCC8DF2AFCC8ECC8FCC90CC91CC92D0E9CC93CC94CC95D3DDCC96CC97CC98EBBDCC99CC9ACC9BCC9CCC9DCC9ECC9FCCA0B3E6F2B0CD40F2B1CD41CD42CAADCD43CD44CD45CD46CD47CD48CD49BAE7F2B3F2B5F2B4CBE4CFBAF2B2CAB4D2CFC2ECCD4ACD4BCD4CCD4DCD4ECD4FCD50CEC3F2B8B0F6F2B7CD51CD52CD53CD54CD55F2BECD56B2CFCD57CD58CD59CD5ACD5BCD5CD1C1F2BACD5DCD5ECD5FCD60CD61F2BCD4E9CD62CD63F2BBF2B6F2BFF2BDCD64F2B9CD65CD66F2C7F2C4F2C6CD67CD68F2CAF2C2F2C0CD69CD6ACD6BF2C5CD6CCD6DCD6ECD6FCD70D6FBCD71CD72CD73F2C1CD74C7F9C9DFCD75F2C8B9C6B5B0CD76CD77F2C3F2C9F2D0F2D6CD78CD79BBD7CD7ACD7BCD7CF2D5CDDCCD7DD6EBCD7ECD80F2D2F2D4CD81CD82CD83CD84B8F2CD85CD86CD87CD88F2CBCD89CD8ACD8BF2CEC2F9CD8CD5DDF2CCF2CDF2CFF2D3CD8DCD8ECD8FF2D9D3BCCD90CD91CD92CD93B6EACD94CAF1CD95B7E4F2D7CD96CD97CD98F2D8F2DAF2DDF2DBCD99CD9AF2DCCD9BCD9CCD9DCD9ED1D1F2D1CD9FCDC9CDA0CECFD6A9CE40F2E3CE41C3DBCE42F2E0CE43CE44C0AFF2ECF2DECE45F2E1CE46CE47CE48F2E8CE49CE4ACE4BCE4CF2E2CE4DCE4EF2E7CE4FCE50F2E6CE51CE52F2E9CE53CE54CE55F2DFCE56CE57F2E4F2EACE58CE59CE5ACE5BCE5CCE5DCE5ED3ACF2E5B2F5CE5FCE60F2F2CE61D0ABCE62CE63CE64CE65F2F5CE66CE67CE68BBC8CE69F2F9CE6ACE6BCE6CCE6DCE6ECE6FF2F0CE70CE71F2F6F2F8F2FACE72CE73CE74CE75CE76CE77CE78CE79F2F3CE7AF2F1CE7BCE7CCE7DBAFBCE7EB5FBCE80CE81CE82CE83F2EFF2F7F2EDF2EECE84CE85CE86F2EBF3A6CE87F3A3CE88CE89F3A2CE8ACE8BF2F4CE8CC8DACE8DCE8ECE8FCE90CE91F2FBCE92CE93CE94F3A5CE95CE96CE97CE98CE99CE9ACE9BC3F8CE9CCE9DCE9ECE9FCEA0CF40CF41CF42F2FDCF43CF44F3A7F3A9F3A4CF45F2FCCF46CF47CF48F3ABCF49F3AACF4ACF4BCF4CCF4DC2DDCF4ECF4FF3AECF50CF51F3B0CF52CF53CF54CF55CF56F3A1CF57CF58CF59F3B1F3ACCF5ACF5BCF5CCF5DCF5EF3AFF2FEF3ADCF5FCF60CF61CF62CF63CF64CF65F3B2CF66CF67CF68CF69F3B4CF6ACF6BCF6CCF6DF3A8CF6ECF6FCF70CF71F3B3CF72CF73CF74F3B5CF75CF76CF77CF78CF79CF7ACF7BCF7CCF7DCF7ED0B7CF80CF81CF82CF83F3B8CF84CF85CF86CF87D9F9CF88CF89CF8ACF8BCF8CCF8DF3B9CF8ECF8FCF90CF91CF92CF93CF94CF95F3B7CF96C8E4F3B6CF97CF98CF99CF9AF3BACF9BCF9CCF9DCF9ECF9FF3BBB4C0CFA0D040D041D042D043D044D045D046D047D048D049D04AD04BD04CD04DEEC3D04ED04FD050D051D052D053F3BCD054D055F3BDD056D057D058D1AAD059D05AD05BF4ACD0C6D05CD05DD05ED05FD060D061D0D0D1DCD062D063D064D065D066D067CFCED068D069BDD6D06AD1C3D06BD06CD06DD06ED06FD070D071BAE2E1E9D2C2F1C2B2B9D072D073B1EDF1C3D074C9C0B3C4D075D9F2D076CBA5D077F1C4D078D079D07AD07BD6D4D07CD07DD07ED080D081F1C5F4C0F1C6D082D4ACF1C7D083B0C0F4C1D084D085F4C2D086D087B4FCD088C5DBD089D08AD08BD08CCCBBD08DD08ED08FD0E4D090D091D092D093D094CDE0D095D096D097D098D099F1C8D09AD9F3D09BD09CD09DD09ED09FD0A0B1BBD140CFAED141D142D143B8A4D144D145D146D147D148F1CAD149D14AD14BD14CF1CBD14DD14ED14FD150B2C3C1D1D151D152D7B0F1C9D153D154F1CCD155D156D157D158F1CED159D15AD15BD9F6D15CD2E1D4A3D15DD15EF4C3C8B9D15FD160D161D162D163F4C4D164D165F1CDF1CFBFE3F1D0D166D167F1D4D168D169D16AD16BD16CD16DD16EF1D6F1D1D16FC9D1C5E1D170D171D172C2E3B9FCD173D174F1D3D175F1D5D176D177D178B9D3D179D17AD17BD17CD17DD17ED180F1DBD181D182D183D184D185BAD6D186B0FDF1D9D187D188D189D18AD18BF1D8F1D2F1DAD18CD18DD18ED18FD190F1D7D191D192D193C8ECD194D195D196D197CDCAF1DDD198D199D19AD19BE5BDD19CD19DD19EF1DCD19FF1DED1A0D240D241D242D243D244D245D246D247D248F1DFD249D24ACFE5D24BD24CD24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25BD25CD25DD25ED25FD260D261D262D263F4C5BDF3D264D265D266D267D268D269F1E0D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277D278D279D27AD27BD27CD27DF1E1D27ED280D281CEF7D282D2AAD283F1FBD284D285B8B2D286D287D288D289D28AD28BD28CD28DD28ED28FD290D291D292D293D294D295D296D297D298D299D29AD29BD29CD29DD29ED29FD2A0D340D341D342D343D344D345D346D347D348D349D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358D359D35AD35BD35CD35DD35EBCFBB9DBD35FB9E6C3D9CAD3EAE8C0C0BEF5EAE9EAEAEAEBD360EAECEAEDEAEEEAEFBDC7D361D362D363F5FBD364D365D366F5FDD367F5FED368F5FCD369D36AD36BD36CBDE2D36DF6A1B4A5D36ED36FD370D371F6A2D372D373D374F6A3D375D376D377ECB2D378D379D37AD37BD37CD37DD37ED380D381D382D383D384D1D4D385D386D387D388D389D38AD9EAD38BD38CD38DD38ED38FD390D391D392D393D394D395D396D397D398D399D39AD39BD39CD39DD39ED39FD3A0D440D441D442D443D444D445D446D447D448D449D44AD44BD44CD44DD44ED44FD450D451D452D453D454D455D456D457D458D459D45AD45BD45CD45DD45ED45FF6A4D460D461D462D463D464D465D466D467D468EEBAD469D46AD46BD46CD46DD46ED46FD470D471D472D473D474D475D476D477D478D479D47AD47BD47CD47DD47ED480D481D482D483D484D485D486D487D488D489D48AD48BD48CD48DD48ED48FD490D491D492D493D494D495D496D497D498D499D5B2D49AD49BD49CD49DD49ED49FD4A0D540D541D542D543D544D545D546D547D3FECCDCD548D549D54AD54BD54CD54DD54ED54FCAC4D550D551D552D553D554D555D556D557D558D559D55AD55BD55CD55DD55ED55FD560D561D562D563D564D565D566D567D568D569D56AD56BD56CD56DD56ED56FD570D571D572D573D574D575D576D577D578D579D57AD57BD57CD57DD57ED580D581D582D583D584D585D586D587D588D589D58AD58BD58CD58DD58ED58FD590D591D592D593D594D595D596D597D598D599D59AD59BD59CD59DD59ED59FD5A0D640D641D642D643D644D645D646D647D648D649D64AD64BD64CD64DD64ED64FD650D651D652D653D654D655D656D657D658D659D65AD65BD65CD65DD65ED65FD660D661D662E5C0D663D664D665D666D667D668D669D66AD66BD66CD66DD66ED66FD670D671D672D673D674D675D676D677D678D679D67AD67BD67CD67DD67ED680D681F6A5D682D683D684D685D686D687D688D689D68AD68BD68CD68DD68ED68FD690D691D692D693D694D695D696D697D698D699D69AD69BD69CD69DD69ED69FD6A0D740D741D742D743D744D745D746D747D748D749D74AD74BD74CD74DD74ED74FD750D751D752D753D754D755D756D757D758D759D75AD75BD75CD75DD75ED75FBEAFD760D761D762D763D764C6A9D765D766D767D768D769D76AD76BD76CD76DD76ED76FD770D771D772D773D774D775D776D777D778D779D77AD77BD77CD77DD77ED780D781D782D783D784D785D786D787D788D789D78AD78BD78CD78DD78ED78FD790D791D792D793D794D795D796D797D798DAA5BCC6B6A9B8BCC8CFBCA5DAA6DAA7CCD6C8C3DAA8C6FDD799D1B5D2E9D1B6BCC7D79ABDB2BBE4DAA9DAAAD1C8DAABD0EDB6EFC2DBD79BCBCFB7EDC9E8B7C3BEF7D6A4DAACDAADC6C0D7E7CAB6D79CD5A9CBDFD5EFDAAED6DFB4CADAB0DAAFD79DD2EBDAB1DAB2DAB3CAD4DAB4CAABDAB5DAB6B3CFD6EFDAB7BBB0B5AEDAB8DAB9B9EED1AFD2E8DABAB8C3CFEAB2EFDABBDABCD79EBDEBCEDCD3EFDABDCEF3DABED3D5BBE5DABFCBB5CBD0DAC0C7EBD6EEDAC1C5B5B6C1DAC2B7CCBFCEDAC3DAC4CBADDAC5B5F7DAC6C1C2D7BBDAC7CCB8D79FD2EAC4B1DAC8B5FDBBD1DAC9D0B3DACADACBCEBDDACCDACDDACEB2F7DAD1DACFD1E8DAD0C3D5DAD2D7A0DAD3DAD4DAD5D0BBD2A5B0F9DAD6C7ABDAD7BDF7C3A1DAD8DAD9C3FDCCB7DADADADBC0BEC6D7DADCDADDC7B4DADEDADFB9C8D840D841D842D843D844D845D846D847D848BBEDD849D84AD84BD84CB6B9F4F8D84DF4F9D84ED84FCDE3D850D851D852D853D854D855D856D857F5B9D858D859D85AD85BEBE0D85CD85DD85ED85FD860D861CFF3BBBFD862D863D864D865D866D867D868BAC0D4A5D869D86AD86BD86CD86DD86ED86FE1D9D870D871D872D873F5F4B1AAB2F2D874D875D876D877D878D879D87AF5F5D87BD87CF5F7D87DD87ED880BAD1F5F6D881C3B2D882D883D884D885D886D887D888F5F9D889D88AD88BF5F8D88CD88DD88ED88FD890D891D892D893D894D895D896D897D898D899D89AD89BD89CD89DD89ED89FD8A0D940D941D942D943D944D945D946D947D948D949D94AD94BD94CD94DD94ED94FD950D951D952D953D954D955D956D957D958D959D95AD95BD95CD95DD95ED95FD960D961D962D963D964D965D966D967D968D969D96AD96BD96CD96DD96ED96FD970D971D972D973D974D975D976D977D978D979D97AD97BD97CD97DD97ED980D981D982D983D984D985D986D987D988D989D98AD98BD98CD98DD98ED98FD990D991D992D993D994D995D996D997D998D999D99AD99BD99CD99DD99ED99FD9A0DA40DA41DA42DA43DA44DA45DA46DA47DA48DA49DA4ADA4BDA4CDA4DDA4EB1B4D5EAB8BADA4FB9B1B2C6D4F0CFCDB0DCD5CBBBF5D6CAB7B7CCB0C6B6B1E1B9BAD6FCB9E1B7A1BCFAEADAEADBCCF9B9F3EADCB4FBC3B3B7D1BAD8EADDD4F4EADEBCD6BBDFEADFC1DEC2B8D4DFD7CAEAE0EAE1EAE4EAE2EAE3C9DEB8B3B6C4EAE5CAEAC9CDB4CDDA50DA51E2D9C5E2EAE6C0B5DA52D7B8EAE7D7ACC8FCD8D3D8CDD4DEDA53D4F9C9C4D3AEB8D3B3E0DA54C9E2F4F6DA55DA56DA57BAD5DA58F4F7DA59DA5AD7DFDA5BDA5CF4F1B8B0D5D4B8CFC6F0DA5DDA5EDA5FDA60DA61DA62DA63DA64DA65B3C3DA66DA67F4F2B3ACDA68DA69DA6ADA6BD4BDC7F7DA6CDA6DDA6EDA6FDA70F4F4DA71DA72F4F3DA73DA74DA75DA76DA77DA78DA79DA7ADA7BDA7CCCCBDA7DDA7EDA80C8A4DA81DA82DA83DA84DA85DA86DA87DA88DA89DA8ADA8BDA8CDA8DF4F5DA8ED7E3C5BFF5C0DA8FDA90F5BBDA91F5C3DA92F5C2DA93D6BAF5C1DA94DA95DA96D4BEF5C4DA97F5CCDA98DA99DA9ADA9BB0CFB5F8DA9CF5C9F5CADA9DC5DCDA9EDA9FDAA0DB40F5C5F5C6DB41DB42F5C7F5CBDB43BEE0F5C8B8FADB44DB45DB46F5D0F5D3DB47DB48DB49BFE7DB4AB9F2F5BCF5CDDB4BDB4CC2B7DB4DDB4EDB4FCCF8DB50BCF9DB51F5CEF5CFF5D1B6E5F5D2DB52F5D5DB53DB54DB55DB56DB57DB58DB59F5BDDB5ADB5BDB5CF5D4D3BBDB5DB3ECDB5EDB5FCCA4DB60DB61DB62DB63F5D6DB64DB65DB66DB67DB68DB69DB6ADB6BF5D7BEE1F5D8DB6CDB6DCCDFF5DBDB6EDB6FDB70DB71DB72B2C8D7D9DB73F5D9DB74F5DAF5DCDB75F5E2DB76DB77DB78F5E0DB79DB7ADB7BF5DFF5DDDB7CDB7DF5E1DB7EDB80F5DEF5E4F5E5DB81CCE3DB82DB83E5BFB5B8F5E3F5E8CCA3DB84DB85DB86DB87DB88F5E6F5E7DB89DB8ADB8BDB8CDB8DDB8EF5BEDB8FDB90DB91DB92DB93DB94DB95DB96DB97DB98DB99DB9AB1C4DB9BDB9CF5BFDB9DDB9EB5C5B2E4DB9FF5ECF5E9DBA0B6D7DC40F5EDDC41F5EADC42DC43DC44DC45DC46F5EBDC47DC48B4DADC49D4EADC4ADC4BDC4CF5EEDC4DB3F9DC4EDC4FDC50DC51DC52DC53DC54F5EFF5F1DC55DC56DC57F5F0DC58DC59DC5ADC5BDC5CDC5DDC5EF5F2DC5FF5F3DC60DC61DC62DC63DC64DC65DC66DC67DC68DC69DC6ADC6BC9EDB9AADC6CDC6DC7FBDC6EDC6FB6E3DC70DC71DC72DC73DC74DC75DC76CCC9DC77DC78DC79DC7ADC7BDC7CDC7DDC7EDC80DC81DC82DC83DC84DC85DC86DC87DC88DC89DC8AEAA6DC8BDC8CDC8DDC8EDC8FDC90DC91DC92DC93DC94DC95DC96DC97DC98DC99DC9ADC9BDC9CDC9DDC9EDC9FDCA0DD40DD41DD42DD43DD44DD45DD46DD47DD48DD49DD4ADD4BDD4CDD4DDD4EDD4FDD50DD51DD52DD53DD54DD55DD56DD57DD58DD59DD5ADD5BDD5CDD5DDD5EDD5FDD60DD61DD62DD63DD64DD65DD66DD67DD68DD69DD6ADD6BDD6CDD6DDD6EDD6FDD70DD71DD72DD73DD74DD75DD76DD77DD78DD79DD7ADD7BDD7CDD7DDD7EDD80DD81DD82DD83DD84DD85DD86DD87DD88DD89DD8ADD8BDD8CDD8DDD8EDD8FDD90DD91DD92DD93DD94DD95DD96DD97DD98DD99DD9ADD9BDD9CDD9DDD9EDD9FDDA0DE40DE41DE42DE43DE44DE45DE46DE47DE48DE49DE4ADE4BDE4CDE4DDE4EDE4FDE50DE51DE52DE53DE54DE55DE56DE57DE58DE59DE5ADE5BDE5CDE5DDE5EDE5FDE60B3B5D4FEB9ECD0F9DE61E9EDD7AAE9EEC2D6C8EDBAE4E9EFE9F0E9F1D6E1E9F2E9F3E9F5E9F4E9F6E9F7C7E1E9F8D4D8E9F9BDCEDE62E9FAE9FBBDCFE9FCB8A8C1BEE9FDB1B2BBD4B9F5E9FEDE63EAA1EAA2EAA3B7F8BCADDE64CAE4E0CED4AFCFBDD5B7EAA4D5DEEAA5D0C1B9BCDE65B4C7B1D9DE66DE67DE68C0B1DE69DE6ADE6BDE6CB1E6B1E7DE6DB1E8DE6EDE6FDE70DE71B3BDC8E8DE72DE73DE74DE75E5C1DE76DE77B1DFDE78DE79DE7AC1C9B4EFDE7BDE7CC7A8D3D8DE7DC6F9D1B8DE7EB9FDC2F5DE80DE81DE82DE83DE84D3ADDE85D4CBBDFCDE86E5C2B7B5E5C3DE87DE88BBB9D5E2DE89BDF8D4B6CEA5C1ACB3D9DE8ADE8BCCF6DE8CE5C6E5C4E5C8DE8DE5CAE5C7B5CFC6C8DE8EB5FCE5C5DE8FCAF6DE90DE91E5C9DE92DE93DE94C3D4B1C5BCA3DE95DE96DE97D7B7DE98DE99CDCBCBCDCACACCD3E5CCE5CBC4E6DE9ADE9BD1A1D1B7E5CDDE9CE5D0DE9DCDB8D6F0E5CFB5DDDE9ECDBEDE9FE5D1B6BADEA0DF40CDA8B9E4DF41CAC5B3D1CBD9D4ECE5D2B7EADF42DF43DF44E5CEDF45DF46DF47DF48DF49DF4AE5D5B4FEE5D6DF4BDF4CDF4DDF4EDF4FE5D3E5D4DF50D2DDDF51DF52C2DFB1C6DF53D3E2DF54DF55B6DDCBECDF56E5D7DF57DF58D3F6DF59DF5ADF5BDF5CDF5DB1E9DF5EB6F4E5DAE5D8E5D9B5C0DF5FDF60DF61D2C5E5DCDF62DF63E5DEDF64DF65DF66DF67DF68DF69E5DDC7B2DF6AD2A3DF6BDF6CE5DBDF6DDF6EDF6FDF70D4E2D5DADF71DF72DF73DF74DF75E5E0D7F1DF76DF77DF78DF79DF7ADF7BDF7CE5E1DF7DB1DCD1FBDF7EE5E2E5E4DF80DF81DF82DF83E5E3DF84DF85E5E5DF86DF87DF88DF89DF8AD2D8DF8BB5CBDF8CE7DFDF8DDAF5DF8EDAF8DF8FDAF6DF90DAF7DF91DF92DF93DAFAD0CFC4C7DF94DF95B0EEDF96DF97DF98D0B0DF99DAF9DF9AD3CABAAADBA2C7F1DF9BDAFCDAFBC9DBDAFDDF9CDBA1D7DEDAFEC1DADF9DDF9EDBA5DF9FDFA0D3F4E040E041DBA7DBA4E042DBA8E043E044BDBCE045E046E047C0C9DBA3DBA6D6A3E048DBA9E049E04AE04BDBADE04CE04DE04EDBAEDBACBAC2E04FE050E051BFA4DBABE052E053E054DBAAD4C7B2BFE055E056DBAFE057B9F9E058DBB0E059E05AE05BE05CB3BBE05DE05EE05FB5A6E060E061E062E063B6BCDBB1E064E065E066B6F5E067DBB2E068E069E06AE06BE06CE06DE06EE06FE070E071E072E073E074E075E076E077E078E079E07AE07BB1C9E07CE07DE07EE080DBB4E081E082E083DBB3DBB5E084E085E086E087E088E089E08AE08BE08CE08DE08EDBB7E08FDBB6E090E091E092E093E094E095E096DBB8E097E098E099E09AE09BE09CE09DE09EE09FDBB9E0A0E140DBBAE141E142D3CFF4FAC7F5D7C3C5E4F4FCF4FDF4FBE143BEC6E144E145E146E147D0EFE148E149B7D3E14AE14BD4CDCCAAE14CE14DF5A2F5A1BAA8F4FECBD6E14EE14FE150F5A4C0D2E151B3EAE152CDAAF5A5F5A3BDB4F5A8E153F5A9BDCDC3B8BFE1CBE1F5AAE154E155E156F5A6F5A7C4F0E157E158E159E15AE15BF5ACE15CB4BCE15DD7EDE15EB4D7F5ABF5AEE15FE160F5ADF5AFD0D1E161E162E163E164E165E166E167C3D1C8A9E168E169E16AE16BE16CE16DF5B0F5B1E16EE16FE170E171E172E173F5B2E174E175F5B3F5B4F5B5E176E177E178E179F5B7F5B6E17AE17BE17CE17DF5B8E17EE180E181E182E183E184E185E186E187E188E189E18AB2C9E18BD3D4CACDE18CC0EFD6D8D2B0C1BFE18DBDF0E18EE18FE190E191E192E193E194E195E196E197B8AAE198E199E19AE19BE19CE19DE19EE19FE1A0E240E241E242E243E244E245E246E247E248E249E24AE24BE24CE24DE24EE24FE250E251E252E253E254E255E256E257E258E259E25AE25BE25CE25DE25EE25FE260E261E262E263E264E265E266E267E268E269E26AE26BE26CE26DE26EE26FE270E271E272E273E274E275E276E277E278E279E27AE27BE27CE27DE27EE280E281E282E283E284E285E286E287E288E289E28AE28BE28CE28DE28EE28FE290E291E292E293E294E295E296E297E298E299E29AE29BE29CE29DE29EE29FE2A0E340E341E342E343E344E345E346E347E348E349E34AE34BE34CE34DE34EE34FE350E351E352E353E354E355E356E357E358E359E35AE35BE35CE35DE35EE35FE360E361E362E363E364E365E366E367E368E369E36AE36BE36CE36DBCF8E36EE36FE370E371E372E373E374E375E376E377E378E379E37AE37BE37CE37DE37EE380E381E382E383E384E385E386E387F6C6E388E389E38AE38BE38CE38DE38EE38FE390E391E392E393E394E395E396E397E398E399E39AE39BE39CE39DE39EE39FE3A0E440E441E442E443E444E445F6C7E446E447E448E449E44AE44BE44CE44DE44EE44FE450E451E452E453E454E455E456E457E458E459E45AE45BE45CE45DE45EF6C8E45FE460E461E462E463E464E465E466E467E468E469E46AE46BE46CE46DE46EE46FE470E471E472E473E474E475E476E477E478E479E47AE47BE47CE47DE47EE480E481E482E483E484E485E486E487E488E489E48AE48BE48CE48DE48EE48FE490E491E492E493E494E495E496E497E498E499E49AE49BE49CE49DE49EE49FE4A0E540E541E542E543E544E545E546E547E548E549E54AE54BE54CE54DE54EE54FE550E551E552E553E554E555E556E557E558E559E55AE55BE55CE55DE55EE55FE560E561E562E563E564E565E566E567E568E569E56AE56BE56CE56DE56EE56FE570E571E572E573F6C9E574E575E576E577E578E579E57AE57BE57CE57DE57EE580E581E582E583E584E585E586E587E588E589E58AE58BE58CE58DE58EE58FE590E591E592E593E594E595E596E597E598E599E59AE59BE59CE59DE59EE59FF6CAE5A0E640E641E642E643E644E645E646E647E648E649E64AE64BE64CE64DE64EE64FE650E651E652E653E654E655E656E657E658E659E65AE65BE65CE65DE65EE65FE660E661E662F6CCE663E664E665E666E667E668E669E66AE66BE66CE66DE66EE66FE670E671E672E673E674E675E676E677E678E679E67AE67BE67CE67DE67EE680E681E682E683E684E685E686E687E688E689E68AE68BE68CE68DE68EE68FE690E691E692E693E694E695E696E697E698E699E69AE69BE69CE69DF6CBE69EE69FE6A0E740E741E742E743E744E745E746E747F7E9E748E749E74AE74BE74CE74DE74EE74FE750E751E752E753E754E755E756E757E758E759E75AE75BE75CE75DE75EE75FE760E761E762E763E764E765E766E767E768E769E76AE76BE76CE76DE76EE76FE770E771E772E773E774E775E776E777E778E779E77AE77BE77CE77DE77EE780E781E782E783E784E785E786E787E788E789E78AE78BE78CE78DE78EE78FE790E791E792E793E794E795E796E797E798E799E79AE79BE79CE79DE79EE79FE7A0E840E841E842E843E844E845E846E847E848E849E84AE84BE84CE84DE84EF6CDE84FE850E851E852E853E854E855E856E857E858E859E85AE85BE85CE85DE85EE85FE860E861E862E863E864E865E866E867E868E869E86AE86BE86CE86DE86EE86FE870E871E872E873E874E875E876E877E878E879E87AF6CEE87BE87CE87DE87EE880E881E882E883E884E885E886E887E888E889E88AE88BE88CE88DE88EE88FE890E891E892E893E894EEC4EEC5EEC6D5EBB6A4EEC8EEC7EEC9EECAC7A5EECBEECCE895B7B0B5F6EECDEECFE896EECEE897B8C6EED0EED1EED2B6DBB3AED6D3C4C6B1B5B8D6EED3EED4D4BFC7D5BEFBCED9B9B3EED6EED5EED8EED7C5A5EED9EEDAC7AEEEDBC7AFEEDCB2A7EEDDEEDEEEDFEEE0EEE1D7EAEEE2EEE3BCD8EEE4D3CBCCFAB2ACC1E5EEE5C7A6C3ADE898EEE6EEE7EEE8EEE9EEEAEEEBEEECE899EEEDEEEEEEEFE89AE89BEEF0EEF1EEF2EEF4EEF3E89CEEF5CDADC2C1EEF6EEF7EEF8D5A1EEF9CFB3EEFAEEFBE89DEEFCEEFDEFA1EEFEEFA2B8F5C3FAEFA3EFA4BDC2D2BFB2F9EFA5EFA6EFA7D2F8EFA8D6FDEFA9C6CCE89EEFAAEFABC1B4EFACCFFACBF8EFAEEFADB3FAB9F8EFAFEFB0D0E2EFB1EFB2B7E6D0BFEFB3EFB4EFB5C8F1CCE0EFB6EFB7EFB8EFB9EFBAD5E0EFBBB4EDC3AAEFBCE89FEFBDEFBEEFBFE8A0CEFDEFC0C2E0B4B8D7B6BDF5E940CFC7EFC3EFC1EFC2EFC4B6A7BCFCBEE2C3CCEFC5EFC6E941EFC7EFCFEFC8EFC9EFCAC7C2EFF1B6CDEFCBE942EFCCEFCDB6C6C3BEEFCEE943EFD0EFD1EFD2D5F2E944EFD3C4F7E945EFD4C4F8EFD5EFD6B8E4B0F7EFD7EFD8EFD9E946EFDAEFDBEFDCEFDDE947EFDEBEB5EFE1EFDFEFE0E948EFE2EFE3C1CDEFE4EFE5EFE6EFE7EFE8EFE9EFEAEFEBEFECC0D8E949EFEDC1ADEFEEEFEFEFF0E94AE94BCFE2E94CE94DE94EE94FE950E951E952E953B3A4E954E955E956E957E958E959E95AE95BE95CE95DE95EE95FE960E961E962E963E964E965E966E967E968E969E96AE96BE96CE96DE96EE96FE970E971E972E973E974E975E976E977E978E979E97AE97BE97CE97DE97EE980E981E982E983E984E985E986E987E988E989E98AE98BE98CE98DE98EE98FE990E991E992E993E994E995E996E997E998E999E99AE99BE99CE99DE99EE99FE9A0EA40EA41EA42EA43EA44EA45EA46EA47EA48EA49EA4AEA4BEA4CEA4DEA4EEA4FEA50EA51EA52EA53EA54EA55EA56EA57EA58EA59EA5AEA5BC3C5E3C5C9C1E3C6EA5CB1D5CECAB4B3C8F2E3C7CFD0E3C8BCE4E3C9E3CAC3C6D5A2C4D6B9EBCEC5E3CBC3F6E3CCEA5DB7A7B8F3BAD2E3CDE3CED4C4E3CFEA5EE3D0D1CBE3D1E3D2E3D3E3D4D1D6E3D5B2FBC0BBE3D6EA5FC0ABE3D7E3D8E3D9EA60E3DAE3DBEA61B8B7DAE2EA62B6D3EA63DAE4DAE3EA64EA65EA66EA67EA68EA69EA6ADAE6EA6BEA6CEA6DC8EEEA6EEA6FDAE5B7C0D1F4D2F5D5F3BDD7EA70EA71EA72EA73D7E8DAE8DAE7EA74B0A2CDD3EA75DAE9EA76B8BDBCCAC2BDC2A4B3C2DAEAEA77C2AAC4B0BDB5EA78EA79CFDEEA7AEA7BEA7CDAEBC9C2EA7DEA7EEA80EA81EA82B1DDEA83EA84EA85DAECEA86B6B8D4BAEA87B3FDEA88EA89DAEDD4C9CFD5C5E3EA8ADAEEEA8BEA8CEA8DEA8EEA8FDAEFEA90DAF0C1EACCD5CFDDEA91EA92EA93EA94EA95EA96EA97EA98EA99EA9AEA9BEA9CEA9DD3E7C2A1EA9EDAF1EA9FEAA0CBE5EB40DAF2EB41CBE6D2FEEB42EB43EB44B8F4EB45EB46DAF3B0AFCFB6EB47EB48D5CFEB49EB4AEB4BEB4CEB4DEB4EEB4FEB50EB51EB52CBEDEB53EB54EB55EB56EB57EB58EB59EB5ADAF4EB5BEB5CE3C4EB5DEB5EC1A5EB5FEB60F6BFEB61EB62F6C0F6C1C4D1EB63C8B8D1E3EB64EB65D0DBD1C5BCAFB9CDEB66EFF4EB67EB68B4C6D3BAF6C2B3FBEB69EB6AF6C3EB6BEB6CB5F1EB6DEB6EEB6FEB70EB71EB72EB73EB74EB75EB76F6C5EB77EB78EB79EB7AEB7BEB7CEB7DD3EAF6A7D1A9EB7EEB80EB81EB82F6A9EB83EB84EB85F6A8EB86EB87C1E3C0D7EB88B1A2EB89EB8AEB8BEB8CCEEDEB8DD0E8F6ABEB8EEB8FCFF6EB90F6AAD5F0F6ACC3B9EB91EB92EB93BBF4F6AEF6ADEB94EB95EB96C4DEEB97EB98C1D8EB99EB9AEB9BEB9CEB9DCBAAEB9ECFBCEB9FEBA0EC40EC41EC42EC43EC44EC45EC46EC47EC48F6AFEC49EC4AF6B0EC4BEC4CF6B1EC4DC2B6EC4EEC4FEC50EC51EC52B0D4C5F9EC53EC54EC55EC56F6B2EC57EC58EC59EC5AEC5BEC5CEC5DEC5EEC5FEC60EC61EC62EC63EC64EC65EC66EC67EC68EC69C7E0F6A6EC6AEC6BBEB8EC6CEC6DBEB2EC6EB5E5EC6FEC70B7C7EC71BFBFC3D2C3E6EC72EC73D8CCEC74EC75EC76B8EFEC77EC78EC79EC7AEC7BEC7CEC7DEC7EEC80BDF9D1A5EC81B0D0EC82EC83EC84EC85EC86F7B0EC87EC88EC89EC8AEC8BEC8CEC8DEC8EF7B1EC8FEC90EC91EC92EC93D0ACEC94B0B0EC95EC96EC97F7B2F7B3EC98F7B4EC99EC9AEC9BC7CAEC9CEC9DEC9EEC9FECA0ED40ED41BECFED42ED43F7B7ED44ED45ED46ED47ED48ED49ED4AF7B6ED4BB1DEED4CF7B5ED4DED4EF7B8ED4FF7B9ED50ED51ED52ED53ED54ED55ED56ED57ED58ED59ED5AED5BED5CED5DED5EED5FED60ED61ED62ED63ED64ED65ED66ED67ED68ED69ED6AED6BED6CED6DED6EED6FED70ED71ED72ED73ED74ED75ED76ED77ED78ED79ED7AED7BED7CED7DED7EED80ED81CEA4C8CDED82BAABE8B8E8B9E8BABEC2ED83ED84ED85ED86ED87D2F4ED88D4CFC9D8ED89ED8AED8BED8CED8DED8EED8FED90ED91ED92ED93ED94ED95ED96ED97ED98ED99ED9AED9BED9CED9DED9EED9FEDA0EE40EE41EE42EE43EE44EE45EE46EE47EE48EE49EE4AEE4BEE4CEE4DEE4EEE4FEE50EE51EE52EE53EE54EE55EE56EE57EE58EE59EE5AEE5BEE5CEE5DEE5EEE5FEE60EE61EE62EE63EE64EE65EE66EE67EE68EE69EE6AEE6BEE6CEE6DEE6EEE6FEE70EE71EE72EE73EE74EE75EE76EE77EE78EE79EE7AEE7BEE7CEE7DEE7EEE80EE81EE82EE83EE84EE85EE86EE87EE88EE89EE8AEE8BEE8CEE8DEE8EEE8FEE90EE91EE92EE93EE94EE95EE96EE97EE98EE99EE9AEE9BEE9CEE9DEE9EEE9FEEA0EF40EF41EF42EF43EF44EF45D2B3B6A5C7EAF1FCCFEECBB3D0EBE7EFCDE7B9CBB6D9F1FDB0E4CBCCF1FED4A4C2ADC1ECC6C4BEB1F2A1BCD5EF46F2A2F2A3EF47F2A4D2C3C6B5EF48CDC7F2A5EF49D3B1BFC5CCE2EF4AF2A6F2A7D1D5B6EEF2A8F2A9B5DFF2AAF2ABEF4BB2FCF2ACF2ADC8A7EF4CEF4DEF4EEF4FEF50EF51EF52EF53EF54EF55EF56EF57EF58EF59EF5AEF5BEF5CEF5DEF5EEF5FEF60EF61EF62EF63EF64EF65EF66EF67EF68EF69EF6AEF6BEF6CEF6DEF6EEF6FEF70EF71B7E7EF72EF73ECA9ECAAECABEF74ECACEF75EF76C6AEECADECAEEF77EF78EF79B7C9CAB3EF7AEF7BEF7CEF7DEF7EEF80EF81E2B8F7CFEF82EF83EF84EF85EF86EF87EF88EF89EF8AEF8BEF8CEF8DEF8EEF8FEF90EF91EF92EF93EF94EF95EF96EF97EF98EF99EF9AEF9BEF9CEF9DEF9EEF9FEFA0F040F041F042F043F044F7D0F045F046B2CDF047F048F049F04AF04BF04CF04DF04EF04FF050F051F052F053F054F055F056F057F058F059F05AF05BF05CF05DF05EF05FF060F061F062F063F7D1F064F065F066F067F068F069F06AF06BF06CF06DF06EF06FF070F071F072F073F074F075F076F077F078F079F07AF07BF07CF07DF07EF080F081F082F083F084F085F086F087F088F089F7D3F7D2F08AF08BF08CF08DF08EF08FF090F091F092F093F094F095F096E2BBF097BCA2F098E2BCE2BDE2BEE2BFE2C0E2C1B7B9D2FBBDA4CACEB1A5CBC7F099E2C2B6FCC8C4E2C3F09AF09BBDC8F09CB1FDE2C4F09DB6F6E2C5C4D9F09EF09FE2C6CFDAB9DDE2C7C0A1F0A0E2C8B2F6F140E2C9F141C1F3E2CAE2CBC2F8E2CCE2CDE2CECAD7D8B8D9E5CFE3F142F143F144F145F146F147F148F149F14AF14BF14CF0A5F14DF14EDCB0F14FF150F151F152F153F154F155F156F157F158F159F15AF15BF15CF15DF15EF15FF160F161F162F163F164F165F166F167F168F169F16AF16BF16CF16DF16EF16FF170F171F172F173F174F175F176F177F178F179F17AF17BF17CF17DF17EF180F181F182F183F184F185F186F187F188F189F18AF18BF18CF18DF18EF18FF190F191F192F193F194F195F196F197F198F199F19AF19BF19CF19DF19EF19FF1A0F240F241F242F243F244F245F246F247F248F249F24AF24BF24CF24DF24EF24FF250F251F252F253F254F255F256F257F258F259F25AF25BF25CF25DF25EF25FF260F261F262F263F264F265F266F267F268F269F26AF26BF26CF26DF26EF26FF270F271F272F273F274F275F276F277F278F279F27AF27BF27CF27DF27EF280F281F282F283F284F285F286F287F288F289F28AF28BF28CF28DF28EF28FF290F291F292F293F294F295F296F297F298F299F29AF29BF29CF29DF29EF29FF2A0F340F341F342F343F344F345F346F347F348F349F34AF34BF34CF34DF34EF34FF350F351C2EDD4A6CDD4D1B1B3DBC7FDF352B2B5C2BFE6E0CABBE6E1E6E2BED4E6E3D7A4CDD5E6E5BCDDE6E4E6E6E6E7C2EEF353BDBEE6E8C2E6BAA7E6E9F354E6EAB3D2D1E9F355F356BFA5E6EBC6EFE6ECE6EDF357F358E6EEC6ADE6EFF359C9A7E6F0E6F1E6F2E5B9E6F3E6F4C2E2E6F5E6F6D6E8E6F7F35AE6F8B9C7F35BF35CF35DF35EF35FF360F361F7BBF7BAF362F363F364F365F7BEF7BCBAA1F366F7BFF367F7C0F368F369F36AF7C2F7C1F7C4F36BF36CF7C3F36DF36EF36FF370F371F7C5F7C6F372F373F374F375F7C7F376CBE8F377F378F379F37AB8DFF37BF37CF37DF37EF380F381F7D4F382F7D5F383F384F385F386F7D6F387F388F389F38AF7D8F38BF7DAF38CF7D7F38DF38EF38FF390F391F392F393F394F395F7DBF396F7D9F397F398F399F39AF39BF39CF39DD7D7F39EF39FF3A0F440F7DCF441F442F443F444F445F446F7DDF447F448F449F7DEF44AF44BF44CF44DF44EF44FF450F451F452F453F454F7DFF455F456F457F7E0F458F459F45AF45BF45CF45DF45EF45FF460F461F462DBCBF463F464D8AAF465F466F467F468F469F46AF46BF46CE5F7B9EDF46DF46EF46FF470BFFDBBEAF7C9C6C7F7C8F471F7CAF7CCF7CBF472F473F474F7CDF475CEBAF476F7CEF477F478C4A7F479F47AF47BF47CF47DF47EF480F481F482F483F484F485F486F487F488F489F48AF48BF48CF48DF48EF48FF490F491F492F493F494F495F496F497F498F499F49AF49BF49CF49DF49EF49FF4A0F540F541F542F543F544F545F546F547F548F549F54AF54BF54CF54DF54EF54FF550F551F552F553F554F555F556F557F558F559F55AF55BF55CF55DF55EF55FF560F561F562F563F564F565F566F567F568F569F56AF56BF56CF56DF56EF56FF570F571F572F573F574F575F576F577F578F579F57AF57BF57CF57DF57EF580F581F582F583F584F585F586F587F588F589F58AF58BF58CF58DF58EF58FF590F591F592F593F594F595F596F597F598F599F59AF59BF59CF59DF59EF59FF5A0F640F641F642F643F644F645F646F647F648F649F64AF64BF64CF64DF64EF64FF650F651F652F653F654F655F656F657F658F659F65AF65BF65CF65DF65EF65FF660F661F662F663F664F665F666F667F668F669F66AF66BF66CF66DF66EF66FF670F671F672F673F674F675F676F677F678F679F67AF67BF67CF67DF67EF680F681F682F683F684F685F686F687F688F689F68AF68BF68CF68DF68EF68FF690F691F692F693F694F695F696F697F698F699F69AF69BF69CF69DF69EF69FF6A0F740F741F742F743F744F745F746F747F748F749F74AF74BF74CF74DF74EF74FF750F751F752F753F754F755F756F757F758F759F75AF75BF75CF75DF75EF75FF760F761F762F763F764F765F766F767F768F769F76AF76BF76CF76DF76EF76FF770F771F772F773F774F775F776F777F778F779F77AF77BF77CF77DF77EF780D3E3F781F782F6CFF783C2B3F6D0F784F785F6D1F6D2F6D3F6D4F786F787F6D6F788B1ABF6D7F789F6D8F6D9F6DAF78AF6DBF6DCF78BF78CF78DF78EF6DDF6DECFCAF78FF6DFF6E0F6E1F6E2F6E3F6E4C0F0F6E5F6E6F6E7F6E8F6E9F790F6EAF791F6EBF6ECF792F6EDF6EEF6EFF6F0F6F1F6F2F6F3F6F4BEA8F793F6F5F6F6F6F7F6F8F794F795F796F797F798C8FAF6F9F6FAF6FBF6FCF799F79AF6FDF6FEF7A1F7A2F7A3F7A4F7A5F79BF79CF7A6F7A7F7A8B1EEF7A9F7AAF7ABF79DF79EF7ACF7ADC1DBF7AEF79FF7A0F7AFF840F841F842F843F844F845F846F847F848F849F84AF84BF84CF84DF84EF84FF850F851F852F853F854F855F856F857F858F859F85AF85BF85CF85DF85EF85FF860F861F862F863F864F865F866F867F868F869F86AF86BF86CF86DF86EF86FF870F871F872F873F874F875F876F877F878F879F87AF87BF87CF87DF87EF880F881F882F883F884F885F886F887F888F889F88AF88BF88CF88DF88EF88FF890F891F892F893F894F895F896F897F898F899F89AF89BF89CF89DF89EF89FF8A0F940F941F942F943F944F945F946F947F948F949F94AF94BF94CF94DF94EF94FF950F951F952F953F954F955F956F957F958F959F95AF95BF95CF95DF95EF95FF960F961F962F963F964F965F966F967F968F969F96AF96BF96CF96DF96EF96FF970F971F972F973F974F975F976F977F978F979F97AF97BF97CF97DF97EF980F981F982F983F984F985F986F987F988F989F98AF98BF98CF98DF98EF98FF990F991F992F993F994F995F996F997F998F999F99AF99BF99CF99DF99EF99FF9A0FA40FA41FA42FA43FA44FA45FA46FA47FA48FA49FA4AFA4BFA4CFA4DFA4EFA4FFA50FA51FA52FA53FA54FA55FA56FA57FA58FA59FA5AFA5BFA5CFA5DFA5EFA5FFA60FA61FA62FA63FA64FA65FA66FA67FA68FA69FA6AFA6BFA6CFA6DFA6EFA6FFA70FA71FA72FA73FA74FA75FA76FA77FA78FA79FA7AFA7BFA7CFA7DFA7EFA80FA81FA82FA83FA84FA85FA86FA87FA88FA89FA8AFA8BFA8CFA8DFA8EFA8FFA90FA91FA92FA93FA94FA95FA96FA97FA98FA99FA9AFA9BFA9CFA9DFA9EFA9FFAA0FB40FB41FB42FB43FB44FB45FB46FB47FB48FB49FB4AFB4BFB4CFB4DFB4EFB4FFB50FB51FB52FB53FB54FB55FB56FB57FB58FB59FB5AFB5BC4F1F0AFBCA6F0B0C3F9FB5CC5B8D1BBFB5DF0B1F0B2F0B3F0B4F0B5D1BCFB5ED1ECFB5FF0B7F0B6D4A7FB60CDD2F0B8F0BAF0B9F0BBF0BCFB61FB62B8EBF0BDBAE8FB63F0BEF0BFBEE9F0C0B6ECF0C1F0C2F0C3F0C4C8B5F0C5F0C6FB64F0C7C5F4FB65F0C8FB66FB67FB68F0C9FB69F0CAF7BDFB6AF0CBF0CCF0CDFB6BF0CEFB6CFB6DFB6EFB6FF0CFBAD7FB70F0D0F0D1F0D2F0D3F0D4F0D5F0D6F0D8FB71FB72D3A5F0D7FB73F0D9FB74FB75FB76FB77FB78FB79FB7AFB7BFB7CFB7DF5BAC2B9FB7EFB80F7E4FB81FB82FB83FB84F7E5F7E6FB85FB86F7E7FB87FB88FB89FB8AFB8BFB8CF7E8C2B4FB8DFB8EFB8FFB90FB91FB92FB93FB94FB95F7EAFB96F7EBFB97FB98FB99FB9AFB9BFB9CC2F3FB9DFB9EFB9FFBA0FC40FC41FC42FC43FC44FC45FC46FC47FC48F4F0FC49FC4AFC4BF4EFFC4CFC4DC2E9FC4EF7E1F7E2FC4FFC50FC51FC52FC53BBC6FC54FC55FC56FC57D9E4FC58FC59FC5ACAF2C0E8F0A4FC5BBADAFC5CFC5DC7ADFC5EFC5FFC60C4ACFC61FC62F7ECF7EDF7EEFC63F7F0F7EFFC64F7F1FC65FC66F7F4FC67F7F3FC68F7F2F7F5FC69FC6AFC6BFC6CF7F6FC6DFC6EFC6FFC70FC71FC72FC73FC74FC75EDE9FC76EDEAEDEBFC77F6BCFC78FC79FC7AFC7BFC7CFC7DFC7EFC80FC81FC82FC83FC84F6BDFC85F6BEB6A6FC86D8BEFC87FC88B9C4FC89FC8AFC8BD8BBFC8CDCB1FC8DFC8EFC8FFC90FC91FC92CAF3FC93F7F7FC94FC95FC96FC97FC98FC99FC9AFC9BFC9CF7F8FC9DFC9EF7F9FC9FFCA0FD40FD41FD42FD43FD44F7FBFD45F7FAFD46B1C7FD47F7FCF7FDFD48FD49FD4AFD4BFD4CF7FEFD4DFD4EFD4FFD50FD51FD52FD53FD54FD55FD56FD57C6EBECB4FD58FD59FD5AFD5BFD5CFD5DFD5EFD5FFD60FD61FD62FD63FD64FD65FD66FD67FD68FD69FD6AFD6BFD6CFD6DFD6EFD6FFD70FD71FD72FD73FD74FD75FD76FD77FD78FD79FD7AFD7BFD7CFD7DFD7EFD80FD81FD82FD83FD84FD85B3DDF6B3FD86FD87F6B4C1E4F6B5F6B6F6B7F6B8F6B9F6BAC8A3F6BBFD88FD89FD8AFD8BFD8CFD8DFD8EFD8FFD90FD91FD92FD93C1FAB9A8EDE8FD94FD95FD96B9EAD9DFFD97FD98FD99FD9AFD9";
68
68
  encodeToGb2312(D) {
69
69
  for (var C = "", B = 0; B < D.length; B++) {
@@ -71,8 +71,8 @@ class BC {
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 BC {
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 {
@@ -112,8 +112,8 @@ class BC {
112
112
  return C;
113
113
  }
114
114
  }
115
- let w = new BC();
116
- class p {
115
+ let w = new CC();
116
+ class l {
117
117
  static kOrigin;
118
118
  imp;
119
119
  constructor(D, C, B) {
@@ -141,7 +141,7 @@ class p {
141
141
  return this.imp.isEqualTo(D.imp);
142
142
  }
143
143
  clone() {
144
- return new p(this.imp);
144
+ return new l(this.imp);
145
145
  }
146
146
  get x() {
147
147
  return this.imp.x;
@@ -290,7 +290,7 @@ class W {
290
290
  return this.imp.getData(D, C);
291
291
  }
292
292
  }
293
- class EC {
293
+ class BC {
294
294
  imp;
295
295
  constructor(D) {
296
296
  this.imp = new i.mxcadassemblyimp.MdGeLongArray(), D instanceof Object && this.imp.copy(D);
@@ -311,7 +311,7 @@ class EC {
311
311
  this.imp.setAt(D, C);
312
312
  }
313
313
  }
314
- class dD {
314
+ class hD {
315
315
  imp;
316
316
  constructor(D) {
317
317
  this.imp = new i.mxcadassemblyimp.MdGeStringArray(), D instanceof Object && this.imp.copy(D);
@@ -337,7 +337,7 @@ class dD {
337
337
  D(C ? w.decodeFromGb2312(this.imp.at(F)) : this.imp.at(F), F);
338
338
  }
339
339
  }
340
- class FC {
340
+ class EC {
341
341
  imp;
342
342
  constructor(D) {
343
343
  this.imp = new i.mxcadassemblyimp.MdGePoint3dArray(), D instanceof Object && this.imp.copy(D);
@@ -352,19 +352,19 @@ class FC {
352
352
  return this.imp.length();
353
353
  }
354
354
  at(D) {
355
- return new p(this.imp.at(D));
355
+ return new l(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 AC = new FinalizationRegistry((E) => {
361
+ const FC = new FinalizationRegistry((E) => {
362
362
  i.App.DestroyObject(E);
363
- }), tC = {};
363
+ }), AC = {};
364
364
  class O {
365
365
  imp = 0;
366
366
  constructor(D) {
367
- this.imp = D, this.imp && AC.register(this, D, tC);
367
+ this.imp = D, this.imp && FC.register(this, D, AC);
368
368
  }
369
369
  getImp() {
370
370
  return this.imp;
@@ -387,8 +387,8 @@ class O {
387
387
  return this.imp.setJson(C);
388
388
  }
389
389
  }
390
- var b = /* @__PURE__ */ ((E) => (E[E.kMxCAD = 0] = "kMxCAD", E[E.kMxDraw = 1] = "kMxDraw", E[E.kInvalid = 2] = "kInvalid", E))(b || {});
391
- class M {
390
+ var f = /* @__PURE__ */ ((E) => (E[E.kMxCAD = 0] = "kMxCAD", E[E.kMxDraw = 1] = "kMxDraw", E[E.kInvalid = 2] = "kInvalid", E))(f || {});
391
+ class T {
392
392
  id;
393
393
  type;
394
394
  constructor(D, C) {
@@ -398,7 +398,7 @@ class M {
398
398
  return this.type != 2 && this.id != 0;
399
399
  }
400
400
  erase() {
401
- this.type == 1 ? d.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && eD.eraseEntity(this.id);
401
+ this.type == 1 ? d.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && iD.eraseEntity(this.id);
402
402
  }
403
403
  getMcDbObject() {
404
404
  return this.type == 0 ? i.App.ObjectIdToObject(this.id) : null;
@@ -441,7 +441,7 @@ class v extends O {
441
441
  return this.imp.GetOwnerID();
442
442
  }
443
443
  }
444
- var BD;
444
+ var CD;
445
445
  ((E) => {
446
446
  ((D) => {
447
447
  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,11 +452,11 @@ var BD;
452
452
  })(E.AttachmentPoint || (E.AttachmentPoint = {})), ((D) => {
453
453
  D[D.kLnWt000 = 0] = "kLnWt000", D[D.kLnWt005 = 5] = "kLnWt005", D[D.kLnWt009 = 9] = "kLnWt009", D[D.kLnWt013 = 13] = "kLnWt013", D[D.kLnWt015 = 15] = "kLnWt015", D[D.kLnWt018 = 18] = "kLnWt018", D[D.kLnWt020 = 20] = "kLnWt020", D[D.kLnWt025 = 25] = "kLnWt025", D[D.kLnWt030 = 30] = "kLnWt030", D[D.kLnWt035 = 35] = "kLnWt035", D[D.kLnWt040 = 40] = "kLnWt040", D[D.kLnWt050 = 50] = "kLnWt050", D[D.kLnWt053 = 53] = "kLnWt053", D[D.kLnWt060 = 60] = "kLnWt060", D[D.kLnWt070 = 70] = "kLnWt070", D[D.kLnWt080 = 80] = "kLnWt080", D[D.kLnWt090 = 90] = "kLnWt090", D[D.kLnWt100 = 100] = "kLnWt100", D[D.kLnWt106 = 106] = "kLnWt106", D[D.kLnWt120 = 120] = "kLnWt120", D[D.kLnWt140 = 140] = "kLnWt140", D[D.kLnWt158 = 158] = "kLnWt158", D[D.kLnWt200 = 200] = "kLnWt200", D[D.kLnWt211 = 211] = "kLnWt211", D[D.kLnWtByLayer = -1] = "kLnWtByLayer", D[D.kLnWtByBlock = -2] = "kLnWtByBlock", D[D.kLnWtByLwDefault = -3] = "kLnWtByLwDefault";
454
454
  })(E.LineWeight || (E.LineWeight = {}));
455
- })(BD || (BD = {}));
455
+ })(CD || (CD = {}));
456
456
  class j {
457
457
  imp;
458
458
  constructor(D, C, B) {
459
- this.imp = new i.mxcadassemblyimp.MdCmColor(), D instanceof Object ? (this.imp.red = D.red, this.imp.green = D.green, this.imp.blue = D.blue, this.imp.method = D.method, this.imp.n = D.n, this.imp.colorIndex = D.colorIndex) : D && C && B && this.imp.setRGB(D, C, B);
459
+ this.imp = new i.mxcadassemblyimp.MdCmColor(), D instanceof Object ? (this.imp.red = D.red, this.imp.green = D.green, this.imp.blue = D.blue, this.imp.method = D.method, this.imp.n = D.n, this.imp.colorIndex = D.colorIndex) : typeof D == "number" && typeof C == "number" && typeof B == "number" && this.imp.setRGB(D, C, B);
460
460
  }
461
461
  getImp() {
462
462
  return this.imp;
@@ -510,7 +510,7 @@ class j {
510
510
  this.imp.colorIndex = D;
511
511
  }
512
512
  }
513
- class eC extends v {
513
+ class tC extends v {
514
514
  constructor(D) {
515
515
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbLayerTableRecord());
516
516
  }
@@ -545,7 +545,7 @@ class eC extends v {
545
545
  this.imp.setColor(D.getImp());
546
546
  }
547
547
  get linetypeObjectId() {
548
- return new M(this.imp.linetypeObjectId(), b.kMxCAD);
548
+ return new T(this.imp.linetypeObjectId(), f.kMxCAD);
549
549
  }
550
550
  set linetypeObjectId(D) {
551
551
  this.imp.setLinetypeObjectId(D.id);
@@ -557,12 +557,12 @@ class eC extends v {
557
557
  this.imp.setLineWeight(D);
558
558
  }
559
559
  }
560
- class hD extends v {
560
+ class wD extends v {
561
561
  constructor(D) {
562
562
  super(D);
563
563
  }
564
564
  }
565
- class wD extends v {
565
+ class yD extends v {
566
566
  constructor(D) {
567
567
  super(D);
568
568
  }
@@ -577,19 +577,19 @@ class ED extends O {
577
577
  super(D);
578
578
  }
579
579
  GetLayerTable() {
580
- return new hD(this.imp.GetLayerTable());
580
+ return new wD(this.imp.GetLayerTable());
581
581
  }
582
582
  GetLinetypeTable() {
583
- return new wD(this.imp.GetLinetypeTable());
583
+ return new yD(this.imp.GetLinetypeTable());
584
584
  }
585
585
  GetTextStyleTable() {
586
586
  return new gD(this.imp.GetTextStyleTable());
587
587
  }
588
588
  GetBlockTable() {
589
- return new bD(this.imp.GetBlockTable());
589
+ return new fD(this.imp.GetBlockTable());
590
590
  }
591
591
  CurrentSpace() {
592
- return new Q(this.imp.CurrentSpace());
592
+ return new Y(this.imp.CurrentSpace());
593
593
  }
594
594
  GetCurrentlyLineTypeScale() {
595
595
  return this.imp.GetCurrentlyLineTypeScale();
@@ -616,6 +616,10 @@ class ED extends O {
616
616
  GetCurrentlyTrueColor() {
617
617
  return new j(this.imp.GetCurrentlyTrueColor());
618
618
  }
619
+ GetCurrentlyDrawColor() {
620
+ let D = this.imp.GetCurrentlyDrawColor(), C = new THREE.Color();
621
+ return C.setRGB(D.at(0) / 255, D.at(1) / 255, D.at(2) / 255), C;
622
+ }
619
623
  SetCurrentlyTrueColor(D) {
620
624
  return this.imp.SetCurrentlyTrueColor(D.getImp());
621
625
  }
@@ -634,7 +638,7 @@ class ED extends O {
634
638
  this.imp.SetCurrentlyTextStyle(C);
635
639
  }
636
640
  }
637
- class yD extends O {
641
+ class bD extends O {
638
642
  constructor(D) {
639
643
  super(D);
640
644
  }
@@ -645,28 +649,28 @@ class yD extends O {
645
649
  return this.imp.done();
646
650
  }
647
651
  getEntityId() {
648
- return new M(this.imp.getEntityId(), b.kMxCAD);
652
+ return new T(this.imp.getEntityId(), f.kMxCAD);
649
653
  }
650
654
  step(D = !0, C = !0) {
651
655
  return this.imp.step(D, C);
652
656
  }
653
657
  }
654
- class Q extends v {
658
+ class Y extends v {
655
659
  constructor(D) {
656
660
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTableRecord());
657
661
  }
658
662
  appendAcDbEntity(D) {
659
- return new M(
663
+ return new T(
660
664
  this.imp.appendAcDbEntity(D.getImp()),
661
- b.kMxCAD
665
+ f.kMxCAD
662
666
  );
663
667
  }
664
668
  newIterator(D = !0, C = !0) {
665
669
  let B = this.imp.newIterator(D, C);
666
- return new yD(B);
670
+ return new bD(B);
667
671
  }
668
672
  get origin() {
669
- return new p(this.imp.origin());
673
+ return new l(this.imp.origin());
670
674
  }
671
675
  set origin(D) {
672
676
  this.imp.setOrigin(D.imp);
@@ -684,19 +688,19 @@ class xD extends O {
684
688
  }
685
689
  getRecord() {
686
690
  let D = this.imp.getRecord();
687
- return new Q(D);
691
+ return new Y(D);
688
692
  }
689
693
  step(D = !0, C = !0) {
690
694
  this.imp.start(D, C);
691
695
  }
692
696
  }
693
- class bD extends v {
697
+ class fD extends v {
694
698
  constructor(D) {
695
699
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTable());
696
700
  }
697
701
  getAt(D) {
698
702
  let C = this.getAt(D);
699
- return C && new Q(C);
703
+ return C && new Y(C);
700
704
  }
701
705
  has(D) {
702
706
  return this.imp.has(D);
@@ -715,7 +719,7 @@ class V extends v {
715
719
  }
716
720
  explode() {
717
721
  let D = this.imp.explode();
718
- return new K(D);
722
+ return new H(D);
719
723
  }
720
724
  get trueColor() {
721
725
  return new j(this.imp.TrueColor());
@@ -780,13 +784,17 @@ class V extends v {
780
784
  GetBoundingBox() {
781
785
  let D = this.imp.GetBoundingBox();
782
786
  if (D) {
783
- let C = { minPt: new p(D.AtPoint(0).val), maxPt: new p(D.AtPoint(1).val), ret: 0 };
787
+ let C = {
788
+ minPt: new l(D.AtPoint(0).val),
789
+ maxPt: new l(D.AtPoint(1).val),
790
+ ret: 0
791
+ };
784
792
  return i.App.DestroyObject(D), C;
785
793
  } else
786
- return { minPt: new p(), maxPt: new p(), ret: 1 };
794
+ return { minPt: new l(), maxPt: new l(), ret: 1 };
787
795
  }
788
796
  }
789
- class _ extends V {
797
+ class q extends V {
790
798
  constructor(D) {
791
799
  super(D);
792
800
  }
@@ -806,77 +814,101 @@ class _ extends V {
806
814
  return { val: this.imp.getDistAtPoint(D.imp), ret: i.getCallResult() };
807
815
  }
808
816
  getPointAtDist(D) {
809
- return { val: new p(this.imp.getPointAtDist(D)), ret: i.getCallResult() };
817
+ return {
818
+ val: new l(this.imp.getPointAtDist(D)),
819
+ ret: i.getCallResult()
820
+ };
810
821
  }
811
822
  getStartPoint() {
812
- return { val: new p(this.imp.getStartPoint()), ret: i.getCallResult() };
823
+ return {
824
+ val: new l(this.imp.getStartPoint()),
825
+ ret: i.getCallResult()
826
+ };
813
827
  }
814
828
  getEndPoint() {
815
- return { val: new p(this.imp.getStartPoint()), ret: i.getCallResult() };
829
+ return {
830
+ val: new l(this.imp.getStartPoint()),
831
+ ret: i.getCallResult()
832
+ };
816
833
  }
817
834
  getPointAtParam(D) {
818
- return { val: new p(this.imp.getPointAtParam(D)), ret: i.getCallResult() };
835
+ return {
836
+ val: new l(this.imp.getPointAtParam(D)),
837
+ ret: i.getCallResult()
838
+ };
819
839
  }
820
840
  getParamAtPoint(D) {
821
- return { val: this.imp.getParamAtPoint(D.imp), ret: i.getCallResult() };
841
+ return {
842
+ val: this.imp.getParamAtPoint(D.imp),
843
+ ret: i.getCallResult()
844
+ };
822
845
  }
823
846
  getFirstDeriv(D) {
824
- return { val: new g(this.imp.getFirstDeriv(D)), ret: i.getCallResult() };
847
+ return {
848
+ val: new g(this.imp.getFirstDeriv(D)),
849
+ ret: i.getCallResult()
850
+ };
825
851
  }
826
852
  getFirstDerivEx(D) {
827
- return { val: new g(this.imp.getFirstDerivEx(D.imp)), ret: i.getCallResult() };
853
+ return {
854
+ val: new g(this.imp.getFirstDerivEx(D.imp)),
855
+ ret: i.getCallResult()
856
+ };
828
857
  }
829
858
  getClosestPointTo(D, C) {
830
- return { val: new p(this.imp.getClosestPointTo(D.imp, C)), ret: i.getCallResult() };
859
+ return {
860
+ val: new l(this.imp.getClosestPointTo(D.imp, C)),
861
+ ret: i.getCallResult()
862
+ };
831
863
  }
832
864
  offsetCurves(D, C) {
833
865
  let B = this.imp.offsetCurves(D, C.imp);
834
- return new K(B);
866
+ return new H(B);
835
867
  }
836
868
  splitCurves(D) {
837
869
  let C = this.imp.splitCurves(D);
838
- return new K(C);
870
+ return new H(C);
839
871
  }
840
872
  getArea() {
841
873
  return { val: this.imp.getArea(), ret: i.getCallResult() };
842
874
  }
843
875
  getSamplePoints(D) {
844
876
  let C = this.imp.getSamplePoints(D);
845
- return new K(C);
877
+ return new H(C);
846
878
  }
847
879
  getLength() {
848
880
  return { val: this.imp.getLength(), ret: i.getCallResult() };
849
881
  }
850
882
  }
851
- class Z extends _ {
852
- constructor(D) {
853
- super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbLine());
883
+ class Z extends q {
884
+ constructor(D, C, B, F, A, e) {
885
+ D instanceof Object ? D instanceof l ? (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), C instanceof l && (this.startPoint = D, this.endPoint = C)) : super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), this.startPoint = new l(D, C, B), this.endPoint = new l(F, A, e));
854
886
  }
855
887
  get startPoint() {
856
- return new p(this.imp.startPoint());
888
+ return new l(this.imp.startPoint());
857
889
  }
858
890
  set startPoint(D) {
859
891
  this.imp.setStartPoint(D.imp);
860
892
  }
861
893
  get endPoint() {
862
- return new p(this.imp.endPoint());
894
+ return new l(this.imp.endPoint());
863
895
  }
864
896
  set endPoint(D) {
865
897
  this.imp.setEndPoint(D.imp);
866
898
  }
867
899
  }
868
- class Y extends V {
900
+ class BD extends V {
869
901
  constructor(D) {
870
902
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbText());
871
903
  }
872
904
  get position() {
873
- return new p(this.imp.position());
905
+ return new l(this.imp.position());
874
906
  }
875
907
  set position(D) {
876
908
  this.imp.setPosition(D.imp);
877
909
  }
878
910
  get alignmentPoint() {
879
- return new p(this.imp.position());
911
+ return new l(this.imp.position());
880
912
  }
881
913
  set alignmentPoint(D) {
882
914
  this.imp.setAlignmentPoint(D.imp);
@@ -929,7 +961,7 @@ class FD extends V {
929
961
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbMText());
930
962
  }
931
963
  get location() {
932
- return new p(this.imp.location());
964
+ return new l(this.imp.location());
933
965
  }
934
966
  set location(D) {
935
967
  this.imp.setLocation(D.imp);
@@ -965,15 +997,15 @@ class FD extends V {
965
997
  this.imp.setContents(w.encodeToGb2312(D));
966
998
  }
967
999
  }
968
- class AD extends _ {
1000
+ class AD extends q {
969
1001
  constructor(D) {
970
1002
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbCircle());
971
1003
  }
972
1004
  setCenter(D, C, B) {
973
- this.imp.setCenter(new p(D, C, B).imp);
1005
+ this.imp.setCenter(new l(D, C, B).imp);
974
1006
  }
975
1007
  get center() {
976
- return new p(this.imp.center());
1008
+ return new l(this.imp.center());
977
1009
  }
978
1010
  set center(D) {
979
1011
  this.imp.setCenter(D.imp);
@@ -985,7 +1017,7 @@ class AD extends _ {
985
1017
  this.imp.setRadius(D);
986
1018
  }
987
1019
  }
988
- class fD extends _ {
1020
+ class MD extends q {
989
1021
  constructor(D) {
990
1022
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbPolyline());
991
1023
  }
@@ -1017,7 +1049,11 @@ class fD extends _ {
1017
1049
  return this.imp.getBulgeAt(D);
1018
1050
  }
1019
1051
  getWidthsAt(D) {
1020
- return { val1: this.imp.getStartWidthsAt(D), val2: this.imp.getEndWidthsAt(D), ret: i.getCallResult() };
1052
+ return {
1053
+ val1: this.imp.getStartWidthsAt(D),
1054
+ val2: this.imp.getEndWidthsAt(D),
1055
+ ret: i.getCallResult()
1056
+ };
1021
1057
  }
1022
1058
  setPointAt(D, C) {
1023
1059
  return this.imp.setPointAt(D, C.imp);
@@ -1026,18 +1062,18 @@ class fD extends _ {
1026
1062
  return this.imp.setBulgeAt(D, C);
1027
1063
  }
1028
1064
  }
1029
- class MD extends V {
1065
+ class TD extends V {
1030
1066
  constructor(D) {
1031
1067
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockReference());
1032
1068
  }
1033
1069
  get blockTableRecordId() {
1034
- return new M(this.imp.blockTableRecord(), b.kMxCAD);
1070
+ return new T(this.imp.blockTableRecord(), f.kMxCAD);
1035
1071
  }
1036
1072
  set blockTableRecordId(D) {
1037
1073
  this.imp.setBlockTableRecordId(D.id);
1038
1074
  }
1039
1075
  get position() {
1040
- return new p(this.imp.position());
1076
+ return new l(this.imp.position());
1041
1077
  }
1042
1078
  set position(D) {
1043
1079
  this.imp.setPosition(D.imp);
@@ -1066,7 +1102,7 @@ class tD extends V {
1066
1102
  super(D);
1067
1103
  }
1068
1104
  get textPosition() {
1069
- return new p(this.imp.textPosition());
1105
+ return new l(this.imp.textPosition());
1070
1106
  }
1071
1107
  set textPosition(D) {
1072
1108
  this.imp.setTextPosition(D.imp);
@@ -1099,7 +1135,7 @@ class tD extends V {
1099
1135
  this.imp.setTextRotation(D);
1100
1136
  }
1101
1137
  get dimensionStyle() {
1102
- return new M(this.imp.dimensionStyle(), b.kMxCAD);
1138
+ return new T(this.imp.dimensionStyle(), f.kMxCAD);
1103
1139
  }
1104
1140
  set dimensionStyle(D) {
1105
1141
  this.imp.setDimensionStyle(D.id);
@@ -1138,30 +1174,33 @@ class tD extends V {
1138
1174
  this.imp.SetDimVarString(D, C);
1139
1175
  }
1140
1176
  getDimVarObjectId(D) {
1141
- return new M(this.imp.GetDimVarObjectId(D), b.kMxCAD);
1177
+ return new T(
1178
+ this.imp.GetDimVarObjectId(D),
1179
+ f.kMxCAD
1180
+ );
1142
1181
  }
1143
1182
  setDimVarObjectId(D, C) {
1144
1183
  this.imp.SetDimVarObjectId(D, C.id);
1145
1184
  }
1146
1185
  }
1147
- class TD extends tD {
1186
+ class kD extends tD {
1148
1187
  constructor(D) {
1149
1188
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbAlignedDimension());
1150
1189
  }
1151
1190
  get xLine1Point() {
1152
- return new p(this.imp.xLine1Point());
1191
+ return new l(this.imp.xLine1Point());
1153
1192
  }
1154
1193
  set xLine1Point(D) {
1155
1194
  this.imp.setXLine1Point(D.imp);
1156
1195
  }
1157
1196
  get xLine2Point() {
1158
- return new p(this.imp.xLine2Point());
1197
+ return new l(this.imp.xLine2Point());
1159
1198
  }
1160
1199
  set xLine2Point(D) {
1161
1200
  this.imp.setXLine2Point(D.imp);
1162
1201
  }
1163
1202
  get dimLinePoint() {
1164
- return new p(this.imp.dimLinePoint());
1203
+ return new l(this.imp.dimLinePoint());
1165
1204
  }
1166
1205
  set dimLinePoint(D) {
1167
1206
  this.imp.setDimLinePoint(D.imp);
@@ -1173,24 +1212,24 @@ class TD extends tD {
1173
1212
  this.imp.setOblique(D);
1174
1213
  }
1175
1214
  }
1176
- class kD extends tD {
1215
+ class PD extends tD {
1177
1216
  constructor(D) {
1178
1217
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbRotatedDimension());
1179
1218
  }
1180
1219
  get xLine1Point() {
1181
- return new p(this.imp.xLine1Point());
1220
+ return new l(this.imp.xLine1Point());
1182
1221
  }
1183
1222
  set xLine1Point(D) {
1184
1223
  this.imp.setXLine1Point(D.imp);
1185
1224
  }
1186
1225
  get xLine2Point() {
1187
- return new p(this.imp.xLine2Point());
1226
+ return new l(this.imp.xLine2Point());
1188
1227
  }
1189
1228
  set xLine2Point(D) {
1190
1229
  this.imp.setXLine2Point(D.imp);
1191
1230
  }
1192
1231
  get dimLinePoint() {
1193
- return new p(this.imp.dimLinePoint());
1232
+ return new l(this.imp.dimLinePoint());
1194
1233
  }
1195
1234
  set dimLinePoint(D) {
1196
1235
  this.imp.setDimLinePoint(D.imp);
@@ -1208,15 +1247,15 @@ class kD extends tD {
1208
1247
  this.imp.setRotation(D);
1209
1248
  }
1210
1249
  }
1211
- class PD extends _ {
1250
+ class eD extends q {
1212
1251
  constructor(D) {
1213
1252
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbArc());
1214
1253
  }
1215
1254
  setCenter(D, C, B) {
1216
- this.imp.setCenter(new p(D, C, B).imp);
1255
+ this.imp.setCenter(new l(D, C, B).imp);
1217
1256
  }
1218
1257
  get center() {
1219
- return new p(this.imp.center());
1258
+ return new l(this.imp.center());
1220
1259
  }
1221
1260
  set center(D) {
1222
1261
  this.imp.setCenter(D.imp);
@@ -1239,12 +1278,15 @@ class PD extends _ {
1239
1278
  set endAngle(D) {
1240
1279
  this.imp.setEndAngle(D);
1241
1280
  }
1281
+ computeArc(D, C, B, F, A, e) {
1282
+ return this.imp.computeArc(D, C, B, F, A, e);
1283
+ }
1242
1284
  }
1243
- function N(E = null) {
1285
+ function K(E = null) {
1244
1286
  let D;
1245
1287
  return E == null ? D = new i.mxcadassemblyimp.McDrawResbuf() : D = E.getImp(), D;
1246
1288
  }
1247
- class K extends O {
1289
+ class H extends O {
1248
1290
  constructor(D) {
1249
1291
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.McDrawResbuf());
1250
1292
  }
@@ -1272,13 +1314,13 @@ class K extends O {
1272
1314
  this.imp.AddObject(D.getImp());
1273
1315
  }
1274
1316
  AtObjectId(D) {
1275
- return { val: new M(this.imp.AtObjectId(D), b.kMxCAD), ret: i.getCallResult() };
1317
+ return { val: new T(this.imp.AtObjectId(D), f.kMxCAD), ret: i.getCallResult() };
1276
1318
  }
1277
1319
  AtString(D, C = !0) {
1278
1320
  return C ? { val: w.decodeFromGb2312(this.imp.AtString(D)), ret: i.getCallResult() } : { val: this.imp.AtString(D), ret: i.getCallResult() };
1279
1321
  }
1280
1322
  AtPoint(D) {
1281
- return { val: new p(this.imp.AtPoint(D)), ret: i.getCallResult() };
1323
+ return { val: new l(this.imp.AtPoint(D)), ret: i.getCallResult() };
1282
1324
  }
1283
1325
  ItemDataType() {
1284
1326
  return this.imp.ItemDataType();
@@ -1317,25 +1359,25 @@ class LD {
1317
1359
  }
1318
1360
  findEntAtPoint(D, C, B, F = -1, A = null) {
1319
1361
  this.init();
1320
- let t = this.imp.findEntAtPoint(D, C, B, F, N(A));
1321
- return new M(t, b.kMxCAD);
1362
+ let e = this.imp.findEntAtPoint(D, C, B, F, K(A));
1363
+ return new T(e, f.kMxCAD);
1322
1364
  }
1323
1365
  selectEnt(D, C = null) {
1324
1366
  return this.init(), new Promise(async (B) => {
1325
- const F = new T();
1326
- D && F.setMessage(D), F.setCursorType($D.kRect);
1367
+ const F = new S();
1368
+ D && F.setMessage(D), F.setCursorType(_D.kRect);
1327
1369
  let A = await F.go();
1328
1370
  if (!A) {
1329
1371
  B([]);
1330
1372
  return;
1331
1373
  }
1332
- JD.findEntAtPoint(A).then((t) => {
1333
- let e = [];
1334
- t.forEach((r) => {
1335
- e.push(new M(r, b.kMxDraw));
1374
+ $D.findEntAtPoint(A).then((e) => {
1375
+ let t = [];
1376
+ e.forEach((r) => {
1377
+ t.push(new T(r, f.kMxDraw));
1336
1378
  });
1337
1379
  let n = this.findEntAtPoint(A.x, A.y, A.z, -1, C);
1338
- n.isValid() && e.push(n), B(e);
1380
+ n.isValid() && t.push(n), B(t);
1339
1381
  });
1340
1382
  });
1341
1383
  }
@@ -1343,25 +1385,25 @@ class LD {
1343
1385
  this.imp || (this.imp = new i.mxcadassemblyimp.McDrawUtility());
1344
1386
  }
1345
1387
  }
1346
- let eD = new LD();
1347
- class SD extends O {
1388
+ let iD = new LD();
1389
+ class eC extends O {
1348
1390
  constructor() {
1349
1391
  super(), this.initTempObject(new i.mxcadassemblyimp.McDrawSelSet());
1350
1392
  }
1351
1393
  allSelect(D = null) {
1352
- return this.imp.allSelect(N(D));
1394
+ return this.imp.allSelect(K(D));
1353
1395
  }
1354
1396
  pointSelect(D, C, B = null, F = -1) {
1355
- return this.imp.pointSelect(D, C, N(B), F);
1397
+ return this.imp.pointSelect(D, C, K(B), F);
1356
1398
  }
1357
1399
  crossingSelect(D, C, B, F, A = null) {
1358
- return this.imp.crossingSelect(D, C, B, F, N(A));
1400
+ return this.imp.crossingSelect(D, C, B, F, K(A));
1359
1401
  }
1360
1402
  count() {
1361
1403
  return this.imp.count();
1362
1404
  }
1363
1405
  item(D) {
1364
- return new M(this.imp.item(D), b.kMxCAD);
1406
+ return new T(this.imp.item(D), f.kMxCAD);
1365
1407
  }
1366
1408
  }
1367
1409
  class U {
@@ -1392,10 +1434,10 @@ class U {
1392
1434
  openWebFile(D, C, B = !0) {
1393
1435
  let F = Math.round(Math.random() * 1e7);
1394
1436
  if (C) {
1395
- let A = this, t = (e, n) => {
1396
- A.mxObject.removeEventFuction("openFileComplete", t), F == n && C(e);
1437
+ let A = this, e = (t, n) => {
1438
+ A.mxObject.removeEventFuction("openFileComplete", e), F == n && C(t);
1397
1439
  };
1398
- A.mxObject.addEvent("openFileComplete", t);
1440
+ A.mxObject.addEvent("openFileComplete", e);
1399
1441
  }
1400
1442
  return U.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, B, F);
1401
1443
  }
@@ -1411,12 +1453,12 @@ class U {
1411
1453
  saveFile(D, C, B = !0, F = !0) {
1412
1454
  D || (D = this.getCurrentFileName()), D.indexOf(".") == -1 && (D += ".mxweb");
1413
1455
  const A = window;
1414
- return A.mx_saveFile_call = (t) => {
1415
- if (C && C(t), !!t) {
1456
+ return A.mx_saveFile_call = (e) => {
1457
+ if (C && C(e), !!e) {
1416
1458
  if (B) {
1417
- let e;
1418
- /^((?!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 ? H.saveAsFileDialog({
1419
- blob: e,
1459
+ let t;
1460
+ /^((?!chrome|android).)*safari/i.test(navigator.userAgent) ? t = new Blob([e.buffer], { type: "application/octet-stream" }) : t = new Blob([e.buffer], { type: "application/octet-binary" }), F ? N.saveAsFileDialog({
1461
+ blob: t,
1420
1462
  filename: D,
1421
1463
  types: [{
1422
1464
  description: "mxweb File",
@@ -1424,14 +1466,14 @@ class U {
1424
1466
  "application/octet-stream": [".mxweb"]
1425
1467
  }
1426
1468
  }]
1427
- }) : H.downloadFile(e, D);
1469
+ }) : N.downloadFile(t, D);
1428
1470
  }
1429
1471
  A.mx_saveFile_call = null;
1430
1472
  }
1431
1473
  }, this.imp.saveFile(D);
1432
1474
  }
1433
1475
  GetDatabase() {
1434
- return new ED(this.imp.GetDatabase());
1476
+ return this.imp.McDbDatabase || (this.imp.McDbDatabase = new ED(this.imp.GetDatabase())), this.imp.McDbDatabase;
1435
1477
  }
1436
1478
  GetSysVarString(D) {
1437
1479
  return this.imp.GetSysVarString(D);
@@ -1499,8 +1541,8 @@ class U {
1499
1541
  AddLinetypeEx(D, C, B) {
1500
1542
  this.imp.AddLinetypeEx(D, C, B);
1501
1543
  }
1502
- DrawLine(D, C, B, F, A, t) {
1503
- return this.imp.DrawLine(D, C, B, F, A, t);
1544
+ DrawLine(D, C, B, F, A, e) {
1545
+ return this.imp.DrawLine(D, C, B, F, A, e);
1504
1546
  }
1505
1547
  AddDimStyle(D, C, B, F, A) {
1506
1548
  return this.imp.AddDimStyle(D, C, B, F, A);
@@ -1526,8 +1568,8 @@ class U {
1526
1568
  DrawArc(D, C, B, F, A) {
1527
1569
  return this.imp.DrawArc(D, C, B, F, A);
1528
1570
  }
1529
- DrawArc2(D, C, B, F, A, t) {
1530
- return this.imp.DrawArc2(D, C, B, F, A, t);
1571
+ DrawArc2(D, C, B, F, A, e) {
1572
+ return this.imp.DrawArc2(D, C, B, F, A, e);
1531
1573
  }
1532
1574
  DrawCircle(D, C, B) {
1533
1575
  return this.imp.DrawCircle(D, C, B);
@@ -1535,35 +1577,35 @@ class U {
1535
1577
  DrawEllipse(D, C, B, F, A) {
1536
1578
  return this.imp.DrawEllipse(D, C, B, F, A);
1537
1579
  }
1538
- DrawEllipseArc(D, C, B, F, A, t, e) {
1539
- return this.imp.DrawEllipseArc(D, C, B, F, A, t, e);
1580
+ DrawEllipseArc(D, C, B, F, A, e, t) {
1581
+ return this.imp.DrawEllipseArc(D, C, B, F, A, e, t);
1540
1582
  }
1541
1583
  DrawPoint(D, C) {
1542
1584
  return this.imp.DrawPoint(D, C);
1543
1585
  }
1544
- DrawSolid(D, C, B, F, A, t, e, n) {
1545
- return this.imp.DrawSolid(D, C, B, F, A, t, e, n);
1586
+ DrawSolid(D, C, B, F, A, e, t, n) {
1587
+ return this.imp.DrawSolid(D, C, B, F, A, e, t, n);
1546
1588
  }
1547
- DrawMText(D, C, B, F, A, t, e) {
1548
- return this.imp.DrawMText(D, C, B, F, A, t, e);
1589
+ DrawMText(D, C, B, F, A, e, t) {
1590
+ return this.imp.DrawMText(D, C, B, F, A, e, t);
1549
1591
  }
1550
- DrawText(D, C, B, F, A, t, e) {
1551
- return this.imp.DrawTextDrawText(D, C, B, F, A, t, e);
1592
+ DrawText(D, C, B, F, A, e, t) {
1593
+ return this.imp.DrawTextDrawText(D, C, B, F, A, e, t);
1552
1594
  }
1553
1595
  DrawBlockReference(D, C, B, F, A) {
1554
1596
  return this.imp.DrawBlockReference(D, C, B, F, A);
1555
1597
  }
1556
- DrawDimAligned(D, C, B, F, A, t) {
1557
- return this.imp.DrawDimAligned(D, C, B, F, A, t);
1598
+ DrawDimAligned(D, C, B, F, A, e) {
1599
+ return this.imp.DrawDimAligned(D, C, B, F, A, e);
1558
1600
  }
1559
- DrawDimAngular(D, C, B, F, A, t, e, n) {
1560
- return this.imp.DrawDimAngular(D, C, B, F, A, t, e, n);
1601
+ DrawDimAngular(D, C, B, F, A, e, t, n) {
1602
+ return this.imp.DrawDimAngular(D, C, B, F, A, e, t, n);
1561
1603
  }
1562
1604
  DrawDimDiametric(D, C, B, F, A) {
1563
1605
  return this.imp.DrawDimDiametric(D, C, B, F, A);
1564
1606
  }
1565
- DrawDimRotated(D, C, B, F, A, t, e) {
1566
- return this.imp.DrawDimRotated(D, C, B, F, A, t, e);
1607
+ DrawDimRotated(D, C, B, F, A, e, t) {
1608
+ return this.imp.DrawDimRotated(D, C, B, F, A, e, t);
1567
1609
  }
1568
1610
  DrawDimOrdinate(D, C, B, F, A) {
1569
1611
  return this.imp.DrawDimOrdinate(D, C, B, F, A);
@@ -1612,7 +1654,7 @@ class U {
1612
1654
  !D || i.App.getImp().DestroyObject(D);
1613
1655
  }
1614
1656
  GetAllLayoutName() {
1615
- return new dD(this.imp.GetAllLayoutName());
1657
+ return new hD(this.imp.GetAllLayoutName());
1616
1658
  }
1617
1659
  SetCurrentLayout(D) {
1618
1660
  this.imp.SetCurrentLayout(w.encodeToGb2312(D));
@@ -1621,7 +1663,7 @@ class U {
1621
1663
  class RD {
1622
1664
  imp;
1623
1665
  init(D) {
1624
- this.imp = D, g.kZAxis = new g(0, 0, 1), g.kXAxis = new g(1, 0, 0), g.kYAxis = new g(0, 1, 0), p.kOrigin = new p(0, 0, 0), W.kIdentity = new W();
1666
+ this.imp = D, g.kZAxis = new g(0, 0, 1), g.kXAxis = new g(1, 0, 0), g.kYAxis = new g(0, 1, 0), l.kOrigin = new l(0, 0, 0), W.kIdentity = new W();
1625
1667
  }
1626
1668
  getImp() {
1627
1669
  return this.imp;
@@ -1630,14 +1672,15 @@ class RD {
1630
1672
  return this.imp.getLastCallResult();
1631
1673
  }
1632
1674
  CreateMxCAD(D, C, B, F, A) {
1633
- let t = this.imp.CreateMxDraw(D, C, B, F, A);
1634
- return new U(t);
1675
+ let e = this.imp.CreateMxDraw(D, C, B, F, A);
1676
+ return new U(e);
1635
1677
  }
1636
1678
  DestroyObject(D) {
1637
1679
  this.imp.DestroyObject(D);
1638
1680
  }
1639
1681
  GetCurrentMxCAD() {
1640
- return new U(this.imp.GetCurrentMxDraw());
1682
+ let D = this.imp.GetCurrentMxDraw();
1683
+ return D.McObject || (D.McObject = new U(this.imp.GetCurrentMxDraw())), D.McObject;
1641
1684
  }
1642
1685
  mcedRGB2Index(D, C, B, F = !0) {
1643
1686
  return this.imp.mcedRGB2Index(D, C, B, F);
@@ -1651,25 +1694,25 @@ class RD {
1651
1694
  return new Z(B);
1652
1695
  } else if (C == "McDbText") {
1653
1696
  let B = this.imp.ObjectIdToMdDbText(D);
1654
- return new Y(B);
1697
+ return new BD(B);
1655
1698
  } else if (C == "McDbPolyline") {
1656
1699
  let B = this.imp.ObjectIdToMdDbPolyline(D);
1657
- return new fD(B);
1700
+ return new MD(B);
1658
1701
  } else if (C == "McDbCircle") {
1659
1702
  let B = this.imp.ObjectIdToMdDbCircle(D);
1660
1703
  return new AD(B);
1661
1704
  } else if (C == "McDbArc") {
1662
1705
  let B = this.imp.ObjectIdToMdDbArc(D);
1663
- return new PD(B);
1706
+ return new eD(B);
1664
1707
  } else if (C == "McDbBlockReference") {
1665
1708
  let B = this.imp.ObjectIdToMdDbBlockReference(D);
1666
- return new MD(B);
1709
+ return new TD(B);
1667
1710
  } else if (C == "McDbAlignedDimension") {
1668
1711
  let B = this.imp.ObjectIdToMdDbAlignedDimension(D);
1669
- return new TD(B);
1712
+ return new kD(B);
1670
1713
  } else if (C == "McDbRotatedDimension") {
1671
1714
  let B = this.imp.ObjectIdToMdDbRotatedDimension(D);
1672
- return new kD(B);
1715
+ return new PD(B);
1673
1716
  } else if (C == "McDbMText") {
1674
1717
  let B = this.imp.ObjectIdToMdDbMText(D);
1675
1718
  return new FD(B);
@@ -1682,7 +1725,7 @@ class RD {
1682
1725
  let B = new Z();
1683
1726
  return B.getImp().ConnectionTempObject(D), i.App.DestroyObject(D), B;
1684
1727
  } else if (C == "McDbText") {
1685
- let B = new Y();
1728
+ let B = new BD();
1686
1729
  return B.getImp().ConnectionTempObject(D), i.App.DestroyObject(D), B;
1687
1730
  }
1688
1731
  return console.log("Mx: Clone error type"), new v(D);
@@ -1696,7 +1739,7 @@ class RD {
1696
1739
  });
1697
1740
  }
1698
1741
  }
1699
- class vD {
1742
+ class SD {
1700
1743
  mxcadassemblyimp;
1701
1744
  App = new RD();
1702
1745
  getCallResult() {
@@ -1707,11 +1750,17 @@ class vD {
1707
1750
  let F = D.z || 0;
1708
1751
  D = d.getCurrentDraw().docCoord2Cad(D.x, D.y, F);
1709
1752
  }
1710
- let B = new p();
1753
+ let B = new l();
1711
1754
  return D && D.x && D.y && (B.x = D.x, B.y = D.y, D.z && (B.y = D.z)), B;
1712
1755
  }
1756
+ GetCurrentMxCAD() {
1757
+ return this.App.GetCurrentMxCAD();
1758
+ }
1759
+ GetCurrentDatabase() {
1760
+ return this.App.GetCurrentMxCAD().GetDatabase();
1761
+ }
1713
1762
  }
1714
- const iD = "1.0.67", iC = "SharedArrayBuffer" in window, X = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), rC = (E, D = self.location.href) => X ? `https://unpkg.com/mxcad@${iD}/dist/wasm/2d-st/${E}` : D + E, sC = (E, D = self.location.href) => X ? `https://unpkg.com/mxcad@${iD}/dist/wasm/2d/${E}` : D + E, nC = (E, D = self.location.href) => X ? `https://unpkg.com/mxcad@${iD}/dist/wasm/3d/${E}` : D + E, OD = (E) => new Promise((D, C) => {
1763
+ const rD = "1.0.68", iC = "SharedArrayBuffer" in window, Q = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), rC = (E, D = self.location.href) => Q ? `https://unpkg.com/mxcad@${rD}/dist/wasm/2d-st/${E}` : D + E, sC = (E, D = self.location.href) => Q ? `https://unpkg.com/mxcad@${rD}/dist/wasm/2d/${E}` : D + E, nC = (E, D = self.location.href) => Q ? `https://unpkg.com/mxcad@${rD}/dist/wasm/3d/${E}` : D + E, vD = (E) => new Promise((D, C) => {
1715
1764
  const B = document.createElement("script");
1716
1765
  B.src = E, B.type = "text/javascript", B.crossOrigin = "anonymous", document.body.appendChild(B), B.onload = () => {
1717
1766
  D();
@@ -1720,13 +1769,13 @@ const iD = "1.0.67", iC = "SharedArrayBuffer" in window, X = document.currentScr
1720
1769
  };
1721
1770
  }), oC = async (E, D, C) => {
1722
1771
  const { locateFile: B } = C, F = B(E + ".js");
1723
- return await OD(F), await globalThis[D](C);
1772
+ return await vD(F), await globalThis[D](C);
1724
1773
  };
1725
1774
  let i;
1726
- async function jD(E, D = iC || !X ? rC : sC, C, B, F) {
1727
- return new Promise(async (A, t) => {
1775
+ async function OD(E, D = iC || !Q ? rC : sC, C, B, F) {
1776
+ return new Promise(async (A, e) => {
1728
1777
  try {
1729
- if (i || (i = new vD()), i.mxcadassemblyimp)
1778
+ if (i || (i = new SD()), i.mxcadassemblyimp)
1730
1779
  return E && E(i), A(i);
1731
1780
  const n = await oC("mxdrawassembly_min", "mxdrawassembly", {
1732
1781
  locateFile: D,
@@ -1735,8 +1784,8 @@ async function jD(E, D = iC || !X ? rC : sC, C, B, F) {
1735
1784
  i.mxcadassemblyimp = n;
1736
1785
  let r = new n.McApp();
1737
1786
  B && r.setFontFilePath(B), r.Init(), i.App.init(r), F && i.App.addNetworkLoadingFont(F), E && E(i), A(i);
1738
- } catch (e) {
1739
- t(e);
1787
+ } catch (t) {
1788
+ e(t);
1740
1789
  }
1741
1790
  });
1742
1791
  }
@@ -1760,27 +1809,27 @@ const aC = (E) => {
1760
1809
  B(F);
1761
1810
  }
1762
1811
  }), lC = async (E) => {
1763
- oD.state.MxFun || await ZD();
1764
- const { networkFonts: D, fontspath: C, locateFile: B, wasmBinary: F, canvas: A, userIdentitySign: t, onOpenFileComplete: e, fileUrl: n, onInit: r = () => {
1812
+ aD.state.MxFun || await JD();
1813
+ const { networkFonts: D, fontspath: C, locateFile: B, wasmBinary: F, canvas: A, userIdentitySign: e, onOpenFileComplete: t, fileUrl: n, onInit: r = () => {
1765
1814
  d.setIniset({
1766
1815
  EnableIntelliSelect: !0,
1767
1816
  IntelliSelectType: 1,
1768
1817
  multipleSelect: !1
1769
1818
  });
1770
1819
  } } = E || {};
1771
- await jD(() => {
1820
+ await OD(() => {
1772
1821
  }, B, F, C, D), r();
1773
- let o = await uC(A, t);
1822
+ let o = await uC(A, e);
1774
1823
  const u = d.getMxFunTHREE();
1775
- let l = new u.Vector2();
1776
- o.getRenderer().getSize(l);
1777
- const s = i.App.CreateMxCAD(l.width, l.height, o.getCanvas().id, o.isWebgl2(), o.getId());
1824
+ let c = new u.Vector2();
1825
+ o.getRenderer().getSize(c);
1826
+ const s = i.App.CreateMxCAD(c.width, c.height, o.getCanvas().id, o.isWebgl2(), o.getId());
1778
1827
  return o.initMxCpp(s), o.addEvent("openFileComplete", () => {
1779
- e && e();
1828
+ t && t();
1780
1829
  }), n && s.openWebFile(n), s;
1781
1830
  };
1782
1831
  async function cC() {
1783
- const E = new T();
1832
+ const E = new S();
1784
1833
  E.setMessage(`
1785
1834
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
1786
1835
  let D = await E.go();
@@ -1790,7 +1839,7 @@ async function cC() {
1790
1839
  if (C.length <= 0)
1791
1840
  return;
1792
1841
  let B = d.screenCoordLong2Doc(50);
1793
- C = H.b64Encode(C);
1842
+ C = N.b64Encode(C);
1794
1843
  const F = {
1795
1844
  postx: D.x,
1796
1845
  posty: D.y,
@@ -1799,23 +1848,23 @@ async function cC() {
1799
1848
  };
1800
1849
  d.call("Mx_Text", F);
1801
1850
  }
1802
- class mC extends aD {
1851
+ class mC extends uD {
1803
1852
  getGripPoints() {
1804
1853
  const { x: D, y: C, z: B } = this.center;
1805
- 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);
1806
- return [this.center, F, A, t, e];
1854
+ let F = new THREE.Vector3(D, C + this.radius, B), A = new THREE.Vector3(D, C - this.radius, B), e = new THREE.Vector3(D - this.radius, C, B), t = new THREE.Vector3(D + this.radius, C, B);
1855
+ return [this.center, F, A, e, t];
1807
1856
  }
1808
1857
  moveGripPointsAt(D, C) {
1809
- const [B, F, A, t, e] = this.getGripPoints();
1810
- 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;
1858
+ const [B, F, A, e, t] = this.getGripPoints();
1859
+ return D === 0 && (this.center = B.add(C)), D === 1 && (this.radius = F.add(C).distanceTo(this.center)), D === 2 && (this.radius = A.add(C).distanceTo(this.center)), D === 3 && (this.radius = e.add(C).distanceTo(this.center)), D === 4 && (this.radius = t.add(C).distanceTo(this.center)), !0;
1811
1860
  }
1812
1861
  }
1813
- const sD = (E) => {
1814
- const [D, C, B] = E, { x: F, y: A, z: t } = D, { x: e, y: n, z: r } = C, { x: o, y: u, z: l } = B, s = A * r - n * t - A * l + u * t + n * l - u * r, a = -(F * r - e * t - F * l + o * t + e * l - o * r), h = F * n - e * A - F * u + o * A + e * u - o * n, y = -(F * n * l - F * u * r - e * A * l + e * u * t + o * A * r - o * n * t), c = 2 * (e - F), m = 2 * (n - A), k = 2 * (r - t), G = F * F + A * A + t * t - e * e - n * n - r * r, P = 2 * (o - F), L = 2 * (u - A), S = 2 * (l - t), I = F * F + A * A + t * t - o * o - u * u - l * l, KD = -(a * k * I - a * S * G - m * h * I + m * S * y + L * h * G - L * k * y) / (s * m * S - s * L * k - c * a * S + c * L * h + P * a * k - P * m * h), HD = (s * k * I - s * S * G - c * h * I + c * S * y + P * h * G - P * k * y) / (s * m * S - s * L * k - c * a * S + c * L * h + P * a * k - P * m * h), _D = -(s * m * I - s * L * G - c * a * I + c * L * y + P * a * G - P * m * y) / (s * m * S - s * L * k - c * a * S + c * L * h + P * a * k - P * m * h);
1815
- return new THREE.Vector3(KD, HD, _D);
1862
+ const nD = (E) => {
1863
+ const [D, C, B] = E, { x: F, y: A, z: e } = D, { x: t, y: n, z: r } = C, { x: o, y: u, z: c } = B, s = A * r - n * e - A * c + u * e + n * c - u * r, a = -(F * r - t * e - F * c + o * e + t * c - o * r), h = F * n - t * A - F * u + o * A + t * u - o * n, b = -(F * n * c - F * u * r - t * A * c + t * u * e + o * A * r - o * n * e), y = 2 * (t - F), m = 2 * (n - A), p = 2 * (r - e), G = F * F + A * A + e * e - t * t - n * n - r * r, k = 2 * (o - F), P = 2 * (u - A), L = 2 * (c - e), I = F * F + A * A + e * e - o * o - u * u - c * c, KD = -(a * p * I - a * L * G - m * h * I + m * L * b + P * h * G - P * p * b) / (s * m * L - s * P * p - y * a * L + y * P * h + k * a * p - k * m * h), HD = (s * p * I - s * L * G - y * h * I + y * L * b + k * h * G - k * p * b) / (s * m * L - s * P * p - y * a * L + y * P * h + k * a * p - k * m * h), ND = -(s * m * I - s * P * G - y * a * I + y * P * b + k * a * G - k * m * b) / (s * m * L - s * P * p - y * a * L + y * P * h + k * a * p - k * m * h);
1864
+ return new THREE.Vector3(KD, HD, ND);
1816
1865
  };
1817
- function GD() {
1818
- const E = new T();
1866
+ function jD() {
1867
+ const E = new S();
1819
1868
  let D = new mC();
1820
1869
  R.use(D), D.closed = !1;
1821
1870
  let C = 0, B = "default", F = !0;
@@ -1825,37 +1874,37 @@ function GD() {
1825
1874
  D.radius = F ? D.center.distanceTo(s) : D.center.distanceTo(s) / 2, a.drawCustomEntity(D), a.drawLine(D.center, s);
1826
1875
  }
1827
1876
  );
1828
- }, t = (s) => {
1877
+ }, e = (s) => {
1829
1878
  if (B === "default") {
1830
1879
  if (s === x.kOk) {
1831
1880
  if (C === 0)
1832
1881
  E.setMessage(`
1833
1882
  \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(), A();
1834
1883
  else if (C === 1)
1835
- return i.App.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius), !0;
1884
+ return i.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius), !0;
1836
1885
  C++;
1837
1886
  }
1838
1887
  s === x.kKeyWord && E.isKeyWordPicked("D") && (F = !1, A(), E.setMessage(`
1839
1888
  \u6307\u5B9A\u5706\u7684\u76F4\u5F84:`), E.setKeyWords(""));
1840
1889
  }
1841
1890
  };
1842
- let e = [];
1891
+ let t = [];
1843
1892
  const n = (s) => {
1844
1893
  if (B === "3P" && (E.setMessage(`
1845
1894
  \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E00\u4E2A\u70B9:`), s === x.kOk)) {
1846
- if (C === 0 && (e.push(E.value()), E.setUserDraw((a, h) => {
1847
- h.drawLine(e[0], a);
1895
+ if (C === 0 && (t.push(E.value()), E.setUserDraw((a, h) => {
1896
+ h.drawLine(t[0], a);
1848
1897
  }), E.setMessage(`
1849
- \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), C === 1 && (e.push(E.value()), E.setUserDraw((a, h) => {
1850
- const [y, c] = e, m = a;
1851
- D.center = sD([
1898
+ \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), C === 1 && (t.push(E.value()), E.setUserDraw((a, h) => {
1899
+ const [b, y] = t, m = a;
1900
+ D.center = nD([
1901
+ b,
1852
1902
  y,
1853
- c,
1854
1903
  m
1855
- ]), D.radius = D.center.distanceTo(y), h.drawCustomEntity(D);
1904
+ ]), D.radius = D.center.distanceTo(b), h.drawCustomEntity(D);
1856
1905
  }), E.setMessage(`
1857
1906
  \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E09\u4E2A\u70B9:`)), C === 2)
1858
- return e.push(E.value()), D.center = sD(e), D.radius = D.center.distanceTo(e[0]), i.App.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius), !0;
1907
+ return t.push(E.value()), D.center = nD(t), D.radius = D.center.distanceTo(t[0]), i.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius), !0;
1859
1908
  C++;
1860
1909
  }
1861
1910
  };
@@ -1869,10 +1918,10 @@ function GD() {
1869
1918
  o(r, a), h.drawCustomEntity(D), h.drawLine(r, a);
1870
1919
  }), E.setMessage(`
1871
1920
  \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E8C\u4E2A\u7AEF\u70B9:`)), C === 1)
1872
- return o(r, E.value()), i.App.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius), !0;
1921
+ return o(r, E.value()), i.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius), !0;
1873
1922
  C++;
1874
1923
  }
1875
- }, l = (s) => {
1924
+ }, c = (s) => {
1876
1925
  if (B === "T") {
1877
1926
  if (E.setMessage(`
1878
1927
  \u6307\u5B9A\u5BF9\u8C61\u4E0E\u5706\u7684\u7B2C\u4E00\u4E2A\u5207\u70B9:`), s === x.kOk) {
@@ -1890,119 +1939,68 @@ function GD() {
1890
1939
  \u6307\u5B9A\u5706\u7684\u5706\u5FC3\u6216[\u4E09\u70B9(3P)/\u4E24\u70B9(2P)/\u5207\u70B9\u3001\u5207\u70B9\u3001\u534A\u5F84(T)]:`
1891
1940
  ), E.setKeyWords("3P 2P T"), E.goWhile(
1892
1941
  (s) => {
1893
- if (s === x.kKeyWord && (E.isKeyWordPicked("3P") ? B = "3P" : E.isKeyWordPicked("2P") ? B = "2P" : E.isKeyWordPicked("T") && (B = "T")), t(s))
1942
+ if (s === x.kKeyWord && (E.isKeyWordPicked("3P") ? B = "3P" : E.isKeyWordPicked("2P") ? B = "2P" : E.isKeyWordPicked("T") && (B = "T")), e(s))
1894
1943
  return { exit: !0 };
1895
1944
  if (n(s))
1896
1945
  return { exit: !0 };
1897
1946
  if (u(s))
1898
1947
  return { exit: !0 };
1899
- if (l(s))
1948
+ if (c(s))
1900
1949
  return { exit: !0 };
1901
1950
  },
1902
1951
  (s) => {
1903
- s === x.kCancel && i.App.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius);
1952
+ s === x.kCancel && i.GetCurrentMxCAD().DrawCircle(D.center.x, D.center.y, D.radius);
1904
1953
  }
1905
1954
  );
1906
1955
  }
1907
1956
  d.on("init", () => {
1908
- d.addCommand("Mx_Circle", GD);
1957
+ d.addCommand("Mx_Circle", jD);
1909
1958
  });
1910
- const nD = () => oD.state.MxFun.stopRunCommand();
1911
- function DD(E, D, C, B) {
1959
+ const oD = () => aD.state.MxFun.stopRunCommand();
1960
+ function X(E, D, C, B) {
1912
1961
  const F = E - C, A = D - B;
1913
- let t = 0;
1914
- 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;
1962
+ let e = 0;
1963
+ return F == 0 ? e = Math.PI / 2 : e = Math.atan(Math.abs(A / F)), F < 0 && A >= 0 ? e = Math.PI - e : F < 0 && A < 0 ? e = Math.PI + e : F >= 0 && A < 0 && (e = Math.PI * 2 - e), e;
1915
1964
  }
1916
- async function ID() {
1917
- const E = new T();
1918
- let D = new J(), C = [];
1965
+ async function GD() {
1966
+ const E = new S();
1967
+ let D = new J(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor(), B = [];
1919
1968
  E.setMessage(`
1920
1969
  \u6307\u5B9A\u7B2C\u4E00\u70B9:`);
1921
- let B = await E.go();
1922
- E.setUserDraw((A, t) => {
1923
- C.forEach((e) => {
1924
- t.drawCustomEntity(e);
1925
- }), t.drawLine(B, A);
1970
+ let F = await E.go();
1971
+ E.setUserDraw((e, t) => {
1972
+ t.setColor(C), B.forEach((n) => {
1973
+ n.color = C, t.drawCustomEntity(n);
1974
+ }), t.drawLine(F, e);
1926
1975
  });
1927
- const F = () => {
1976
+ const A = () => {
1928
1977
  E.setMessage(`
1929
- \u6307\u5B9A\u4E0B\u4E00\u4E2A\u70B9:`), C.length > 1 ? E.setKeyWords("[\u9000\u51FA(E)/\u95ED\u5408(C)/\u653E\u5F03(U)]") : E.setKeyWords("[\u9000\u51FA(E)/\u653E\u5F03(U)]");
1978
+ \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)]");
1930
1979
  };
1931
- F(), E.goWhile(
1932
- (A) => {
1933
- if (A === x.kOk && (D = new J(), R.use(D), D.pt1 = B, D.pt2 = E.value(), B = D.pt2.clone(), C.push(D), F()), A === x.kKeyWord) {
1980
+ A(), E.goWhile(
1981
+ (e) => {
1982
+ if (e === x.kOk && (D = new J(), R.use(D), D.pt1 = F, D.pt2 = E.value(), F = D.pt2.clone(), B.push(D), A()), e === x.kKeyWord) {
1934
1983
  if (E.isKeyWordPicked("E"))
1935
- nD();
1984
+ oD();
1936
1985
  else if (E.isKeyWordPicked("C")) {
1937
1986
  const t = new J();
1938
- return t.pt1 = B.clone(), t.pt2 = C[0].pt1.clone(), R.use(t), C.push(t), B = t.pt2.clone(), nD(), { exit: !0 };
1987
+ return t.pt1 = F.clone(), t.pt2 = B[0].pt1.clone(), R.use(t), B.push(t), F = t.pt2.clone(), oD(), { exit: !0 };
1988
+ } else if (E.isKeyWordPicked("U")) {
1989
+ const t = B.pop();
1990
+ t && (F = t.pt1);
1939
1991
  }
1940
1992
  }
1941
1993
  },
1942
- (A) => (A === x.kCancel && C.forEach((t) => {
1943
- i.App.GetCurrentMxCAD().DrawLine(t.pt1.x, t.pt1.y, 0, t.pt2.x, t.pt2.y, 0);
1994
+ (e) => (e === x.kCancel && B.forEach((t) => {
1995
+ i.GetCurrentMxCAD().DrawEntity(new Z(t.pt1.x, t.pt1.y, 0, t.pt2.x, t.pt2.y, 0));
1944
1996
  }), { exit: !0 })
1945
1997
  );
1946
1998
  }
1947
- async function pC() {
1948
- {
1949
- const E = new T();
1950
- E.setMessage(`
1951
- \u6307\u5B9A\u4E00\u70B9:`);
1952
- let D = await E.go();
1953
- if (!D)
1954
- return;
1955
- let C = new Z(), B = new Y();
1956
- B.textString = "\u6D4B\u8BD5Test", B.height = d.viewCoordLong2Cad(100), C.startPoint = i.NewMcGePoint3d(D), E.setUserDraw((A, t) => {
1957
- C.endPoint = i.NewMcGePoint3d(A), B.position = i.NewMcGePoint3d(A), B.alignmentPoint = B.position, t.drawMcDbEntity(C), t.drawMcDbEntity(B);
1958
- }), E.setMessage(`
1959
- \u6307\u5B9A\u4E8C\u70B9:`), await E.go();
1960
- let F = i.App.GetCurrentMxCAD();
1961
- F.DrawEntity(B), F.DrawEntity(C);
1962
- }
1963
- }
1964
- async function dC() {
1965
- let E = new SD();
1966
- E.allSelect();
1967
- let D = E.count(), C = 0;
1968
- for (; C < D; C++) {
1969
- let B = E.item(C), F = B.getObjectName();
1970
- if (F == "McDbAlignedDimension" || F == "McDbRotatedDimension") {
1971
- let t = B.getMcDbObject().explode();
1972
- if (t.GetCount() == 0)
1973
- return;
1974
- let e = t.GetCount();
1975
- for (let n = 0; n < e; n++) {
1976
- let r = t.AtObject(n).val;
1977
- r?.ObjectName == "McDbMText" && console.log(r.contents);
1978
- }
1979
- }
1980
- }
1981
- }
1982
- function hC() {
1983
- i.App.GetCurrentMxCAD().saveFile("xxxxx");
1984
- }
1985
- function wC() {
1986
- i.App.GetCurrentMxCAD().SetCurrentLayout("Model");
1987
- }
1988
- function gC() {
1989
- i.App.GetCurrentMxCAD().SetCurrentLayout("Layout1");
1990
- }
1991
- function yC() {
1992
- i.App.GetCurrentMxCAD().saveFileToUrl("http://localhost:3337/mxcad/savefiledwg", (E, D) => {
1993
- try {
1994
- let C = JSON.parse(D);
1995
- console.log(C), console.log(E);
1996
- } catch {
1997
- console.log("Mx: sserverResult error");
1998
- }
1999
- });
2000
- }
2001
1999
  d.on("init", () => {
2002
- d.addCommand("Mx_Line", ID), d.addCommand("Mx_TestDraw", pC), d.addCommand("Mx_Test_GetDim", dC), d.addCommand("Mx_Test_SaveFile", hC), d.addCommand("Mx_Test_SaveFileDwg", yC), d.addCommand("Mx_Test", wC), d.addCommand("Mx_Test_SetLayout", gC);
2000
+ d.addCommand("Mx_Line", GD);
2003
2001
  });
2004
- async function xC() {
2005
- const E = new T();
2002
+ async function pC() {
2003
+ const E = new S();
2006
2004
  E.setMessage(`
2007
2005
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
2008
2006
  let D = await E.go();
@@ -2013,7 +2011,7 @@ async function xC() {
2013
2011
  if (C.length <= 0)
2014
2012
  return;
2015
2013
  let B = d.screenCoordLong2Doc(50);
2016
- C = H.b64Encode(C);
2014
+ C = N.b64Encode(C);
2017
2015
  const F = {
2018
2016
  postx: D.x,
2019
2017
  posty: D.y,
@@ -2022,8 +2020,8 @@ async function xC() {
2022
2020
  };
2023
2021
  d.call("Mx_MText", F);
2024
2022
  }
2025
- async function WD() {
2026
- const E = new T(), D = new YD();
2023
+ async function ID() {
2024
+ const E = new S(), D = new ZD();
2027
2025
  R.use(D), E.setMessage(`
2028
2026
  \u6307\u5B9A\u8D77\u70B9:`);
2029
2027
  let C;
@@ -2040,7 +2038,7 @@ async function WD() {
2040
2038
  },
2041
2039
  (B) => {
2042
2040
  if (B === x.kCancel) {
2043
- let F = i.App.GetCurrentMxCAD();
2041
+ let F = i.GetCurrentMxCAD();
2044
2042
  for (let A = 0; A < D.points.length; A++)
2045
2043
  A == 0 ? F.PathMoveTo(D.points[A].x, D.points[A].y) : F.PathLineTo(D.points[A].x, D.points[A].y);
2046
2044
  F.DrawPathToPolyline();
@@ -2049,10 +2047,10 @@ async function WD() {
2049
2047
  );
2050
2048
  }
2051
2049
  d.on("init", () => {
2052
- d.addCommand("Mx_Pline", WD);
2050
+ d.addCommand("Mx_Pline", ID);
2053
2051
  });
2054
- async function UD() {
2055
- const E = new T();
2052
+ async function WD() {
2053
+ const E = new S();
2056
2054
  E.setMessage(`
2057
2055
  \u6307\u5B9A\u4E00\u70B9:`);
2058
2056
  let D = await E.go(), C = new AD();
@@ -2060,39 +2058,39 @@ async function UD() {
2060
2058
  let B = 5;
2061
2059
  E.setUserDraw((F, A) => {
2062
2060
  C.radius = D.distanceTo(F);
2063
- let t = C.getEndParam().val, n = C.getDistAtParam(t).val / B, r = 0, o = new THREE.Vector3(), u = new THREE.Vector3();
2064
- for (let l = 0; l < B; l++) {
2061
+ let e = C.getEndParam().val, n = C.getDistAtParam(e).val / B, r = 0, o = new THREE.Vector3(), u = new THREE.Vector3();
2062
+ for (let c = 0; c < B; c++) {
2065
2063
  let s = C.getPointAtDist(r).val;
2066
- r += n, l > 0 ? A.drawMcDbLine(s.x, s.y, s.z, o.x, o.y, o.z) : u = new THREE.Vector3(s.x, s.y, s.z), l == B - 1 && A.drawMcDbLine(s.x, s.y, s.z, u.x, u.y, u.z), o = new THREE.Vector3(s.x, s.y, s.z);
2064
+ r += n, c > 0 ? A.drawMcDbLine(s.x, s.y, s.z, o.x, o.y, o.z) : u = new THREE.Vector3(s.x, s.y, s.z), c == B - 1 && A.drawMcDbLine(s.x, s.y, s.z, u.x, u.y, u.z), o = new THREE.Vector3(s.x, s.y, s.z);
2067
2065
  }
2068
2066
  }), E.setMessage(`
2069
2067
  \u6307\u5B9A\u4E8C\u70B9:`), await E.go(), E.drawReserve();
2070
2068
  }
2071
- d.addCommand("Mx_Polygon", UD);
2072
- function bC(E, D, C) {
2073
- const B = E.x, F = D.x, A = C.x, t = E.y, e = D.y, n = C.y, r = B - F, o = t - e, u = B - A, l = t - n, s = (B * B - F * F + (t * t - e * e)) / 2, a = (B * B - A * A + (t * t - n * n)) / 2, h = o * u - r * l, y = -(l * s - o * a) / h, c = -(r * a - u * s) / h;
2074
- return new THREE.Vector3(y, c, 0);
2069
+ d.addCommand("Mx_Polygon", WD);
2070
+ function dC(E, D, C) {
2071
+ const B = E.x, F = D.x, A = C.x, e = E.y, t = D.y, n = C.y, r = B - F, o = e - t, u = B - A, c = e - n, s = (B * B - F * F + (e * e - t * t)) / 2, a = (B * B - A * A + (e * e - n * n)) / 2, h = o * u - r * c, b = -(c * s - o * a) / h, y = -(r * a - u * s) / h;
2072
+ return new THREE.Vector3(b, y, 0);
2075
2073
  }
2076
- function fC(E, D) {
2074
+ function hC(E, D) {
2077
2075
  const C = E.x, B = E.y, F = D.x, A = D.y;
2078
2076
  return Math.sqrt((C - F) * (C - F) + (B - A) * (B - A));
2079
2077
  }
2080
- function MC(E, D, C) {
2078
+ function wC(E, D, C) {
2081
2079
  let B;
2082
2080
  E < C ? B = C - E : B = C - E + 360;
2083
2081
  let F;
2084
2082
  return E < D ? F = D - E : F = D - E + 360, F > B;
2085
2083
  }
2086
- function CD(E, D, C) {
2087
- const B = E.x, F = D.x, A = E.y, t = D.y;
2088
- let e, n, r;
2089
- return e = (A - t) / C, n = (B - F) / C, n >= 0.99999 && (n = 0.99999), n <= -0.99999 && (n = -0.99999), r = Math.acos(n), r = r / Math.PI * 180, e < -0.05 && (r = 360 - r), {
2090
- sin: e,
2084
+ function DD(E, D, C) {
2085
+ const B = E.x, F = D.x, A = E.y, e = D.y;
2086
+ let t, n, r;
2087
+ return t = (A - e) / C, n = (B - F) / C, n >= 0.99999 && (n = 0.99999), n <= -0.99999 && (n = -0.99999), r = Math.acos(n), r = r / Math.PI * 180, t < -0.05 && (r = 360 - r), {
2088
+ sin: t,
2091
2089
  cos: n,
2092
2090
  angle: r
2093
2091
  };
2094
2092
  }
2095
- const $ = qD.MrxDbgUiPrBaseReturn, f = (E, D, C) => {
2093
+ const $ = qD.MrxDbgUiPrBaseReturn, M = (E, D, C) => {
2096
2094
  const B = () => {
2097
2095
  E.go((F) => {
2098
2096
  if (F === $.kKeyWord && C() && B(), F === $.kOk && D() && B(), F === $.kNone && B(), F === $.kCancel)
@@ -2101,7 +2099,7 @@ const $ = qD.MrxDbgUiPrBaseReturn, f = (E, D, C) => {
2101
2099
  };
2102
2100
  return B;
2103
2101
  };
2104
- class rD extends aD {
2102
+ class sD extends uD {
2105
2103
  constructor() {
2106
2104
  super(), this._propertyDbKeys = [...this._propertyDbKeys, "bulge"];
2107
2105
  }
@@ -2109,24 +2107,24 @@ class rD extends aD {
2109
2107
  return "MxDbCircle";
2110
2108
  }
2111
2109
  create() {
2112
- return new rD();
2110
+ return new sD();
2113
2111
  }
2114
2112
  getArcBulge(D, C, B) {
2115
2113
  const F = D.distanceTo(C);
2116
- let e = 2 * new THREE.Line3(D, C).getCenter(
2114
+ let t = 2 * new THREE.Line3(D, C).getCenter(
2117
2115
  new THREE.Vector3()
2118
2116
  ).distanceTo(B) / F;
2119
- 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;
2117
+ return t > 0.9999 && t < 1.0001 ? t = 1 : t < -0.9999 && t > -1.0001 ? t = -1 : Math.abs(t) < 1e-10 && (t = 0), t;
2120
2118
  }
2121
2119
  getArcMidPoint(D, C, B, F, A) {
2122
- const t = D, e = B * Math.PI / 180;
2120
+ const e = D, t = B * Math.PI / 180;
2123
2121
  let n = F * Math.PI / 180;
2124
2122
  const r = new THREE.Vector3(), o = new THREE.Vector3();
2125
- r.x = t.x + C * Math.cos(e), r.y = t.y + C * Math.sin(e), o.x = t.x + C * Math.cos(n), o.y = t.y + C * Math.sin(n);
2123
+ r.x = e.x + C * Math.cos(t), r.y = e.y + C * Math.sin(t), o.x = e.x + C * Math.cos(n), o.y = e.y + C * Math.sin(n);
2126
2124
  const u = C;
2127
2125
  (A ? B < F : B > F) && (n += Math.PI * 2);
2128
- const l = new THREE.Vector3();
2129
- return l.x = t.x + u * Math.cos((e + n) / 2), l.y = t.y + u * Math.sin((e + n) / 2), [r, l, o, this.center];
2126
+ const c = new THREE.Vector3();
2127
+ return c.x = e.x + u * Math.cos((t + n) / 2), c.y = e.y + u * Math.sin((t + n) / 2), [r, c, o, this.center];
2130
2128
  }
2131
2129
  getGripPoints() {
2132
2130
  return this.getArcMidPoint(
@@ -2145,231 +2143,234 @@ class rD extends aD {
2145
2143
  }
2146
2144
  upDatePoints(D, C, B) {
2147
2145
  D[C].add(B);
2148
- const [F, A, t] = D;
2149
- this.center = bC(F, t, A), this.radius = fC(A, this.center);
2150
- const e = CD(F, this.center, this.radius), n = CD(t, this.center, this.radius), r = CD(A, this.center, this.radius);
2151
- this.clockwise = MC(
2146
+ const [F, A, e] = D;
2147
+ this.center = dC(F, e, A), this.radius = hC(A, this.center);
2148
+ const t = DD(F, this.center, this.radius), n = DD(e, this.center, this.radius), r = DD(A, this.center, this.radius);
2149
+ this.clockwise = wC(
2152
2150
  n.angle,
2153
- e.angle,
2151
+ t.angle,
2154
2152
  r.angle
2155
- ), this.startAngle = THREE.MathUtils.degToRad(e.angle), this.endAngle = THREE.MathUtils.degToRad(n.angle);
2153
+ ), this.startAngle = THREE.MathUtils.degToRad(t.angle), this.endAngle = THREE.MathUtils.degToRad(n.angle);
2156
2154
  }
2157
2155
  }
2158
- async function zD() {
2159
- const E = new T();
2160
- E.setMessage(`
2161
- \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), E.setKeyWords("[\u5706\u5FC3(C)]");
2162
- let D = new rD();
2163
- D.closed = !1, R.use(D);
2164
- let C, B, F;
2165
- const A = f(
2166
- E,
2156
+ async function UD() {
2157
+ let E = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2158
+ const D = new S();
2159
+ D.setMessage(`
2160
+ \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)]");
2161
+ let C = new sD();
2162
+ C.closed = !1, R.use(C);
2163
+ let B, F, A;
2164
+ const e = M(
2165
+ D,
2167
2166
  () => {
2168
- C = E.value(), E.setMessage(`
2169
- \u6307\u5B9A\u5706\u5F27\u7684\u7B2C\u4E8C\u4E2A\u70B9:`), E.setKeyWords("[\u5706\u5FC3(C)/\u7AEF\u70B9(E)]"), E.setUserDraw((c, m) => {
2170
- m.drawLine(C, c);
2171
- }), a();
2167
+ B = D.value(), D.setMessage(`
2168
+ \u6307\u5B9A\u5706\u5F27\u7684\u7B2C\u4E8C\u4E2A\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)/\u7AEF\u70B9(E)]"), D.setUserDraw((m, p) => {
2169
+ p.setColor(E), p.drawLine(B, m);
2170
+ }), h();
2172
2171
  },
2173
2172
  () => {
2174
- if (E.isKeyWordPicked("C")) {
2175
- const c = new q();
2176
- D.center = E.value(), c.center = E.value(), E.setMessage(`
2177
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), E.setKeyWords(""), e();
2173
+ if (D.isKeyWordPicked("C")) {
2174
+ const m = new _();
2175
+ m.color = E, C.center = D.value(), m.center = D.value(), D.setMessage(`
2176
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), D.setKeyWords(""), n();
2178
2177
  } else
2179
2178
  return !0;
2180
2179
  }
2181
2180
  );
2182
2181
  let t;
2183
- const e = f(
2184
- E,
2182
+ const n = M(
2183
+ D,
2185
2184
  () => {
2186
- t = E.value(), F = new q(), F.closed = !1, R.use(F), F.center = t, D.center = t, E.setMessage(`
2187
- \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), E.setUserDraw((c, m) => {
2188
- m.drawCustomEntity(F), m.drawLine(t, c);
2189
- }), o();
2185
+ t = D.value(), A = new _(), A.closed = !1, R.use(A), A.color = E, A.center = t, C.center = t, D.setMessage(`
2186
+ \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setUserDraw((m, p) => {
2187
+ p.drawCustomEntity(A), p.setColor(E), p.drawLine(t, m);
2188
+ }), u();
2190
2189
  },
2191
2190
  () => {
2192
2191
  }
2193
2192
  );
2194
- let n, r;
2195
- const o = f(
2196
- E,
2193
+ let r, o;
2194
+ const u = M(
2195
+ D,
2197
2196
  () => {
2198
- n = E.value(), F.endPoint = n, E.setMessage(
2197
+ r = D.value(), A.endPoint = r, D.setMessage(
2199
2198
  `
2200
2199
  \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)]:`
2201
- ), E.setKeyWords("A L R"), r = new J(), r.setDashLineDisplay(!0), r.setDashArray(0.05), r.setLineWidth(2), r.setColor("#ffd30d"), r.pt1 = F.center, E.setUserDraw((c, m) => {
2202
- F.startPoint = c, r.pt2 = c, m.drawCustomEntity(F), m.drawCustomEntity(r);
2203
- }), l();
2200
+ ), D.setKeyWords("A L R"), o = new J(), o.setDashLineDisplay(!0), o.setDashArray(0.05), o.setLineWidth(2), o.setColor("#ffd30d"), o.pt1 = A.center, D.setUserDraw((m, p) => {
2201
+ A.startPoint = m, o.pt2 = m, p.drawCustomEntity(A), p.drawCustomEntity(o);
2202
+ }), s();
2204
2203
  },
2205
2204
  () => {
2206
2205
  }
2207
2206
  );
2208
- let u;
2209
- const l = f(
2210
- E,
2207
+ let c;
2208
+ const s = M(
2209
+ D,
2211
2210
  () => {
2212
- u = E.value(), F.startPoint = u, F.endPoint = n, d.getCurrentDraw().addMxEntity(F);
2211
+ c = D.value(), A.startPoint = c, A.endPoint = r, d.getCurrentDraw().addMxEntity(A);
2213
2212
  },
2214
2213
  () => {
2215
- if (E.isKeyWordPicked("A"))
2216
- return E.setMessage(
2214
+ if (D.isKeyWordPicked("A"))
2215
+ return D.setMessage(
2217
2216
  `
2218
2217
  \u6307\u5B9A\u5706\u5F27\u7684\u5939\u89D2(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u4FEE\u6539\u534A\u5F84(R)]:`
2219
- ), E.setKeyWords("R"), E.setUserDraw((c, m) => {
2220
- F.startPoint = c, m.drawCustomEntity(F), m.drawCustomEntity(r);
2218
+ ), D.setKeyWords("R"), D.setUserDraw((m, p) => {
2219
+ A.startPoint = m, p.drawCustomEntity(A), p.drawCustomEntity(o);
2221
2220
  }), !0;
2222
- if (E.isKeyWordPicked("L"))
2223
- return E.setMessage(
2221
+ if (D.isKeyWordPicked("L"))
2222
+ return D.setMessage(
2224
2223
  `
2225
2224
  \u6307\u5B9A\u5706\u5F27\u7684\u5939\u89D2(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u4FEE\u6539\u534A\u5F84(R)]:`
2226
- ), E.setKeyWords("R"), E.setUserDraw((c, m) => {
2227
- F.startPoint = c, m.drawCustomEntity(F), m.drawCustomEntity(r);
2225
+ ), D.setKeyWords("R"), D.setUserDraw((m, p) => {
2226
+ A.startPoint = m, p.drawCustomEntity(A), p.drawCustomEntity(o);
2228
2227
  }), !0;
2229
- if (E.isKeyWordPicked("R"))
2230
- E.setMessage(
2228
+ if (D.isKeyWordPicked("R"))
2229
+ D.setMessage(
2231
2230
  `
2232
- \u6307\u5B9A\u5706\u5F27\u7684\u534A\u5F84${F.radius ? "<" + F.radius + ">" : ""}:`
2233
- ), E.setKeyWords(""), E.setUserDraw((c, m) => {
2234
- m.drawLine(c, F.center), F.startPoint = c, m.drawCustomEntity(F);
2235
- }), o();
2231
+ \u6307\u5B9A\u5706\u5F27\u7684\u534A\u5F84${A.radius ? "<" + A.radius + ">" : ""}:`
2232
+ ), D.setKeyWords(""), D.setUserDraw((m, p) => {
2233
+ p.drawLine(m, A.center), A.startPoint = m, p.drawCustomEntity(A);
2234
+ }), u();
2236
2235
  else
2237
2236
  return !0;
2238
2237
  }
2239
2238
  );
2240
- let s;
2241
- const a = f(
2242
- E,
2239
+ let a;
2240
+ const h = M(
2241
+ D,
2243
2242
  () => {
2244
- s = E.value(), E.setMessage(`
2245
- \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), B = new QD(), B.autoClockwise = !0, B.closed = !1, R.use(B), B.point1 = C, B.point3 = s, E.setUserDraw((c, m) => {
2246
- B.point2 = c, m.drawCustomEntity(B);
2243
+ a = D.value(), D.setMessage(`
2244
+ \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), F = new YD(), F.color = E, F.autoClockwise = !0, F.closed = !1, R.use(F), D.setUserDraw((m, p) => {
2245
+ F.point1 = B, F.point3 = a, F.point2 = m, p.drawCustomEntity(F);
2247
2246
  }), y();
2248
2247
  },
2249
2248
  () => {
2250
- if (E.isKeyWordPicked("C"))
2251
- F = new q(), F.closed = !1, R.use(F), E.setMessage(`
2252
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), E.setKeyWords(""), E.setUserDraw((c, m) => {
2253
- F.startPoint = C, m.drawLine(c, F.startPoint);
2254
- }), e();
2255
- else if (E.isKeyWordPicked("E"))
2256
- F = new q(), F.closed = !1, R.use(F), E.setMessage(`
2257
- \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), E.setKeyWords(""), E.setUserDraw((c, m) => {
2258
- F.startPoint = C, m.drawLine(c, F.startPoint);
2259
- }), e();
2249
+ if (D.isKeyWordPicked("C"))
2250
+ A = new _(), A.closed = !1, R.use(A), A.color = E, D.setMessage(`
2251
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((m, p) => {
2252
+ A.startPoint = B, p.drawLine(m, A.startPoint);
2253
+ }), n();
2254
+ else if (D.isKeyWordPicked("E"))
2255
+ A = new _(), A.closed = !1, R.use(A), A.color = E, D.setMessage(`
2256
+ \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((m, p) => {
2257
+ A.startPoint = B, p.drawLine(m, A.startPoint);
2258
+ }), n();
2260
2259
  else
2261
2260
  return !0;
2262
2261
  }
2263
2262
  );
2264
- let h = i.App.GetCurrentMxCAD();
2265
- const y = f(
2266
- E,
2263
+ let b = i.GetCurrentMxCAD();
2264
+ const y = M(
2265
+ D,
2267
2266
  () => {
2268
- B.point1 = C, B.point2 = E.value(), B.point3 = s, h.DrawArc2(B.point1.x, B.point1.y, B.point3.x, B.point3.y, B.point2.x, B.point2.y);
2267
+ F.point1 = B, F.point2 = D.value(), F.point3 = a;
2268
+ let m = new eD();
2269
+ m.computeArc(F.point1.x, F.point1.y, F.point3.x, F.point3.y, F.point2.x, F.point2.y), b.DrawEntity(m);
2269
2270
  },
2270
2271
  () => {
2271
- if (E.isKeyWordPicked("C"))
2272
+ if (D.isKeyWordPicked("C"))
2272
2273
  console.log("C");
2273
- else if (E.isKeyWordPicked("E"))
2274
+ else if (D.isKeyWordPicked("E"))
2274
2275
  console.log("E");
2275
2276
  else
2276
2277
  return !0;
2277
2278
  }
2278
2279
  );
2279
- A();
2280
+ e();
2280
2281
  }
2281
2282
  d.on("init", () => {
2282
- d.addCommand("Mx_Arc", zD);
2283
+ d.addCommand("Mx_Arc", UD);
2283
2284
  });
2284
- function VD() {
2285
- const E = new T(), D = new XD();
2285
+ function zD() {
2286
+ const E = new S(), D = new QD();
2286
2287
  D.closed = !1, R.use(D), E.setMessage(`
2287
2288
  \u6307\u5B9A\u692D\u5706\u7684\u8F74\u7AEF\u70B9`), E.setKeyWords("[\u4E2D\u5FC3\u70B9(C)]");
2288
2289
  let C, B = new THREE.Vector3();
2289
- f(
2290
+ M(
2290
2291
  E,
2291
2292
  () => {
2292
2293
  C = E.value(), E.setUserDraw((r, o) => {
2293
2294
  const u = new THREE.Line3(C, r);
2294
- u.getCenter(B), D.center = B, D.xRadius = u.distance() / 2, D.yRadius = D.xRadius, D.rotation = DD(r.x, r.y, B.x, B.y), o.drawLine(r, C);
2295
+ u.getCenter(B), D.center = B, D.xRadius = u.distance() / 2, D.yRadius = D.xRadius, D.rotation = X(r.x, r.y, B.x, B.y), o.drawLine(r, C);
2295
2296
  }), E.setMessage(`
2296
2297
  \u6307\u5B9A\u692D\u5706\u5F27\u8F74\u7684\u53E6\u4E00\u4E2A\u7AEF\u70B9:`), E.setKeyWords(""), A();
2297
2298
  },
2298
2299
  () => {
2299
2300
  }
2300
2301
  )();
2301
- const A = f(
2302
+ const A = M(
2302
2303
  E,
2303
2304
  () => {
2304
2305
  E.setUserDraw((r, o) => {
2305
2306
  D.yRadius = B.distanceTo(r), o.drawLine(B, r), o.drawCustomEntity(D);
2306
2307
  }), E.setMessage(`
2307
- \u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), E.setKeyWords(""), t();
2308
+ \u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), E.setKeyWords(""), e();
2308
2309
  },
2309
2310
  () => {
2310
2311
  }
2311
- ), t = f(
2312
+ ), e = M(
2312
2313
  E,
2313
2314
  () => {
2314
2315
  E.setMessage(`
2315
2316
  \u6307\u5B9A\u8D77\u59CB\u89D2\u5EA6`), E.setKeyWords(""), E.setUserDraw((r, o) => {
2316
- D.startAngle = DD(r.x, r.y, B.x, B.y) - D.rotation, o.drawLine(B, r), o.drawCustomEntity(D);
2317
- }), e();
2317
+ D.startAngle = X(r.x, r.y, B.x, B.y) - D.rotation, o.drawLine(B, r), o.drawCustomEntity(D);
2318
+ }), t();
2318
2319
  },
2319
2320
  () => {
2320
2321
  }
2321
- ), e = f(
2322
+ ), t = M(
2322
2323
  E,
2323
2324
  () => {
2324
2325
  E.setUserDraw((r, o) => {
2325
- D.endAngle = DD(r.x, r.y, B.x, B.y) - D.rotation, o.drawLine(B, r), o.drawCustomEntity(D);
2326
+ D.endAngle = X(r.x, r.y, B.x, B.y) - D.rotation, o.drawLine(B, r), o.drawCustomEntity(D);
2326
2327
  }), E.setMessage(`
2327
2328
  \u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), E.setKeyWords(""), n();
2328
2329
  },
2329
2330
  () => {
2330
2331
  }
2331
- ), n = f(
2332
+ ), n = M(
2332
2333
  E,
2333
2334
  () => {
2334
2335
  let r = new g(D.xRadius, 0, 0);
2335
- r.rotateBy(D.rotation, g.kZAxis), i.App.GetCurrentMxCAD().DrawEllipseArc(D.center.x, D.center.y, r.x, r.y, D.yRadius / D.xRadius, D.startAngle, D.endAngle);
2336
+ r.rotateBy(D.rotation, g.kZAxis), i.GetCurrentMxCAD().DrawEllipseArc(D.center.x, D.center.y, r.x, r.y, D.yRadius / D.xRadius, D.startAngle, D.endAngle);
2336
2337
  },
2337
2338
  () => {
2338
2339
  }
2339
2340
  );
2340
2341
  }
2341
- function TC() {
2342
- const E = new T(), D = new DC(), C = new CC();
2342
+ function yC() {
2343
+ const E = new S(), D = new XD(), C = new DC();
2343
2344
  E.setMessage(`
2344
2345
  \u70B9\u51FB\u5F00\u59CB\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2345
2346
  C.point1 = E.value(), D.setDraw((B) => {
2346
2347
  C.point2 = B, D.drawCustomEntity(C);
2347
2348
  }), E.setUserDraw(D), E.setMessage(`
2348
2349
  \u518D\u6B21\u70B9\u51FB\u7ED3\u675F\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2349
- i.App.GetCurrentMxCAD().DrawEllipse(C.center.x, C.center.y, C.xRadius, 0, C.yRadius / C.xRadius);
2350
+ i.GetCurrentMxCAD().DrawEllipse(C.center.x, C.center.y, C.xRadius, 0, C.yRadius / C.xRadius);
2350
2351
  });
2351
2352
  });
2352
2353
  }
2353
2354
  d.on("init", () => {
2354
- d.addCommand("Mx_EllipseArc", VD), d.addCommand("Mx_Ellipse", TC);
2355
+ d.addCommand("Mx_EllipseArc", zD), d.addCommand("Mx_Ellipse", yC);
2355
2356
  });
2356
- async function ND() {
2357
- (await eD.selectEnt(`
2357
+ async function VD() {
2358
+ (await iD.selectEnt(`
2358
2359
  \u9009\u62E9\u5220\u9664\u5BF9\u8C61`)).forEach((D) => {
2359
2360
  D.erase();
2360
2361
  });
2361
2362
  }
2362
- d.addCommand("Mx_Erase", ND);
2363
- const kC = async (E, D, C) => {
2363
+ d.addCommand("Mx_Erase", VD);
2364
+ const gC = async (E, D, C) => {
2364
2365
  const { locateFile: B } = C, F = B(E + ".js");
2365
- return await OD(F), await globalThis[D](C);
2366
+ return await vD(F), await globalThis[D](C);
2366
2367
  };
2367
- function PC(E) {
2368
+ function bC(E) {
2368
2369
  return typeof ResizeObserver == "function" ? new ResizeObserver(E) : null;
2369
2370
  }
2370
- function LC(E, D) {
2371
+ function xC(E, D) {
2371
2372
  const C = () => requestAnimationFrame(D);
2372
- let B = PC(C);
2373
+ let B = bC(C);
2373
2374
  if (B) {
2374
2375
  B.observe(E);
2375
2376
  return;
@@ -2379,7 +2380,7 @@ function LC(E, D) {
2379
2380
  return;
2380
2381
  }
2381
2382
  }
2382
- function SC(E, D) {
2383
+ function fC(E, D) {
2383
2384
  let C = null;
2384
2385
  return function(...B) {
2385
2386
  C || (C = setTimeout(() => {
@@ -2392,16 +2393,16 @@ class z {
2392
2393
  canvas;
2393
2394
  constructor(D) {
2394
2395
  const C = () => {
2395
- const u = this.canvas.parentElement?.clientWidth || window.innerWidth, l = this.canvas.parentElement?.clientHeight || window.innerHeight;
2396
- let s = Math.min(u, window.screen.availWidth), a = Math.min(l, window.screen.availHeight);
2397
- s = Math.max(A, s), a = Math.max(t, a), this.canvas.style.width = s + 1 + "px", this.canvas.style.height = a + "px";
2396
+ const u = this.canvas.parentElement?.clientWidth || window.innerWidth, c = this.canvas.parentElement?.clientHeight || window.innerHeight;
2397
+ let s = Math.min(u, window.screen.availWidth), a = Math.min(c, window.screen.availHeight);
2398
+ s = Math.max(A, s), a = Math.max(e, a), this.canvas.style.width = s + 1 + "px", this.canvas.style.height = a + "px";
2398
2399
  const h = window.devicePixelRatio || 1;
2399
2400
  this.canvas.width = s * h, this.canvas.height = a * h;
2400
- }, B = SC(C, 50), {
2401
+ }, B = fC(C, 50), {
2401
2402
  canvas: F,
2402
2403
  minWidth: A = 300,
2403
- minHeight: t = 300,
2404
- updateCanvasSize: e = B,
2404
+ minHeight: e = 300,
2405
+ updateCanvasSize: t = B,
2405
2406
  ...n
2406
2407
  } = D;
2407
2408
  let r = typeof F == "string" ? document.querySelectorAll(F)[0] : F, o = r.getContext("webgl2", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 });
@@ -2410,24 +2411,24 @@ class z {
2410
2411
  this[u] = n[u];
2411
2412
  if (this.canvas instanceof HTMLCanvasElement) {
2412
2413
  const u = this.canvas.parentElement || document.body;
2413
- LC(u, e);
2414
+ xC(u, t);
2414
2415
  } else
2415
2416
  console.error("createMxDraw3d canvas \u53C2\u6570\u4E0D\u6B63\u786E \u65E0\u6CD5\u83B7\u53D6\u5230canvas\u5143\u7D20");
2416
- window.onresize = C, C(), kC("mxdraw3d_min", "mxdraw3d", this).then(() => {
2417
- z.onloadWasmMxDraw3dModel && z.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = e, this.open3DFile = (u) => {
2418
- const l = new FileReader();
2419
- l.onload = () => {
2420
- if (!!l.result && l.result instanceof ArrayBuffer) {
2421
- var s = new Uint8Array(l.result);
2417
+ window.onresize = C, C(), gC("mxdraw3d_min", "mxdraw3d", this).then(() => {
2418
+ z.onloadWasmMxDraw3dModel && z.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = t, this.open3DFile = (u) => {
2419
+ const c = new FileReader();
2420
+ c.onload = () => {
2421
+ if (!!c.result && c.result instanceof ArrayBuffer) {
2422
+ var s = new Uint8Array(c.result);
2422
2423
  const a = this._malloc(s.length);
2423
2424
  this.HEAPU8.set(s, a), this.openFromMemory(u.name, a, s.length, !0), this.displayGround(!0), this.canvas.focus();
2424
2425
  }
2425
- }, l.readAsArrayBuffer(u);
2426
+ }, c.readAsArrayBuffer(u);
2426
2427
  };
2427
2428
  });
2428
2429
  }
2429
2430
  }
2430
- function RC(E, D) {
2431
+ function MC(E, D) {
2431
2432
  return new Promise(async (C, B) => {
2432
2433
  try {
2433
2434
  E.locateFile || (E.locateFile = nC);
@@ -2440,135 +2441,135 @@ function RC(E, D) {
2440
2441
  }
2441
2442
  });
2442
2443
  }
2443
- const OC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2444
+ const kC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2444
2445
  __proto__: null,
2445
- b64Encode: uD,
2446
- b64Decode: lD,
2447
- saveAsFileDialog: cD,
2448
- downloadFile: mD,
2449
- downloadFileFromUrl: pD,
2450
- MxTools: H,
2451
- McGePoint3d: p,
2446
+ b64Encode: lD,
2447
+ b64Decode: cD,
2448
+ saveAsFileDialog: mD,
2449
+ downloadFile: pD,
2450
+ downloadFileFromUrl: dD,
2451
+ MxTools: N,
2452
+ McGePoint3d: l,
2452
2453
  McGeVector3d: g,
2453
2454
  McGeMatrix3d: W,
2454
- McGeLongArray: EC,
2455
- McGeStringArray: dD,
2456
- McGePoint3dArray: FC,
2457
- getFilterImp: N,
2458
- McDrawResbuf: K,
2455
+ McGeLongArray: BC,
2456
+ McGeStringArray: hD,
2457
+ McGePoint3dArray: EC,
2458
+ getFilterImp: K,
2459
+ McDrawResbuf: H,
2459
2460
  McDrawUtilityClass: LD,
2460
- McDrawUtility: eD,
2461
- McDrawSelSet: SD,
2461
+ McDrawUtility: iD,
2462
+ McDrawSelSet: eC,
2462
2463
  McRxObject: O,
2463
- McObjectIdType: b,
2464
- McObjectId: M,
2464
+ McObjectIdType: f,
2465
+ McObjectId: T,
2465
2466
  McDbObject: v,
2466
2467
  get McDb() {
2467
- return BD;
2468
+ return CD;
2468
2469
  },
2469
2470
  McCmColor: j,
2470
- McDbLayerTableRecord: eC,
2471
- McDbLayerTable: hD,
2472
- McDbLinetypeTable: wD,
2471
+ McDbLayerTableRecord: tC,
2472
+ McDbLayerTable: wD,
2473
+ McDbLinetypeTable: yD,
2473
2474
  McDbTextStyleTable: gD,
2474
2475
  McDbDatabase: ED,
2475
- McDbBlockTableRecordIterator: yD,
2476
- McDbBlockTableRecord: Q,
2476
+ McDbBlockTableRecordIterator: bD,
2477
+ McDbBlockTableRecord: Y,
2477
2478
  McDbBlockTableIterator: xD,
2478
- McDbBlockTable: bD,
2479
+ McDbBlockTable: fD,
2479
2480
  McDbEntity: V,
2480
- McDbCurve: _,
2481
+ McDbCurve: q,
2481
2482
  McDbLine: Z,
2482
- McDbText: Y,
2483
+ McDbText: BD,
2483
2484
  McDbMText: FD,
2484
2485
  McDbCircle: AD,
2485
- McDbPolyline: fD,
2486
- McDbBlockReference: MD,
2486
+ McDbPolyline: MD,
2487
+ McDbBlockReference: TD,
2487
2488
  McDbDimension: tD,
2488
- McDbAlignedDimension: TD,
2489
- McDbRotatedDimension: kD,
2490
- McDbArc: PD,
2489
+ McDbAlignedDimension: kD,
2490
+ McDbRotatedDimension: PD,
2491
+ McDbArc: eD,
2491
2492
  McObject: U,
2492
2493
  McAppType: RD,
2493
- MxCppType: vD,
2494
+ MxCppType: SD,
2494
2495
  get MxCpp() {
2495
2496
  return i;
2496
2497
  },
2497
- loadMxCADassembly: jD,
2498
+ loadMxCADassembly: OD,
2498
2499
  createMxCad: lC,
2499
2500
  drawText: cC,
2500
- drawCircle: GD,
2501
- drawLine: ID,
2502
- drawMText: xC,
2503
- drawPolyLine: WD,
2504
- drawPolygon: UD,
2505
- drawArc: zD,
2506
- drawEllipticalArc: VD,
2507
- mxErase: ND,
2501
+ drawCircle: jD,
2502
+ drawLine: GD,
2503
+ drawMText: pC,
2504
+ drawPolyLine: ID,
2505
+ drawPolygon: WD,
2506
+ drawArc: UD,
2507
+ drawEllipticalArc: zD,
2508
+ mxErase: VD,
2508
2509
  MxDraw3d: z,
2509
- loadMxCADassembly3d: RC
2510
+ loadMxCADassembly3d: MC
2510
2511
  }, Symbol.toStringTag, { value: "Module" }));
2511
2512
  export {
2512
2513
  RD as McAppType,
2513
2514
  j as McCmColor,
2514
- BD as McDb,
2515
- TD as McDbAlignedDimension,
2516
- PD as McDbArc,
2517
- MD as McDbBlockReference,
2518
- bD as McDbBlockTable,
2515
+ CD as McDb,
2516
+ kD as McDbAlignedDimension,
2517
+ eD as McDbArc,
2518
+ TD as McDbBlockReference,
2519
+ fD as McDbBlockTable,
2519
2520
  xD as McDbBlockTableIterator,
2520
- Q as McDbBlockTableRecord,
2521
- yD as McDbBlockTableRecordIterator,
2521
+ Y as McDbBlockTableRecord,
2522
+ bD as McDbBlockTableRecordIterator,
2522
2523
  AD as McDbCircle,
2523
- _ as McDbCurve,
2524
+ q as McDbCurve,
2524
2525
  ED as McDbDatabase,
2525
2526
  tD as McDbDimension,
2526
2527
  V as McDbEntity,
2527
- hD as McDbLayerTable,
2528
- eC as McDbLayerTableRecord,
2528
+ wD as McDbLayerTable,
2529
+ tC as McDbLayerTableRecord,
2529
2530
  Z as McDbLine,
2530
- wD as McDbLinetypeTable,
2531
+ yD as McDbLinetypeTable,
2531
2532
  FD as McDbMText,
2532
2533
  v as McDbObject,
2533
- fD as McDbPolyline,
2534
- kD as McDbRotatedDimension,
2535
- Y as McDbText,
2534
+ MD as McDbPolyline,
2535
+ PD as McDbRotatedDimension,
2536
+ BD as McDbText,
2536
2537
  gD as McDbTextStyleTable,
2537
- K as McDrawResbuf,
2538
- SD as McDrawSelSet,
2539
- eD as McDrawUtility,
2538
+ H as McDrawResbuf,
2539
+ eC as McDrawSelSet,
2540
+ iD as McDrawUtility,
2540
2541
  LD as McDrawUtilityClass,
2541
- EC as McGeLongArray,
2542
+ BC as McGeLongArray,
2542
2543
  W as McGeMatrix3d,
2543
- p as McGePoint3d,
2544
- FC as McGePoint3dArray,
2545
- dD as McGeStringArray,
2544
+ l as McGePoint3d,
2545
+ EC as McGePoint3dArray,
2546
+ hD as McGeStringArray,
2546
2547
  g as McGeVector3d,
2547
2548
  U as McObject,
2548
- M as McObjectId,
2549
- b as McObjectIdType,
2549
+ T as McObjectId,
2550
+ f as McObjectIdType,
2550
2551
  O as McRxObject,
2551
2552
  i as MxCpp,
2552
- vD as MxCppType,
2553
+ SD as MxCppType,
2553
2554
  z as MxDraw3d,
2554
- H as MxTools,
2555
- lD as b64Decode,
2556
- uD as b64Encode,
2555
+ N as MxTools,
2556
+ cD as b64Decode,
2557
+ lD as b64Encode,
2557
2558
  lC as createMxCad,
2558
- OC as default,
2559
- mD as downloadFile,
2560
- pD as downloadFileFromUrl,
2561
- zD as drawArc,
2562
- GD as drawCircle,
2563
- VD as drawEllipticalArc,
2564
- ID as drawLine,
2565
- xC as drawMText,
2566
- WD as drawPolyLine,
2567
- UD as drawPolygon,
2559
+ kC as default,
2560
+ pD as downloadFile,
2561
+ dD as downloadFileFromUrl,
2562
+ UD as drawArc,
2563
+ jD as drawCircle,
2564
+ zD as drawEllipticalArc,
2565
+ GD as drawLine,
2566
+ pC as drawMText,
2567
+ ID as drawPolyLine,
2568
+ WD as drawPolygon,
2568
2569
  cC as drawText,
2569
- N as getFilterImp,
2570
- jD as loadMxCADassembly,
2571
- RC as loadMxCADassembly3d,
2572
- ND as mxErase,
2573
- cD as saveAsFileDialog
2570
+ K as getFilterImp,
2571
+ OD as loadMxCADassembly,
2572
+ MC as loadMxCADassembly3d,
2573
+ VD as mxErase,
2574
+ mD as saveAsFileDialog
2574
2575
  };