mxcad 1.0.78 → 1.0.80

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/mxcad.es.js CHANGED
@@ -1,11 +1,11 @@
1
- import { MxFun as h, MrxDbgUiPrPoint as O, MxCursorType as bD, MrxDbgUtils as fD, DynamicInputType as xD, DetailedResult as iD, MrxDbgUiPrDist as BC, store as MD, loadCoreCode as EC, MxPaintBrush as v, MrxDbgUiPrBaseReturn as T, MxDbCircleShape as PD, MxDbLine as Q, MxDbPolyline as FC, MxDbCircleArc as Y, Mx3PointArc as AC, MxDbEllipseShape as eC, McEdGetPointWorldDrawObject as tC, MxDbEllipse as iC } from "mxdraw";
2
- function TD(E) {
1
+ import { MxFun as h, MrxDbgUiPrPoint as S, MxCursorType as xD, MrxDbgUtils as fD, DynamicInputType as MD, DetailedResult as rD, MrxDbgUiPrDist as EC, MrxDbgUiPrAngle as FC, MrxDbgUiPrInt as AC, MrxDbgUiPrKeyWord as tC, MrxDbgUiPrString as eC, store as PD, loadCoreCode as iC, MxPaintBrush as v, MrxDbgUiPrBaseReturn as T, MxDbCircleShape as TD, MxDbLine as X, MxDbPolyline as rC, MxDbCircleArc as Q, Mx3PointArc as sC, MxDbEllipseShape as nC, McEdGetPointWorldDrawObject as oC, MxDbEllipse as aC } from "mxdraw";
2
+ function kD(E) {
3
3
  return btoa(unescape(encodeURIComponent(E)));
4
4
  }
5
- function kD(E) {
5
+ function RD(E) {
6
6
  return decodeURIComponent(escape(atob(E)));
7
7
  }
8
- async function RD({
8
+ async function SD({
9
9
  blob: E,
10
10
  filename: D = "",
11
11
  types: C = [
@@ -23,12 +23,11 @@ async function RD({
23
23
  try {
24
24
  if (!window.showSaveFilePicker)
25
25
  return;
26
- const A = await (await window.showSaveFilePicker({
26
+ const F = await window.showSaveFilePicker({
27
27
  suggestedName: D,
28
28
  types: C
29
- })).createWritable();
30
- await A.write(E), await A.close();
31
- return;
29
+ }), A = await F.createWritable();
30
+ return await A.write(E), await A.close(), F;
32
31
  } catch (F) {
33
32
  if (F?.name === "AbortError")
34
33
  return;
@@ -50,20 +49,20 @@ function OD(E, D) {
50
49
  const C = document.createElement("a");
51
50
  C.href = window.URL.createObjectURL(E), C.download = D, C.click();
52
51
  }
53
- function SD(E, D) {
52
+ function LD(E, D) {
54
53
  fetch(E).then((C) => C.blob()).then((C) => {
55
54
  const B = document.createElement("a");
56
55
  B.href = window.URL.createObjectURL(C), B.download = D, B.click();
57
56
  });
58
57
  }
59
- const J = {
60
- b64Encode: TD,
61
- b64Decode: kD,
62
- saveAsFileDialog: RD,
58
+ const Y = {
59
+ b64Encode: kD,
60
+ b64Decode: RD,
61
+ saveAsFileDialog: SD,
63
62
  downloadFile: OD,
64
- downloadFileFromUrl: SD
63
+ downloadFileFromUrl: LD
65
64
  };
66
- class rC {
65
+ class uC {
67
66
  z = "D2BBB6A18140C6DF814181428143CDF2D5C9C8FDC9CFCFC2D8A2B2BBD3EB8144D8A4B3F38145D7A8C7D2D8A7CAC08146C7F0B1FBD2B5B4D4B6ABCBBFD8A9814781488149B6AA814AC1BDD1CF814BC9A5D8AD814CB8F6D1BEE3DCD6D0814D814EB7E1814FB4AE8150C1D98151D8BC8152CDE8B5A4CEAAD6F78153C0F6BED9D8AF815481558156C4CB8157BEC38158D8B1C3B4D2E58159D6AECEDAD5A7BAF5B7A6C0D6815AC6B9C5D2C7C7815BB9D4815CB3CBD2D2815D815ED8BFBEC5C6F2D2B2CFB0CFE7815F816081618162CAE981638164D8C081658166816781688169816AC2F2C2D2816BC8E9816C816D816E816F817081718172817381748175C7AC8176817781788179817A817B817CC1CB817DD3E8D5F9817ECAC2B6FED8A1D3DABFF78180D4C6BBA5D8C1CEE5BEAE81818182D8A88183D1C7D0A9818481858186D8BDD9EFCDF6BFBA8187BDBBBAA5D2E0B2FABAE0C4B68188CFEDBEA9CDA4C1C18189818A818BC7D7D9F1818CD9F4818D818E818F8190C8CBD8E9819181928193D2DACAB2C8CAD8ECD8EAD8C6BDF6C6CDB3F08194D8EBBDF1BDE98195C8D4B4D381968197C2D88198B2D6D7D0CACBCBFBD5CCB8B6CFC98199819A819BD9DAD8F0C7AA819CD8EE819DB4FAC1EED2D4819E819FD8ED81A0D2C7D8EFC3C781A181A281A3D1F681A4D6D9D8F281A5D8F5BCFEBCDB81A681A781A8C8CE81A9B7DD81AAB7C281ABC6F381AC81AD81AE81AF81B081B181B2D8F8D2C181B381B4CEE9BCBFB7FCB7A5D0DD81B581B681B781B881B9D6DAD3C5BBEFBBE1D8F181BA81BBC9A1CEB0B4AB81BCD8F381BDC9CBD8F6C2D7D8F781BE81BFCEB1D8F981C081C181C2B2AEB9C081C3D9A381C4B0E981C5C1E681C6C9EC81C7CBC581C8CBC6D9A481C981CA81CB81CC81CDB5E881CE81CFB5AB81D081D181D281D381D481D5CEBBB5CDD7A1D7F4D3D381D6CCE581D7BACE81D8D9A2D9DCD3E0D8FDB7F0D7F7D8FED8FAD9A1C4E381D981DAD3B6D8F4D9DD81DBD8FB81DCC5E581DD81DEC0D081DF81E0D1F0B0DB81E181E2BCD1D9A681E3D9A581E481E581E681E7D9ACD9AE81E8D9ABCAB981E981EA81EBD9A9D6B681EC81ED81EEB3DED9A881EFC0FD81F0CACC81F1D9AA81F2D9A781F381F4D9B081F581F6B6B181F781F881F9B9A981FAD2C081FB81FCCFC081FD81FEC2C28240BDC4D5ECB2E0C7C8BFEBD9AD8241D9AF8242CEEABAEE82438244824582468247C7D682488249824A824B824C824D824E824F8250B1E3825182528253B4D9B6EDD9B48254825582568257BFA182588259825AD9DEC7CEC0FED9B8825B825C825D825E825FCBD7B7FD8260D9B58261D9B7B1A3D3E1D9B98262D0C58263D9B682648265D9B18266D9B2C1A9D9B382678268BCF3D0DEB8A98269BEE3826AD9BD826B826C826D826ED9BA826FB0B3827082718272D9C28273827482758276827782788279827A827B827C827D827E8280D9C4B1B68281D9BF82828283B5B98284BEF3828582868287CCC8BAF2D2D08288D9C38289828ABDE8828BB3AB828C828D828ED9C5BEEB828FD9C6D9BBC4DF8290D9BED9C1D9C0829182928293829482958296829782988299829A829BD5AE829CD6B5829DC7E3829E829F82A082A1D9C882A282A382A4BCD9D9CA82A582A682A7D9BC82A8D9CBC6AB82A982AA82AB82AC82ADD9C982AE82AF82B082B1D7F682B2CDA382B382B482B582B682B782B882B982BABDA182BB82BC82BD82BE82BF82C0D9CC82C182C282C382C482C582C682C782C882C9C5BCCDB582CA82CB82CCD9CD82CD82CED9C7B3A5BFFE82CF82D082D182D2B8B582D382D4C0FC82D582D682D782D8B0F882D982DA82DB82DC82DD82DE82DF82E082E182E282E382E482E582E682E782E882E982EA82EB82EC82EDB4F682EED9CE82EFD9CFB4A2D9D082F082F1B4DF82F282F382F482F582F6B0C182F782F882F982FA82FB82FC82FDD9D1C9B582FE8340834183428343834483458346834783488349834A834B834C834D834E834F83508351CFF1835283538354835583568357D9D283588359835AC1C5835B835C835D835E835F836083618362836383648365D9D6C9AE8366836783688369D9D5D9D4D9D7836A836B836C836DCBDB836EBDA9836F8370837183728373C6A7837483758376837783788379837A837B837C837DD9D3D9D8837E83808381D9D9838283838384838583868387C8E583888389838A838B838C838D838E838F839083918392839383948395C0DC8396839783988399839A839B839C839D839E839F83A083A183A283A383A483A583A683A783A883A983AA83AB83AC83AD83AE83AF83B083B183B2B6F9D8A3D4CA83B3D4AAD0D6B3E4D5D783B4CFC8B9E283B5BFCB83B6C3E283B783B883B9B6D283BA83BBCDC3D9EED9F083BC83BD83BEB5B383BFB6B583C083C183C283C383C4BEA483C583C6C8EB83C783C8C8AB83C983CAB0CBB9ABC1F9D9E283CBC0BCB9B283CCB9D8D0CBB1F8C6E4BEDFB5E4D7C883CDD1F8BCE6CADE83CE83CFBCBDD9E6D8E783D083D1C4DA83D283D3B8D4C8BD83D483D5B2E1D4D983D683D783D883D9C3B083DA83DBC3E1DAA2C8DF83DCD0B483DDBEFCC5A983DE83DF83E0B9DA83E1DAA383E2D4A9DAA483E383E483E583E683E7D9FBB6AC83E883E9B7EBB1F9D9FCB3E5BEF683EABFF6D2B1C0E483EB83EC83EDB6B3D9FED9FD83EE83EFBEBB83F083F183F2C6E083F3D7BCDAA183F4C1B983F5B5F2C1E883F683F7BCF583F8B4D583F983FA83FB83FC83FD83FE844084418442C1DD8443C4FD84448445BCB8B7B284468447B7EF84488449844A844B844C844DD9EC844EC6BE844FBFADBBCB84508451B5CA8452DBC9D0D78453CDB9B0BCB3F6BBF7DBCABAAF8454D4E4B5B6B5F3D8D6C8D084558456B7D6C7D0D8D78457BFAF84588459DBBBD8D8845A845BD0CCBBAE845C845D845EEBBEC1D0C1F5D4F2B8D5B4B4845FB3F584608461C9BE846284638464C5D0846584668467C5D9C0FB8468B1F08469D8D9B9CE846AB5BD846B846CD8DA846D846ED6C6CBA2C8AFC9B2B4CCBFCC846FB9F48470D8DBD8DCB6E7BCC1CCEA847184728473847484758476CFF78477D8DDC7B084788479B9D0BDA3847A847BCCDE847CC6CA847D847E848084818482D8E08483D8DE84848485D8DF848684878488B0FE8489BEE7848ACAA3BCF4848B848C848D848EB8B1848F8490B8EE849184928493849484958496849784988499849AD8E2849BBDCB849CD8E4D8E3849D849E849F84A084A1C5FC84A284A384A484A584A684A784A8D8E584A984AAD8E684AB84AC84AD84AE84AF84B084B1C1A684B2C8B0B0ECB9A6BCD3CEF1DBBDC1D384B384B484B584B6B6AFD6FAC5ACBDD9DBBEDBBF84B784B884B9C0F8BEA2C0CD84BA84BB84BC84BD84BE84BF84C084C184C284C3DBC0CAC684C484C584C6B2AA84C784C884C9D3C284CAC3E384CBD1AB84CC84CD84CE84CFDBC284D0C0D584D184D284D3DBC384D4BFB184D584D684D784D884D984DAC4BC84DB84DC84DD84DEC7DA84DF84E084E184E284E384E484E584E684E784E884E9DBC484EA84EB84EC84ED84EE84EF84F084F1D9E8C9D784F284F384F4B9B4CEF0D4C884F584F684F784F8B0FCB4D284F9D0D984FA84FB84FC84FDD9E984FEDECBD9EB8540854185428543D8B0BBAFB1B18544B3D7D8CE85458546D4D185478548BDB3BFEF8549CFBB854A854BD8D0854C854D854EB7CB854F85508551D8D185528553855485558556855785588559855A855BC6A5C7F8D2BD855C855DD8D2C4E4855ECAAE855FC7A78560D8A68561C9FDCEE7BBDCB0EB856285638564BBAAD0AD8565B1B0D7E4D7BF8566B5A5C2F4C4CF85678568B2A98569B2B7856AB1E5DFB2D5BCBFA8C2ACD8D5C2B1856BD8D4CED4856CDAE0856DCEC0856E856FD8B4C3AED3A1CEA38570BCB4C8B4C2D18571BEEDD0B68572DAE18573857485758576C7E485778578B3A78579B6F2CCFCC0FA857A857BC0F7857CD1B9D1E1D8C7857D857E85808581858285838584B2DE85858586C0E58587BAF185888589D8C8858AD4AD858B858CCFE1D8C9858DD8CACFC3858EB3F8BEC7858F859085918592D8CB8593859485958596859785988599DBCC859A859B859C859DC8A5859E859F85A0CFD885A1C8FEB2CE85A285A385A485A585A6D3D6B2E6BCB0D3D1CBABB7B485A785A885A9B7A285AA85ABCAE585ACC8A1CADCB1E4D0F085ADC5D185AE85AF85B0DBC5B5FE85B185B2BFDAB9C5BEE4C1ED85B3DFB6DFB5D6BBBDD0D5D9B0C8B6A3BFC9CCA8DFB3CAB7D3D285B4D8CFD2B6BAC5CBBECCBE85B5DFB7B5F0DFB485B685B785B8D3F585B9B3D4B8F785BADFBA85BBBACFBCAAB5F585BCCDACC3FBBAF3C0F4CDC2CFF2DFB8CFC585BDC2C0DFB9C2F085BE85BF85C0BEFD85C1C1DFCDCCD2F7B7CDDFC185C2DFC485C385C4B7F1B0C9B6D6B7D485C5BAACCCFDBFD4CBB1C6F485C6D6A8DFC585C7CEE2B3B385C885C9CEFCB4B585CACEC7BAF085CBCEE185CCD1BD85CD85CEDFC085CF85D0B4F485D1B3CA85D2B8E6DFBB85D385D485D585D6C4C585D7DFBCDFBDDFBEC5BBDFBFDFC2D4B1DFC385D8C7BACED885D985DA85DB85DC85DDC4D885DEDFCA85DFDFCF85E0D6DC85E185E285E385E485E585E685E785E8DFC9DFDACEB685E9BAC7DFCEDFC8C5DE85EA85EBC9EBBAF4C3FC85EC85EDBED785EEDFC685EFDFCD85F0C5D885F185F285F385F4D5A6BACD85F5BECCD3BDB8C085F6D6E485F7DFC7B9BEBFA785F885F9C1FCDFCBDFCC85FADFD085FB85FC85FD85FE8640DFDBDFE58641DFD7DFD6D7C9DFE3DFE4E5EBD2A7DFD28642BFA98643D4DB8644BFC8DFD4864586468647CFCC86488649DFDD864AD1CA864BDFDEB0A7C6B7DFD3864CBAE5864DB6DFCDDBB9FED4D5864E864FDFDFCFECB0A5DFE7DFD1D1C6DFD5DFD8DFD9DFDC8650BBA98651DFE0DFE18652DFE2DFE6DFE8D3B486538654865586568657B8E7C5B6DFEAC9DAC1A8C4C486588659BFDECFF8865A865B865CD5DCDFEE865D865E865F866086618662B2B88663BADFDFEC8664DBC18665D1E48666866786688669CBF4B4BD866AB0A6866B866C866D866E866FDFF1CCC6DFF286708671DFED867286738674867586768677DFE986788679867A867BDFEB867CDFEFDFF0BBBD867D867EDFF386808681DFF48682BBA38683CADBCEA8E0A7B3AA8684E0A6868586868687E0A186888689868A868BDFFE868CCDD9DFFC868DDFFA868EBFD0D7C4868FC9CC86908691DFF8B0A186928693869486958696DFFD869786988699869ADFFBE0A2869B869C869D869E869FE0A886A086A186A286A3B7C886A486A5C6A1C9B6C0B2DFF586A686A7C5BE86A8D8C4DFF9C4F686A986AA86AB86AC86AD86AEE0A3E0A4E0A5D0A586AF86B0E0B4CCE486B1E0B186B2BFA6E0AFCEB9E0ABC9C686B386B4C0AEE0AEBAEDBAB0E0A986B586B686B7DFF686B8E0B386B986BAE0B886BB86BC86BDB4ADE0B986BE86BFCFB2BAC886C0E0B086C186C286C386C486C586C686C7D0FA86C886C986CA86CB86CC86CD86CE86CF86D0E0AC86D1D4FB86D2DFF786D3C5E786D4E0AD86D5D3F786D6E0B6E0B786D786D886D986DA86DBE0C4D0E186DC86DD86DEE0BC86DF86E0E0C9E0CA86E186E286E3E0BEE0AAC9A4E0C186E4E0B286E586E686E786E886E9CAC8E0C386EAE0B586EBCECB86ECCBC3E0CDE0C6E0C286EDE0CB86EEE0BAE0BFE0C086EF86F0E0C586F186F2E0C7E0C886F3E0CC86F4E0BB86F586F686F786F886F9CBD4E0D586FAE0D6E0D286FB86FC86FD86FE87408741E0D0BCCE87428743E0D18744B8C2D8C587458746874787488749874A874B874CD0EA874D874EC2EF874F8750E0CFE0BD875187528753E0D4E0D387548755E0D78756875787588759E0DCE0D8875A875B875CD6F6B3B0875DD7EC875ECBBB875F8760E0DA8761CEFB876287638764BAD987658766876787688769876A876B876C876D876E876F8770E0E1E0DDD2AD87718772877387748775E0E287768777E0DBE0D9E0DF87788779E0E0877A877B877C877D877EE0DE8780E0E4878187828783C6F7D8ACD4EBE0E6CAC98784878587868787E0E587888789878A878BB8C1878C878D878E878FE0E7E0E887908791879287938794879587968797E0E9E0E387988799879A879B879C879D879EBABFCCE7879F87A087A1E0EA87A287A387A487A587A687A787A887A987AA87AB87AC87AD87AE87AF87B0CFF987B187B287B387B487B587B687B787B887B987BA87BBE0EB87BC87BD87BE87BF87C087C187C2C8C287C387C487C587C6BDC087C787C887C987CA87CB87CC87CD87CE87CF87D087D187D287D3C4D287D487D587D687D787D887D987DA87DB87DCE0EC87DD87DEE0ED87DF87E0C7F4CBC487E1E0EEBBD8D8B6D2F2E0EFCDC587E2B6DA87E387E487E587E687E787E8E0F187E9D4B087EA87EBC0A7B4D187EC87EDCEA7E0F087EE87EF87F0E0F2B9CC87F187F2B9FACDBCE0F387F387F487F5C6D4E0F487F6D4B287F7C8A6E0F6E0F587F887F987FA87FB87FC87FD87FE8840884188428843884488458846884788488849E0F7884A884BCDC1884C884D884ECAA5884F885088518852D4DADBD7DBD98853DBD8B9E7DBDCDBDDB5D888548855DBDA8856885788588859885ADBDBB3A1DBDF885B885CBBF8885DD6B7885EDBE0885F886088618862BEF988638864B7BB8865DBD0CCAEBFB2BBB5D7F8BFD38866886788688869886ABFE9886B886CBCE1CCB3DBDEB0D3CEEBB7D8D7B9C6C2886D886EC0A4886FCCB98870DBE7DBE1C6BADBE38871DBE88872C5F7887388748875DBEA88768877DBE9BFC088788879887ADBE6DBE5887B887C887D887E8880B4B9C0ACC2A2DBE2DBE48881888288838884D0CDDBED88858886888788888889C0DDDBF2888A888B888C888D888E888F8890B6E28891889288938894DBF3DBD2B9B8D4ABDBEC8895BFD1DBF08896DBD18897B5E68898DBEBBFE58899889A889BDBEE889CDBF1889D889E889FDBF988A088A188A288A388A488A588A688A788A8B9A1B0A388A988AA88AB88AC88AD88AE88AFC2F188B088B1B3C7DBEF88B288B3DBF888B4C6D2DBF488B588B6DBF5DBF7DBF688B788B8DBFE88B9D3F2B2BA88BA88BB88BCDBFD88BD88BE88BF88C088C188C288C388C4DCA488C5DBFB88C688C788C888C9DBFA88CA88CB88CCDBFCC5E0BBF988CD88CEDCA388CF88D0DCA588D1CCC388D288D388D4B6D1DDC088D588D688D7DCA188D8DCA288D988DA88DBC7B588DC88DD88DEB6E988DF88E088E1DCA788E288E388E488E5DCA688E6DCA9B1A488E788E8B5CC88E988EA88EB88EC88EDBFB088EE88EF88F088F188F2D1DF88F388F488F588F6B6C288F788F888F988FA88FB88FC88FD88FE894089418942894389448945DCA88946894789488949894A894B894CCBFAEBF3894D894E894FCBDC89508951CBFE895289538954CCC189558956895789588959C8FB895A895B895C895D895E895FDCAA89608961896289638964CCEEDCAB89658966896789688969896A896B896C896D896E896F897089718972897389748975DBD38976DCAFDCAC8977BEB38978CAFB8979897A897BDCAD897C897D897E89808981898289838984C9CAC4B989858986898789888989C7BDDCAE898A898B898CD4F6D0E6898D898E898F89908991899289938994C4ABB6D589958996899789988999899A899B899C899D899E899F89A089A189A289A389A489A589A6DBD489A789A889A989AAB1DA89AB89AC89ADDBD589AE89AF89B089B189B289B389B489B589B689B789B8DBD689B989BA89BBBABE89BC89BD89BE89BF89C089C189C289C389C489C589C689C789C889C9C8C089CA89CB89CC89CD89CE89CFCABFC8C989D0D7B389D1C9F989D289D3BFC789D489D5BAF889D689D7D2BC89D889D989DA89DB89DC89DD89DE89DFE2BA89E0B4A689E189E2B1B889E389E489E589E689E7B8B489E8CFC489E989EA89EB89ECD9E7CFA6CDE289ED89EED9EDB6E089EFD2B989F089F1B9BB89F289F389F489F5E2B9E2B789F6B4F389F7CCECCCABB7F289F8D8B2D1EBBABB89F9CAA789FA89FBCDB789FC89FDD2C4BFE4BCD0B6E189FEDEC58A408A418A428A43DEC6DBBC8A44D1D98A458A46C6E6C4CEB7EE8A47B7DC8A488A49BFFCD7E08A4AC6F58A4B8A4CB1BCDEC8BDB1CCD7DECA8A4DDEC98A4E8A4F8A508A518A52B5EC8A53C9DD8A548A55B0C28A568A578A588A598A5A8A5B8A5C8A5D8A5E8A5F8A608A618A62C5AEC5AB8A63C4CC8A64BCE9CBFD8A658A668A67BAC38A688A698A6AE5F9C8E7E5FACDFD8A6BD7B1B8BEC2E88A6CC8D18A6D8A6EE5FB8A6F8A708A718A72B6CABCCB8A738A74D1FDE6A18A75C3EE8A768A778A788A79E6A48A7A8A7B8A7C8A7DE5FEE6A5CDD78A7E8A80B7C1E5FCE5FDE6A38A818A82C4DDE6A88A838A84E6A78A858A868A878A888A898A8AC3C38A8BC6DE8A8C8A8DE6AA8A8E8A8F8A908A918A928A938A94C4B78A958A968A97E6A2CABC8A988A998A9A8A9BBDE3B9C3E6A6D0D5CEAF8A9C8A9DE6A9E6B08A9ED2A68A9FBDAAE6AD8AA08AA18AA28AA38AA4E6AF8AA5C0D18AA68AA7D2CC8AA88AA98AAABCA78AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB38AB48AB58AB6E6B18AB7D2F68AB88AB98ABAD7CB8ABBCDFE8ABCCDDEC2A6E6ABE6ACBDBFE6AEE6B38ABD8ABEE6B28ABF8AC08AC18AC2E6B68AC3E6B88AC48AC58AC68AC7C4EF8AC88AC98ACAC4C88ACB8ACCBEEAC9EF8ACD8ACEE6B78ACFB6F08AD08AD18AD2C3E48AD38AD48AD58AD68AD78AD88AD9D3E9E6B48ADAE6B58ADBC8A28ADC8ADD8ADE8ADF8AE0E6BD8AE18AE28AE3E6B98AE48AE58AE68AE78AE8C6C58AE98AEACDF1E6BB8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF38AF4E6BC8AF58AF68AF78AF8BBE98AF98AFA8AFB8AFC8AFD8AFE8B40E6BE8B418B428B438B44E6BA8B458B46C0B78B478B488B498B4A8B4B8B4C8B4D8B4E8B4FD3A4E6BFC9F4E6C38B508B51E6C48B528B538B548B55D0F68B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B658B668B67C3BD8B688B698B6A8B6B8B6C8B6D8B6EC3C4E6C28B6F8B708B718B728B738B748B758B768B778B788B798B7A8B7B8B7CE6C18B7D8B7E8B808B818B828B838B84E6C7CFB18B85EBF48B868B87E6CA8B888B898B8A8B8B8B8CE6C58B8D8B8EBCDEC9A98B8F8B908B918B928B938B94BCB58B958B96CFD38B978B988B998B9A8B9BE6C88B9CE6C98B9DE6CE8B9EE6D08B9F8BA08BA1E6D18BA28BA38BA4E6CBB5D58BA5E6CC8BA68BA7E6CF8BA88BA9C4DB8BAAE6C68BAB8BAC8BAD8BAE8BAFE6CD8BB08BB18BB28BB38BB48BB58BB68BB78BB88BB98BBA8BBB8BBC8BBD8BBE8BBF8BC08BC18BC28BC38BC48BC58BC6E6D28BC78BC88BC98BCA8BCB8BCC8BCD8BCE8BCF8BD08BD18BD2E6D4E6D38BD38BD48BD58BD68BD78BD88BD98BDA8BDB8BDC8BDD8BDE8BDF8BE08BE18BE28BE38BE48BE58BE68BE78BE88BE98BEA8BEB8BECE6D58BEDD9F88BEE8BEFE6D68BF08BF18BF28BF38BF48BF58BF68BF7E6D78BF88BF98BFA8BFB8BFC8BFD8BFE8C408C418C428C438C448C458C468C47D7D3E6DD8C48E6DEBFD7D4D08C49D7D6B4E6CBEFE6DAD8C3D7CED0A28C4AC3CF8C4B8C4CE6DFBCBEB9C2E6DBD1A78C4D8C4EBAA2C2CF8C4FD8AB8C508C518C52CAEBE5EE8C53E6DC8C54B7F58C558C568C578C58C8E68C598C5AC4F58C5B8C5CE5B2C4FE8C5DCBFCE5B3D5AC8C5ED3EECAD8B0B28C5FCBCECDEA8C608C61BAEA8C628C638C64E5B58C65E5B48C66D7DAB9D9D6E6B6A8CDF0D2CBB1A6CAB58C67B3E8C9F3BFCDD0FBCAD2E5B6BBC28C688C698C6ACFDCB9AC8C6B8C6C8C6D8C6ED4D78C6F8C70BAA6D1E7CFFCBCD28C71E5B7C8DD8C728C738C74BFEDB1F6CBDE8C758C76BCC58C77BCC4D2FAC3DCBFDC8C788C798C7A8C7BB8BB8C7C8C7D8C7EC3C28C80BAAED4A28C818C828C838C848C858C868C878C888C89C7DEC4AFB2EC8C8AB9D18C8B8C8CE5BBC1C88C8D8C8ED5AF8C8F8C908C918C928C93E5BC8C94E5BE8C958C968C978C988C998C9A8C9BB4E7B6D4CBC2D1B0B5BC8C9C8C9DCAD98C9EB7E28C9F8CA0C9E48CA1BDAB8CA28CA3CEBED7F08CA48CA58CA68CA7D0A18CA8C9D98CA98CAAB6FBE6D8BCE28CABB3BE8CACC9D08CADE6D9B3A28CAE8CAF8CB08CB1DECC8CB2D3C8DECD8CB3D2A28CB48CB58CB68CB7DECE8CB88CB98CBA8CBBBECD8CBC8CBDDECF8CBE8CBF8CC0CAACD2FCB3DFE5EAC4E1BEA1CEB2C4F2BED6C6A8B2E38CC18CC2BED38CC38CC4C7FCCCEBBDECCEDD8CC58CC6CABAC6C1E5ECD0BC8CC78CC88CC9D5B98CCA8CCB8CCCE5ED8CCD8CCE8CCF8CD0CAF48CD1CDC0C2C58CD2E5EF8CD3C2C4E5F08CD48CD58CD68CD78CD88CD98CDAE5F8CDCD8CDBC9BD8CDC8CDD8CDE8CDF8CE08CE18CE2D2D9E1A88CE38CE48CE58CE6D3EC8CE7CBEAC6F18CE88CE98CEA8CEB8CECE1AC8CED8CEE8CEFE1A7E1A98CF08CF1E1AAE1AF8CF28CF3B2ED8CF4E1ABB8DAE1ADE1AEE1B0B5BAE1B18CF58CF68CF78CF88CF9E1B3E1B88CFA8CFB8CFC8CFD8CFED1D28D40E1B6E1B5C1EB8D418D428D43E1B78D44D4C08D45E1B28D46E1BAB0B68D478D488D498D4AE1B48D4BBFF98D4CE1B98D4D8D4EE1BB8D4F8D508D518D528D538D54E1BE8D558D568D578D588D598D5AE1BC8D5B8D5C8D5D8D5E8D5F8D60D6C58D618D628D638D648D658D668D67CFBF8D688D69E1BDE1BFC2CD8D6AB6EB8D6BD3F88D6C8D6DC7CD8D6E8D6FB7E58D708D718D728D738D748D758D768D778D788D79BEFE8D7A8D7B8D7C8D7D8D7E8D80E1C0E1C18D818D82E1C7B3E78D838D848D858D868D878D88C6E98D898D8A8D8B8D8C8D8DB4DE8D8ED1C28D8F8D908D918D92E1C88D938D94E1C68D958D968D978D988D99E1C58D9AE1C3E1C28D9BB1C08D9C8D9D8D9ED5B8E1C48D9F8DA08DA18DA28DA3E1CB8DA48DA58DA68DA78DA88DA98DAA8DABE1CCE1CA8DAC8DAD8DAE8DAF8DB08DB18DB28DB3EFFA8DB48DB5E1D3E1D2C7B68DB68DB78DB88DB98DBA8DBB8DBC8DBD8DBE8DBF8DC0E1C98DC18DC2E1CE8DC3E1D08DC48DC58DC68DC78DC88DC98DCA8DCB8DCC8DCD8DCEE1D48DCFE1D1E1CD8DD08DD1E1CF8DD28DD38DD48DD5E1D58DD68DD78DD88DD98DDA8DDB8DDC8DDD8DDE8DDF8DE08DE18DE2E1D68DE38DE48DE58DE68DE78DE88DE98DEA8DEB8DEC8DED8DEE8DEF8DF08DF18DF28DF38DF48DF58DF68DF78DF8E1D78DF98DFA8DFBE1D88DFC8DFD8DFE8E408E418E428E438E448E458E468E478E488E498E4A8E4B8E4C8E4D8E4E8E4F8E508E518E528E538E548E55E1DA8E568E578E588E598E5A8E5B8E5C8E5D8E5E8E5F8E608E618E62E1DB8E638E648E658E668E678E688E69CEA18E6A8E6B8E6C8E6D8E6E8E6F8E708E718E728E738E748E758E76E7DD8E77B4A8D6DD8E788E79D1B2B3B28E7A8E7BB9A4D7F3C7C9BEDEB9AE8E7CCED78E7D8E7EB2EEDBCF8E80BCBAD2D1CBC8B0CD8E818E82CFEF8E838E848E858E868E87D9E3BDED8E888E89B1D2CAD0B2BC8E8ACBA7B7AB8E8BCAA68E8C8E8D8E8ECFA38E8F8E90E0F8D5CAE0FB8E918E92E0FAC5C1CCFB8E93C1B1E0F9D6E3B2AFD6C4B5DB8E948E958E968E978E988E998E9A8E9BB4F8D6A18E9C8E9D8E9E8E9F8EA0CFAFB0EF8EA18EA2E0FC8EA38EA48EA58EA68EA7E1A1B3A38EA88EA9E0FDE0FEC3B18EAA8EAB8EAC8EADC3DD8EAEE1A2B7F98EAF8EB08EB18EB28EB38EB4BBCF8EB58EB68EB78EB88EB98EBA8EBBE1A3C4BB8EBC8EBD8EBE8EBF8EC0E1A48EC18EC2E1A58EC38EC4E1A6B4B18EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF8ED08ED18ED28ED3B8C9C6BDC4EA8ED4B2A28ED5D0D28ED6E7DBBBC3D3D7D3C48ED7B9E3E2CF8ED88ED98EDAD7AF8EDBC7ECB1D38EDC8EDDB4B2E2D18EDE8EDF8EE0D0F2C2AEE2D08EE1BFE2D3A6B5D7E2D2B5EA8EE2C3EDB8FD8EE3B8AE8EE4C5D3B7CFE2D48EE58EE68EE78EE8E2D3B6C8D7F98EE98EEA8EEB8EEC8EEDCDA58EEE8EEF8EF08EF18EF2E2D88EF3E2D6CAFCBFB5D3B9E2D58EF48EF58EF68EF7E2D78EF88EF98EFA8EFB8EFC8EFD8EFE8F408F418F42C1AEC0C88F438F448F458F468F478F48E2DBE2DAC0AA8F498F4AC1CE8F4B8F4C8F4D8F4EE2DC8F4F8F508F518F528F538F548F558F568F578F588F598F5AE2DD8F5BE2DE8F5C8F5D8F5E8F5F8F608F618F628F638F64DBC88F65D1D3CDA28F668F67BDA88F688F698F6ADEC3D8A5BFAADBCDD2ECC6FAC5AA8F6B8F6C8F6DDEC48F6EB1D7DFAE8F6F8F708F71CABD8F72DFB18F73B9AD8F74D2FD8F75B8A5BAEB8F768F77B3DA8F788F798F7AB5DCD5C58F7B8F7C8F7D8F7EC3D6CFD2BBA18F80E5F3E5F28F818F82E5F48F83CDE48F84C8F58F858F868F878F888F898F8A8F8BB5AFC7BF8F8CE5F68F8D8F8E8F8FECB08F908F918F928F938F948F958F968F978F988F998F9A8F9B8F9C8F9D8F9EE5E68F9FB9E9B5B18FA0C2BCE5E8E5E7E5E98FA18FA28FA38FA4D2CD8FA58FA68FA7E1EAD0CE8FA8CDAE8FA9D1E58FAA8FABB2CAB1EB8FACB1F2C5ED8FAD8FAED5C3D3B08FAFE1DC8FB08FB18FB2E1DD8FB3D2DB8FB4B3B9B1CB8FB58FB68FB7CDF9D5F7E1DE8FB8BEB6B4FD8FB9E1DFBADCE1E0BBB2C2C9E1E18FBA8FBB8FBCD0EC8FBDCDBD8FBE8FBFE1E28FC0B5C3C5C7E1E38FC18FC2E1E48FC38FC48FC58FC6D3F98FC78FC88FC98FCA8FCB8FCCE1E58FCDD1AD8FCE8FCFE1E6CEA28FD08FD18FD28FD38FD48FD5E1E78FD6B5C28FD78FD88FD98FDAE1E8BBD58FDB8FDC8FDD8FDE8FDFD0C4E2E0B1D8D2E48FE08FE1E2E18FE28FE3BCC9C8CC8FE4E2E3ECFEECFDDFAF8FE58FE68FE7E2E2D6BECDFCC3A68FE88FE98FEAE3C38FEB8FECD6D2E2E78FED8FEEE2E88FEF8FF0D3C78FF18FF2E2ECBFEC8FF3E2EDE2E58FF48FF5B3C08FF68FF78FF8C4EE8FF98FFAE2EE8FFB8FFCD0C38FFDBAF6E2E9B7DEBBB3CCACCBCBE2E4E2E6E2EAE2EB8FFE90409041E2F790429043E2F4D4F5E2F390449045C5AD9046D5FAC5C2B2C090479048E2EF9049E2F2C1AFCBBC904A904BB5A1E2F9904C904D904EBCB1E2F1D0D4D4B9E2F5B9D6E2F6904F90509051C7D390529053905490559056E2F0905790589059905A905BD7DCEDA1905C905DE2F8905EEDA5E2FECAD1905F906090619062906390649065C1B59066BBD090679068BFD69069BAE3906A906BCBA1906C906D906EEDA6EDA3906F9070EDA29071907290739074BBD6EDA7D0F490759076EDA4BADEB6F7E3A1B6B2CCF1B9A79077CFA2C7A190789079BFD2907A907BB6F1907CE2FAE2FBE2FDE2FCC4D5E3A2907DD3C1907E90809081E3A7C7C49082908390849085CFA490869087E3A9BAB790889089908A908BE3A8908CBBDA908DE3A3908E908F9090E3A4E3AA9091E3A69092CEF2D3C690939094BBBC90959096D4C39097C4FA90989099EDA8D0FCE3A5909AC3F5909BE3ADB1AF909CE3B2909D909E909FBCC290A090A1E3ACB5BF90A290A390A490A590A690A790A890A9C7E9E3B090AA90AB90ACBEAACDEF90AD90AE90AF90B090B1BBF390B290B390B4CCE890B590B6E3AF90B7E3B190B8CFA7E3AE90B9CEA9BBDD90BA90BB90BC90BD90BEB5EBBEE5B2D2B3CD90BFB1B9E3ABB2D1B5ACB9DFB6E890C090C1CFEBE3B790C2BBCC90C390C4C8C7D0CA90C590C690C790C890C9E3B8B3EE90CA90CB90CC90CDEDA990CED3FAD3E490CF90D090D1EDAAE3B9D2E290D290D390D490D590D6E3B590D790D890D990DAD3DE90DB90DC90DD90DEB8D0E3B390DF90E0E3B6B7DF90E1E3B4C0A290E290E390E4E3BA90E590E690E790E890E990EA90EB90EC90ED90EE90EF90F090F190F290F390F490F590F690F7D4B890F890F990FA90FB90FC90FD90FE9140B4C89141E3BB9142BBC59143C9F791449145C9E5914691479148C4BD9149914A914B914C914D914E914FEDAB9150915191529153C2FD9154915591569157BBDBBFAE91589159915A915B915C915D915ECEBF915F916091619162E3BC9163BFB6916491659166916791689169916A916B916C916D916E916F9170917191729173917491759176B1EF91779178D4F79179917A917B917C917DE3BE917E9180918191829183918491859186EDAD918791889189918A918B918C918D918E918FE3BFBAA9EDAC91909191E3BD91929193919491959196919791989199919A919BE3C0919C919D919E919F91A091A1BAB691A291A391A4B6AE91A591A691A791A891A9D0B891AAB0C3EDAE91AB91AC91AD91AE91AFEDAFC0C191B0E3C191B191B291B391B491B591B691B791B891B991BA91BB91BC91BD91BE91BF91C091C1C5B391C291C391C491C591C691C791C891C991CA91CB91CC91CD91CE91CFE3C291D091D191D291D391D491D591D691D791D8DCB291D991DA91DB91DC91DD91DEEDB091DFB8EA91E0CEECEAA7D0E7CAF9C8D6CFB7B3C9CED2BDE491E191E2E3DEBBF2EAA8D5BD91E3C6DDEAA991E491E591E6EAAA91E7EAACEAAB91E8EAAEEAAD91E991EA91EB91ECBDD891EDEAAF91EEC2BE91EF91F091F191F2B4C1B4F791F391F4BBA791F591F691F791F891F9ECE6ECE5B7BFCBF9B1E291FAECE791FB91FC91FDC9C8ECE8ECE991FECAD6DED0B2C5D4FA92409241C6CBB0C7B4F2C8D3924292439244CDD092459246BFB8924792489249924A924B924C924DBFDB924E924FC7A4D6B49250C0A9DED1C9A8D1EFC5A4B0E7B3B6C8C592519252B0E292539254B7F692559256C5FA92579258B6F39259D5D2B3D0BCBC925A925B925CB3AD925D925E925F9260BEF1B0D1926192629263926492659266D2D6CAE3D7A59267CDB6B6B6BFB9D5DB9268B8A7C5D79269926A926BDED2BFD9C2D5C7C0926CBBA4B1A8926D926EC5EA926F9270C5FBCCA79271927292739274B1A7927592769277B5D692789279927AC4A8927BDED3D1BAB3E9927CC3F2927D927EB7F79280D6F4B5A3B2F0C4B4C4E9C0ADDED49281B0E8C5C4C1E09282B9D59283BEDCCDD8B0CE9284CDCFDED6BED0D7BEDED5D5D0B0DD92859286C4E292879288C2A3BCF09289D3B5C0B9C5A1B2A6D4F1928A928BC0A8CAC3DED7D5FC928CB9B0928DC8ADCBA9928EDED9BFBD928F929092919292C6B4D7A7CAB0C4C39293B3D6B9D29294929592969297D6B8EAFCB0B492989299929A929BBFE6929C929DCCF4929E929F92A092A1CDDA92A292A392A4D6BFC2CE92A5CECECCA2D0AEC4D3B5B2DED8D5F5BCB7BBD392A692A7B0A492A8C5B2B4EC92A992AA92ABD5F192AC92ADEAFD92AE92AF92B092B192B292B3DEDACDA692B492B5CDEC92B692B792B892B9CEE6DEDC92BACDB1C0A692BB92BCD7BD92BDDEDBB0C6BAB4C9D3C4F3BEE892BE92BF92C092C1B2B692C292C392C492C592C692C792C892C9C0CCCBF092CABCF1BBBBB5B792CB92CC92CDC5F592CEDEE692CF92D092D1DEE3BEDD92D292D3DEDF92D492D592D692D7B4B7BDDD92D892D9DEE0C4ED92DA92DB92DC92DDCFC692DEB5E092DF92E092E192E2B6DECADAB5F4DEE592E3D5C692E4DEE1CCCDC6FE92E5C5C592E692E792E8D2B492E9BEF292EA92EB92EC92ED92EE92EF92F0C2D392F1CCBDB3B892F2BDD392F3BFD8CDC6D1DAB4EB92F4DEE4DEDDDEE792F5EAFE92F692F7C2B0DEE292F892F9D6C0B5A792FAB2F492FBDEE892FCDEF292FD92FE934093419342DEED9343DEF193449345C8E0934693479348D7E1DEEFC3E8CCE19349B2E5934A934B934CD2BE934D934E934F9350935193529353DEEE9354DEEBCED59355B4A79356935793589359935ABFABBEBE935B935CBDD2935D935E935F9360DEE99361D4AE9362DEDE9363DEEA9364936593669367C0BF9368DEECB2F3B8E9C2A79369936ABDC1936B936C936D936E936FDEF5DEF893709371B2ABB4A493729373B4EAC9A6937493759376937793789379DEF6CBD1937AB8E3937BDEF7DEFA937C937D937E9380DEF9938193829383CCC29384B0E1B4EE93859386938793889389938AE5BA938B938C938D938E938FD0AF93909391B2EB9392EBA19393DEF493949395C9E3DEF3B0DAD2A1B1F79396CCAF939793989399939A939B939C939DDEF0939ECBA4939F93A093A1D5AA93A293A393A493A593A6DEFB93A793A893A993AA93AB93AC93AD93AEB4DD93AFC4A693B093B193B2DEFD93B393B493B593B693B793B893B993BA93BB93BCC3FEC4A1DFA193BD93BE93BF93C093C193C293C3C1CC93C4DEFCBEEF93C5C6B293C693C793C893C993CA93CB93CC93CD93CEB3C5C8F693CF93D0CBBADEFE93D193D2DFA493D393D493D593D6D7B293D793D893D993DA93DBB3B793DC93DD93DE93DFC1C393E093E1C7CBB2A5B4E993E2D7AB93E393E493E593E6C4EC93E7DFA2DFA393E8DFA593E9BAB393EA93EB93ECDFA693EDC0DE93EE93EFC9C393F093F193F293F393F493F593F6B2D9C7E693F7DFA793F8C7DC93F993FA93FB93FCDFA8EBA293FD93FE944094419442CBD3944394449445DFAA9446DFA99447B2C194489449944A944B944C944D944E944F9450945194529453945494559456945794589459945A945B945C945D945E945F9460C5CA94619462946394649465946694679468DFAB9469946A946B946C946D946E946F9470D4DC94719472947394749475C8C19476947794789479947A947B947C947D947E948094819482DFAC94839484948594869487BEF094889489DFADD6A7948A948B948C948DEAB7EBB6CAD5948ED8FCB8C4948FB9A594909491B7C5D5FE94929493949494959496B9CA94979498D0A7F4CD9499949AB5D0949B949CC3F4949DBEC8949E949F94A0EBB7B0BD94A194A2BDCC94A3C1B294A4B1D6B3A894A594A694A7B8D2C9A294A894A9B6D894AA94AB94AC94ADEBB8BEB494AE94AF94B0CAFD94B1C7C394B2D5FB94B394B4B7F394B594B694B794B894B994BA94BB94BC94BD94BE94BF94C094C194C294C3CEC494C494C594C6D5ABB1F394C794C894C9ECB3B0DF94CAECB594CB94CC94CDB6B794CEC1CF94CFF5FAD0B194D094D1D5E594D2CED394D394D4BDEFB3E294D5B8AB94D6D5B694D7EDBD94D8B6CF94D9CBB9D0C294DA94DB94DC94DD94DE94DF94E094E1B7BD94E294E3ECB6CAA994E494E594E6C5D494E7ECB9ECB8C2C3ECB794E894E994EA94EBD0FDECBA94ECECBBD7E594ED94EEECBC94EF94F094F1ECBDC6EC94F294F394F494F594F694F794F894F9CEDE94FABCC894FB94FCC8D5B5A9BEC9D6BCD4E794FD94FED1AED0F1EAB8EAB9EABABAB59540954195429543CAB1BFF595449545CDFA9546954795489549954AEAC0954BB0BAEABE954C954DC0A5954E954F9550EABB9551B2FD9552C3F7BBE8955395549555D2D7CEF4EABF955695579558EABC9559955A955BEAC3955CD0C7D3B3955D955E955F9560B4BA9561C3C1D7F29562956395649565D5D19566CAC79567EAC595689569EAC4EAC7EAC6956A956B956C956D956ED6E7956FCFD495709571EACB9572BBCE9573957495759576957795789579BDFAC9CE957A957BEACC957C957DC9B9CFFEEACAD4CEEACDEACF957E9580CDED9581958295839584EAC99585EACE95869587CEEE9588BBDE9589B3BF958A958B958C958D958EC6D5BEB0CEFA958F95909591C7E79592BEA7EAD095939594D6C7959595969597C1C095989599959AD4DD959BEAD1959C959DCFBE959E959F95A095A1EAD295A295A395A495A5CAEE95A695A795A895A9C5AFB0B595AA95AB95AC95AD95AEEAD495AF95B095B195B295B395B495B595B695B7EAD3F4DF95B895B995BA95BB95BCC4BA95BD95BE95BF95C095C1B1A995C295C395C495C5E5DF95C695C795C895C9EAD595CA95CB95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB95DC95DD95DE95DF95E095E195E295E3CAEF95E4EAD6EAD7C6D895E595E695E795E895E995EA95EB95ECEAD895ED95EEEAD995EF95F095F195F295F395F4D4BB95F5C7FAD2B7B8FC95F695F7EAC295F8B2DC95F995FAC2FC95FBD4F8CCE6D7EE95FC95FD95FE9640964196429643D4C2D3D0EBC3C5F39644B7FE96459646EBD4964796489649CBB7EBDE964AC0CA964B964C964DCDFB964EB3AF964FC6DA965096519652965396549655EBFC9656C4BE9657CEB4C4A9B1BED4FD9658CAF59659D6EC965A965BC6D3B6E4965C965D965E965FBBFA96609661D0E096629663C9B19664D4D3C8A896659666B8CB9667E8BEC9BC96689669E8BB966AC0EED0D3B2C4B4E5966BE8BC966C966DD5C8966E966F967096719672B6C59673E8BDCAF8B8DCCCF5967496759676C0B496779678D1EEE8BFE8C29679967ABABC967BB1ADBDDC967CEABDE8C3967DE8C6967EE8CB9680968196829683E8CC9684CBC9B0E59685BCAB96869687B9B996889689E8C1968ACDF7968BE8CA968C968D968E968FCEF69690969196929693D5ED9694C1D6E8C49695C3B69696B9FBD6A6E8C8969796989699CAE0D4E6969AE8C0969BE8C5E8C7969CC7B9B7E3969DE8C9969EBFDDE8D2969F96A0E8D796A1E8D5BCDCBCCFE8DB96A296A396A496A596A696A796A896A9E8DE96AAE8DAB1FA96AB96AC96AD96AE96AF96B096B196B296B396B4B0D8C4B3B8CCC6E2C8BEC8E196B596B696B7E8CFE8D4E8D696B8B9F1E8D8D7F596B9C4FB96BAE8DC96BB96BCB2E996BD96BE96BFE8D196C096C1BCED96C296C3BFC2E8CDD6F996C4C1F8B2F196C596C696C796C896C996CA96CB96CCE8DF96CDCAC1E8D996CE96CF96D096D1D5A496D2B1EAD5BBE8CEE8D0B6B0E8D396D3E8DDC0B896D4CAF796D5CBA896D696D7C6DCC0F596D896D996DA96DB96DCE8E996DD96DE96DFD0A396E096E196E296E396E496E596E6E8F2D6EA96E796E896E996EA96EB96EC96EDE8E0E8E196EE96EF96F0D1F9BACBB8F996F196F2B8F1D4D4E8EF96F3E8EEE8ECB9F0CCD2E8E6CEA6BFF296F4B0B8E8F1E8F096F5D7C096F6E8E496F7CDA9C9A396F8BBB8BDDBE8EA96F996FA96FB96FC96FD96FE9740974197429743E8E2E8E3E8E5B5B5E8E7C7C5E8EBE8EDBDB0D7AE9744E8F897459746974797489749974A974B974CE8F5974DCDB0E8F6974E974F9750975197529753975497559756C1BA9757E8E89758C3B7B0F09759975A975B975C975D975E975F9760E8F4976197629763E8F7976497659766B9A3976797689769976A976B976C976D976E976F9770C9D2977197729773C3CECEE0C0E69774977597769777CBF39778CCDDD0B59779977ACAE1977BE8F3977C977D977E9780978197829783978497859786BCEC9787E8F997889789978A978B978C978DC3DE978EC6E5978FB9F79790979197929793B0F497949795D7D897969797BCAC9798C5EF9799979A979B979C979DCCC4979E979FE9A697A097A197A297A397A497A597A697A797A897A9C9AD97AAE9A2C0E297AB97AC97ADBFC397AE97AF97B0E8FEB9D797B1E8FB97B297B397B497B5E9A497B697B797B8D2CE97B997BA97BB97BC97BDE9A397BED6B2D7B597BFE9A797C0BDB797C197C297C397C497C597C697C797C897C997CA97CB97CCE8FCE8FD97CD97CE97CFE9A197D097D197D297D397D497D597D697D7CDD697D897D9D2AC97DA97DB97DCE9B297DD97DE97DF97E0E9A997E197E297E3B4AA97E4B4BB97E597E6E9AB97E797E897E997EA97EB97EC97ED97EE97EF97F097F197F297F397F497F597F697F7D0A897F897F9E9A597FA97FBB3FE97FC97FDE9ACC0E397FEE9AA98409841E9B998429843E9B89844984598469847E9AE98489849E8FA984A984BE9A8984C984D984E984F9850BFACE9B1E9BA98519852C2A5985398549855E9AF9856B8C59857E9AD9858D3DCE9B4E9B5E9B79859985A985BE9C7985C985D985E985F98609861C0C6E9C598629863E9B098649865E9BBB0F19866986798689869986A986B986C986D986E986FE9BCD5A598709871E9BE9872E9BF987398749875E9C198769877C1F198789879C8B6987A987B987CE9BD987D987E988098819882E9C29883988498859886988798889889988AE9C3988BE9B3988CE9B6988DBBB1988E988F9890E9C0989198929893989498959896BCF7989798989899E9C4E9C6989A989B989C989D989E989F98A098A198A298A398A498A5E9CA98A698A798A898A9E9CE98AA98AB98AC98AD98AE98AF98B098B198B298B3B2DB98B4E9C898B598B698B798B898B998BA98BB98BC98BD98BEB7AE98BF98C098C198C298C398C498C598C698C798C898C998CAE9CBE9CC98CB98CC98CD98CE98CF98D0D5C198D1C4A398D298D398D498D598D698D7E9D898D8BAE198D998DA98DB98DCE9C998DDD3A398DE98DF98E0E9D498E198E298E398E498E598E698E7E9D7E9D098E898E998EA98EB98ECE9CF98ED98EEC7C198EF98F098F198F298F398F498F598F6E9D298F798F898F998FA98FB98FC98FDE9D9B3C898FEE9D399409941994299439944CFF0994599469947E9CD99489949994A994B994C994D994E994F995099519952B3F79953995499559956995799589959E9D6995A995BE9DA995C995D995ECCB4995F99609961CFAD99629963996499659966996799689969996AE9D5996BE9DCE9DB996C996D996E996F9970E9DE99719972997399749975997699779978E9D19979997A997B997C997D997E99809981E9DD9982E9DFC3CA9983998499859986998799889989998A998B998C998D998E998F9990999199929993999499959996999799989999999A999B999C999D999E999F99A099A199A299A399A499A599A699A799A899A999AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B999BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C999CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D899D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E899E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F5C7B7B4CEBBB6D0C0ECA399F699F7C5B799F899F999FA99FB99FC99FD99FE9A409A419A42D3FB9A439A449A459A46ECA49A47ECA5C6DB9A489A499A4ABFEE9A4B9A4C9A4D9A4EECA69A4F9A50ECA7D0AA9A51C7B89A529A53B8E89A549A559A569A579A589A599A5A9A5B9A5C9A5D9A5E9A5FECA89A609A619A629A639A649A659A669A67D6B9D5FDB4CBB2BDCEE4C6E79A689A69CDE19A6A9A6B9A6C9A6D9A6E9A6F9A709A719A729A739A749A759A769A77B4F59A78CBC0BCDF9A799A7A9A7B9A7CE9E2E9E3D1EAE9E59A7DB4F9E9E49A7ED1B3CAE2B2D09A80E9E89A819A829A839A84E9E6E9E79A859A86D6B39A879A889A89E9E9E9EA9A8A9A8B9A8C9A8D9A8EE9EB9A8F9A909A919A929A939A949A959A96E9EC9A979A989A999A9A9A9B9A9C9A9D9A9EECAFC5B9B6CE9A9FD2F39AA09AA19AA29AA39AA49AA59AA6B5EE9AA7BBD9ECB19AA89AA9D2E39AAA9AAB9AAC9AAD9AAECEE39AAFC4B89AB0C3BF9AB19AB2B6BED8B9B1C8B1CFB1D1C5FE9AB3B1D09AB4C3AB9AB59AB69AB79AB89AB9D5B19ABA9ABB9ABC9ABD9ABE9ABF9AC09AC1EBA4BAC19AC29AC39AC4CCBA9AC59AC69AC7EBA59AC8EBA79AC99ACA9ACBEBA89ACC9ACD9ACEEBA69ACF9AD09AD19AD29AD39AD49AD5EBA9EBABEBAA9AD69AD79AD89AD99ADAEBAC9ADBCACFD8B5C3F19ADCC3A5C6F8EBADC4CA9ADDEBAEEBAFEBB0B7D59ADE9ADF9AE0B7FA9AE1EBB1C7E29AE2EBB39AE3BAA4D1F5B0B1EBB2EBB49AE49AE59AE6B5AAC2C8C7E89AE7EBB59AE8CBAEE3DF9AE99AEAD3C09AEB9AEC9AED9AEED9DB9AEF9AF0CDA1D6ADC7F39AF19AF29AF3D9E0BBE39AF4BABAE3E29AF59AF69AF79AF89AF9CFAB9AFA9AFB9AFCE3E0C9C79AFDBAB99AFE9B409B41D1B4E3E1C8EAB9AFBDADB3D8CEDB9B429B43CCC09B449B459B46E3E8E3E9CDF49B479B489B499B4A9B4BCCAD9B4CBCB39B4DE3EA9B4EE3EB9B4F9B50D0DA9B519B529B53C6FBB7DA9B549B55C7DFD2CACED69B56E3E4E3EC9B57C9F2B3C19B589B59E3E79B5A9B5BC6E3E3E59B5C9B5DEDB3E3E69B5E9B5F9B609B61C9B39B62C5E69B639B649B65B9B59B66C3BB9B67E3E3C5BDC1A4C2D9B2D79B68E3EDBBA6C4AD9B69E3F0BEDA9B6A9B6BE3FBE3F5BAD39B6C9B6D9B6E9B6FB7D0D3CD9B70D6CED5D3B9C1D5B4D1D89B719B729B739B74D0B9C7F69B759B769B77C8AAB2B49B78C3DA9B799B7A9B7BE3EE9B7C9B7DE3FCE3EFB7A8E3F7E3F49B7E9B809B81B7BA9B829B83C5A29B84E3F6C5DDB2A8C6FC9B85C4E09B869B87D7A29B88C0E1E3F99B899B8AE3FAE3FDCCA9E3F39B8BD3BE9B8CB1C3EDB4E3F1E3F29B8DE3F8D0BAC6C3D4F3E3FE9B8E9B8FBDE09B909B91E4A79B929B93E4A69B949B959B96D1F3E4A39B97E4A99B989B999B9AC8F79B9B9B9C9B9D9B9ECFB49B9FE4A8E4AEC2E59BA09BA1B6B49BA29BA39BA49BA59BA69BA7BDF29BA8E4A29BA99BAABAE9E4AA9BAB9BACE4AC9BAD9BAEB6FDD6DEE4B29BAFE4AD9BB09BB19BB2E4A19BB3BBEECDDDC7A2C5C99BB49BB5C1F79BB6E4A49BB7C7B3BDACBDBDE4A59BB8D7C7B2E29BB9E4ABBCC3E4AF9BBABBEBE4B0C5A8E4B19BBB9BBC9BBD9BBED5E3BFA39BBFE4BA9BC0E4B79BC1E4BB9BC29BC3E4BD9BC49BC5C6D69BC69BC7BAC6C0CB9BC89BC99BCAB8A1E4B49BCB9BCC9BCD9BCED4A19BCF9BD0BAA3BDFE9BD19BD29BD3E4BC9BD49BD59BD69BD79BD8CDBF9BD99BDAC4F99BDB9BDCCFFBC9E69BDD9BDED3BF9BDFCFD19BE09BE1E4B39BE2E4B8E4B9CCE99BE39BE49BE59BE69BE7CCCE9BE8C0D4E4B5C1B0E4B6CED09BE9BBC1B5D39BEAC8F3BDA7D5C7C9ACB8A2E4CA9BEB9BECE4CCD1C49BED9BEED2BA9BEF9BF0BAAD9BF19BF2BAD49BF39BF49BF59BF69BF79BF8E4C3B5ED9BF99BFA9BFBD7CDE4C0CFFDE4BF9BFC9BFD9BFEC1DCCCCA9C409C419C429C43CAE79C449C459C469C47C4D79C48CCD4E4C89C499C4A9C4BE4C7E4C19C4CE4C4B5AD9C4D9C4ED3D99C4FE4C69C509C519C529C53D2F9B4E39C54BBB49C559C56C9EE9C57B4BE9C589C599C5ABBEC9C5BD1CD9C5CCCEDEDB59C5D9C5E9C5F9C609C619C629C639C64C7E59C659C669C679C68D4A89C69E4CBD7D5E4C29C6ABDA5E4C59C6B9C6CD3E69C6DE4C9C9F89C6E9C6FE4BE9C709C71D3E59C729C73C7FEB6C99C74D4FCB2B3E4D79C759C769C77CEC29C78E4CD9C79CEBC9C7AB8DB9C7B9C7CE4D69C7DBFCA9C7E9C809C81D3CE9C82C3EC9C839C849C859C869C879C889C899C8AC5C8E4D89C8B9C8C9C8D9C8E9C8F9C909C919C92CDC4E4CF9C939C949C959C96E4D4E4D59C97BAFE9C98CFE69C999C9AD5BF9C9B9C9C9C9DE4D29C9E9C9F9CA09CA19CA29CA39CA49CA59CA69CA79CA8E4D09CA99CAAE4CE9CAB9CAC9CAD9CAE9CAF9CB09CB19CB29CB39CB49CB59CB69CB79CB89CB9CDE5CAAA9CBA9CBB9CBCC0A39CBDBDA6E4D39CBE9CBFB8C89CC09CC19CC29CC39CC4E4E7D4B49CC59CC69CC79CC89CC99CCA9CCBE4DB9CCC9CCD9CCEC1EF9CCF9CD0E4E99CD19CD2D2E79CD39CD4E4DF9CD5E4E09CD69CD7CFAA9CD89CD99CDA9CDBCBDD9CDCE4DAE4D19CDDE4E59CDEC8DCE4E39CDF9CE0C4E7E4E29CE1E4E19CE29CE39CE4B3FCE4E89CE59CE69CE79CE8B5E19CE99CEA9CEBD7CC9CEC9CED9CEEE4E69CEFBBAC9CF0D7D2CCCFEBF89CF1E4E49CF29CF3B9F69CF49CF59CF6D6CDE4D9E4DCC2FAE4DE9CF7C2CBC0C4C2D09CF8B1F5CCB29CF99CFA9CFB9CFC9CFD9CFE9D409D419D429D43B5CE9D449D459D469D47E4EF9D489D499D4A9D4B9D4C9D4D9D4E9D4FC6AF9D509D519D52C6E19D539D54E4F59D559D569D579D589D59C2A99D5A9D5B9D5CC0ECD1DDE4EE9D5D9D5E9D5F9D609D619D629D639D649D659D66C4AE9D679D689D69E4ED9D6A9D6B9D6C9D6DE4F6E4F4C2FE9D6EE4DD9D6FE4F09D70CAFE9D71D5C49D729D73E4F19D749D759D769D779D789D799D7AD1FA9D7B9D7C9D7D9D7E9D809D819D82E4EBE4EC9D839D849D85E4F29D86CEAB9D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D90C5CB9D919D929D93C7B19D94C2BA9D959D969D97E4EA9D989D999D9AC1CA9D9B9D9C9D9D9D9E9D9F9DA0CCB6B3B19DA19DA29DA3E4FB9DA4E4F39DA59DA69DA7E4FA9DA8E4FD9DA9E4FC9DAA9DAB9DAC9DAD9DAE9DAF9DB0B3CE9DB19DB29DB3B3BAE4F79DB49DB5E4F9E4F8C5EC9DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2C0BD9DC39DC49DC59DC6D4E89DC79DC89DC99DCA9DCBE5A29DCC9DCD9DCE9DCF9DD09DD19DD29DD39DD49DD59DD6B0C49DD79DD8E5A49DD99DDAE5A39DDB9DDC9DDD9DDE9DDF9DE0BCA49DE1E5A59DE29DE39DE49DE59DE69DE7E5A19DE89DE99DEA9DEB9DEC9DED9DEEE4FEB1F49DEF9DF09DF19DF29DF39DF49DF59DF69DF79DF89DF9E5A89DFAE5A9E5A69DFB9DFC9DFD9DFE9E409E419E429E439E449E459E469E47E5A7E5AA9E489E499E4A9E4B9E4C9E4D9E4E9E4F9E509E519E529E539E549E559E569E579E589E599E5A9E5B9E5C9E5D9E5E9E5F9E609E619E629E639E649E659E669E679E68C6D99E699E6A9E6B9E6C9E6D9E6E9E6F9E70E5ABE5AD9E719E729E739E749E759E769E77E5AC9E789E799E7A9E7B9E7C9E7D9E7E9E809E819E829E839E849E859E869E879E889E89E5AF9E8A9E8B9E8CE5AE9E8D9E8E9E8F9E909E919E929E939E949E959E969E979E989E999E9A9E9B9E9C9E9D9E9EB9E09E9F9EA0E5B09EA19EA29EA39EA49EA59EA69EA79EA89EA99EAA9EAB9EAC9EAD9EAEE5B19EAF9EB09EB19EB29EB39EB49EB59EB69EB79EB89EB99EBABBF0ECE1C3F09EBBB5C6BBD29EBC9EBD9EBE9EBFC1E9D4EE9EC0BEC49EC19EC29EC3D7C69EC4D4D6B2D3ECBE9EC59EC69EC79EC8EAC19EC99ECA9ECBC2AFB4B69ECC9ECD9ECED1D79ECF9ED09ED1B3B49ED2C8B2BFBBECC09ED39ED4D6CB9ED59ED6ECBFECC19ED79ED89ED99EDA9EDB9EDC9EDD9EDE9EDF9EE09EE19EE29EE3ECC5BEE6CCBFC5DABEBC9EE4ECC69EE5B1FE9EE69EE79EE8ECC4D5A8B5E39EE9ECC2C1B6B3E39EEA9EEBECC3CBB8C0C3CCFE9EEC9EED9EEE9EEFC1D29EF0ECC89EF19EF29EF39EF49EF59EF69EF79EF89EF99EFA9EFB9EFC9EFDBAE6C0D39EFED6F29F409F419F42D1CC9F439F449F459F46BFBE9F47B7B3C9D5ECC7BBE29F48CCCCBDFDC8C89F49CFA99F4A9F4B9F4C9F4D9F4E9F4F9F50CDE99F51C5EB9F529F539F54B7E99F559F569F579F589F599F5A9F5B9F5C9F5D9F5E9F5FD1C9BAB89F609F619F629F639F64ECC99F659F66ECCA9F67BBC0ECCB9F68ECE2B1BAB7D99F699F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F73BDB99F749F759F769F779F789F799F7A9F7BECCCD1E6ECCD9F7C9F7D9F7E9F80C8BB9F819F829F839F849F859F869F879F889F899F8A9F8B9F8C9F8D9F8EECD19F8F9F909F919F92ECD39F93BBCD9F94BCE59F959F969F979F989F999F9A9F9B9F9C9F9D9F9E9F9F9FA09FA1ECCF9FA2C9B79FA39FA49FA59FA69FA7C3BA9FA8ECE3D5D5ECD09FA99FAA9FAB9FAC9FADD6F39FAE9FAF9FB0ECD2ECCE9FB19FB29FB39FB4ECD49FB5ECD59FB69FB7C9BF9FB89FB99FBA9FBB9FBC9FBDCFA89FBE9FBF9FC09FC19FC2D0DC9FC39FC49FC59FC6D1AC9FC79FC89FC99FCAC8DB9FCB9FCC9FCDECD6CEF59FCE9FCF9FD09FD19FD2CAECECDA9FD39FD49FD59FD69FD79FD89FD9ECD99FDA9FDB9FDCB0BE9FDD9FDE9FDF9FE09FE19FE2ECD79FE3ECD89FE49FE59FE6ECE49FE79FE89FE99FEA9FEB9FEC9FED9FEE9FEFC8BC9FF09FF19FF29FF39FF49FF59FF69FF79FF89FF9C1C79FFA9FFB9FFC9FFD9FFEECDCD1E0A040A041A042A043A044A045A046A047A048A049ECDBA04AA04BA04CA04DD4EFA04EECDDA04FA050A051A052A053A054DBC6A055A056A057A058A059A05AA05BA05CA05DA05EECDEA05FA060A061A062A063A064A065A066A067A068A069A06AB1ACA06BA06CA06DA06EA06FA070A071A072A073A074A075A076A077A078A079A07AA07BA07CA07DA07EA080A081ECDFA082A083A084A085A086A087A088A089A08AA08BECE0A08CD7A6A08DC5C0A08EA08FA090EBBCB0AEA091A092A093BEF4B8B8D2AFB0D6B5F9A094D8B3A095CBACA096E3DDA097A098A099A09AA09BA09CA09DC6ACB0E6A09EA09FA0A0C5C6EBB9A0A1A0A2A0A3A0A4EBBAA0A5A0A6A0A7EBBBA0A8A0A9D1C0A0AAC5A3A0ABEAF2A0ACC4B2A0ADC4B5C0CEA0AEA0AFA0B0EAF3C4C1A0B1CEEFA0B2A0B3A0B4A0B5EAF0EAF4A0B6A0B7C9FCA0B8A0B9C7A3A0BAA0BBA0BCCCD8CEFEA0BDA0BEA0BFEAF5EAF6CFACC0E7A0C0A0C1EAF7A0C2A0C3A0C4A0C5A0C6B6BFEAF8A0C7EAF9A0C8EAFAA0C9A0CAEAFBA0CBA0CCA0CDA0CEA0CFA0D0A0D1A0D2A0D3A0D4A0D5A0D6EAF1A0D7A0D8A0D9A0DAA0DBA0DCA0DDA0DEA0DFA0E0A0E1A0E2C8AEE1EBA0E3B7B8E1ECA0E4A0E5A0E6E1EDA0E7D7B4E1EEE1EFD3CCA0E8A0E9A0EAA0EBA0ECA0EDA0EEE1F1BFF1E1F0B5D2A0EFA0F0A0F1B1B7A0F2A0F3A0F4A0F5E1F3E1F2A0F6BAFCA0F7E1F4A0F8A0F9A0FAA0FBB9B7A0FCBED1A0FDA0FEAA40AA41C4FCAA42BADDBDC6AA43AA44AA45AA46AA47AA48E1F5E1F7AA49AA4AB6C0CFC1CAA8E1F6D5F8D3FCE1F8E1FCE1F9AA4BAA4CE1FAC0EAAA4DE1FEE2A1C0C7AA4EAA4FAA50AA51E1FBAA52E1FDAA53AA54AA55AA56AA57AA58E2A5AA59AA5AAA5BC1D4AA5CAA5DAA5EAA5FE2A3AA60E2A8B2FEE2A2AA61AA62AA63C3CDB2C2E2A7E2A6AA64AA65E2A4E2A9AA66AA67E2ABAA68AA69AA6AD0C9D6EDC3A8E2ACAA6BCFD7AA6CAA6DE2AEAA6EAA6FBAEFAA70AA71E9E0E2ADE2AAAA72AA73AA74AA75BBABD4B3AA76AA77AA78AA79AA7AAA7BAA7CAA7DAA7EAA80AA81AA82AA83E2B0AA84AA85E2AFAA86E9E1AA87AA88AA89AA8AE2B1AA8BAA8CAA8DAA8EAA8FAA90AA91AA92E2B2AA93AA94AA95AA96AA97AA98AA99AA9AAA9BAA9CAA9DE2B3CCA1AA9EE2B4AA9FAAA0AB40AB41AB42AB43AB44AB45AB46AB47AB48AB49AB4AAB4BE2B5AB4CAB4DAB4EAB4FAB50D0FEAB51AB52C2CAAB53D3F1AB54CDF5AB55AB56E7E0AB57AB58E7E1AB59AB5AAB5BAB5CBEC1AB5DAB5EAB5FAB60C2EAAB61AB62AB63E7E4AB64AB65E7E3AB66AB67AB68AB69AB6AAB6BCDE6AB6CC3B5AB6DAB6EE7E2BBB7CFD6AB6FC1E1E7E9AB70AB71AB72E7E8AB73AB74E7F4B2A3AB75AB76AB77AB78E7EAAB79E7E6AB7AAB7BAB7CAB7DAB7EE7ECE7EBC9BAAB80AB81D5E4AB82E7E5B7A9E7E7AB83AB84AB85AB86AB87AB88AB89E7EEAB8AAB8BAB8CAB8DE7F3AB8ED6E9AB8FAB90AB91AB92E7EDAB93E7F2AB94E7F1AB95AB96AB97B0E0AB98AB99AB9AAB9BE7F5AB9CAB9DAB9EAB9FABA0AC40AC41AC42AC43AC44AC45AC46AC47AC48AC49AC4AC7F2AC4BC0C5C0EDAC4CAC4DC1F0E7F0AC4EAC4FAC50AC51E7F6CBF6AC52AC53AC54AC55AC56AC57AC58AC59AC5AE8A2E8A1AC5BAC5CAC5DAC5EAC5FAC60D7C1AC61AC62E7FAE7F9AC63E7FBAC64E7F7AC65E7FEAC66E7FDAC67E7FCAC68AC69C1D5C7D9C5FDC5C3AC6AAC6BAC6CAC6DAC6EC7EDAC6FAC70AC71AC72E8A3AC73AC74AC75AC76AC77AC78AC79AC7AAC7BAC7CAC7DAC7EAC80AC81AC82AC83AC84AC85AC86E8A6AC87E8A5AC88E8A7BAF7E7F8E8A4AC89C8F0C9AAAC8AAC8BAC8CAC8DAC8EAC8FAC90AC91AC92AC93AC94AC95AC96E8A9AC97AC98B9E5AC99AC9AAC9BAC9CAC9DD1FEE8A8AC9EAC9FACA0AD40AD41AD42E8AAAD43E8ADE8AEAD44C1A7AD45AD46AD47E8AFAD48AD49AD4AE8B0AD4BAD4CE8ACAD4DE8B4AD4EAD4FAD50AD51AD52AD53AD54AD55AD56AD57AD58E8ABAD59E8B1AD5AAD5BAD5CAD5DAD5EAD5FAD60AD61E8B5E8B2E8B3AD62AD63AD64AD65AD66AD67AD68AD69AD6AAD6BAD6CAD6DAD6EAD6FAD70AD71E8B7AD72AD73AD74AD75AD76AD77AD78AD79AD7AAD7BAD7CAD7DAD7EAD80AD81AD82AD83AD84AD85AD86AD87AD88AD89E8B6AD8AAD8BAD8CAD8DAD8EAD8FAD90AD91AD92B9CFAD93F0ACAD94F0ADAD95C6B0B0EAC8BFAD96CDDFAD97AD98AD99AD9AAD9BAD9CAD9DCECDEAB1AD9EAD9FADA0AE40EAB2AE41C6BFB4C9AE42AE43AE44AE45AE46AE47AE48EAB3AE49AE4AAE4BAE4CD5E7AE4DAE4EAE4FAE50AE51AE52AE53AE54DDF9AE55EAB4AE56EAB5AE57EAB6AE58AE59AE5AAE5BB8CADFB0C9F5AE5CCCF0AE5DAE5EC9FAAE5FAE60AE61AE62AE63C9FBAE64AE65D3C3CBA6AE66B8A6F0AEB1C2AE67E5B8CCEFD3C9BCD7C9EAAE68B5E7AE69C4D0B5E9AE6AEEAEBBADAE6BAE6CE7DEAE6DEEAFAE6EAE6FAE70AE71B3A9AE72AE73EEB2AE74AE75EEB1BDE7AE76EEB0CEB7AE77AE78AE79AE7AC5CFAE7BAE7CAE7DAE7EC1F4DBCEEEB3D0F3AE80AE81AE82AE83AE84AE85AE86AE87C2D4C6E8AE88AE89AE8AB7ACAE8BAE8CAE8DAE8EAE8FAE90AE91EEB4AE92B3EBAE93AE94AE95BBFBEEB5AE96AE97AE98AE99AE9AE7DCAE9BAE9CAE9DEEB6AE9EAE9FBDAEAEA0AF40AF41AF42F1E2AF43AF44AF45CAE8AF46D2C9F0DAAF47F0DBAF48F0DCC1C6AF49B8EDBECEAF4AAF4BF0DEAF4CC5B1F0DDD1F1AF4DF0E0B0CCBDEAAF4EAF4FAF50AF51AF52D2DFF0DFAF53B4AFB7E8F0E6F0E5C6A3F0E1F0E2B4C3AF54AF55F0E3D5EEAF56AF57CCDBBED2BCB2AF58AF59AF5AF0E8F0E7F0E4B2A1AF5BD6A2D3B8BEB7C8ACAF5CAF5DF0EAAF5EAF5FAF60AF61D1F7AF62D6CCBADBF0E9AF63B6BBAF64AF65CDB4AF66AF67C6A6AF68AF69AF6AC1A1F0EBF0EEAF6BF0EDF0F0F0ECAF6CBBBEF0EFAF6DAF6EAF6FAF70CCB5F0F2AF71AF72B3D5AF73AF74AF75AF76B1D4AF77AF78F0F3AF79AF7AF0F4F0F6B4E1AF7BF0F1AF7CF0F7AF7DAF7EAF80AF81F0FAAF82F0F8AF83AF84AF85F0F5AF86AF87AF88AF89F0FDAF8AF0F9F0FCF0FEAF8BF1A1AF8CAF8DAF8ECEC1F1A4AF8FF1A3AF90C1F6F0FBCADDAF91AF92B4F1B1F1CCB1AF93F1A6AF94AF95F1A7AF96AF97F1ACD5CEF1A9AF98AF99C8B3AF9AAF9BAF9CF1A2AF9DF1ABF1A8F1A5AF9EAF9FF1AAAFA0B040B041B042B043B044B045B046B0A9F1ADB047B048B049B04AB04BB04CF1AFB04DF1B1B04EB04FB050B051B052F1B0B053F1AEB054B055B056B057D1A2B058B059B05AB05BB05CB05DB05EF1B2B05FB060B061F1B3B062B063B064B065B066B067B068B069B9EFB06AB06BB5C7B06CB0D7B0D9B06DB06EB06FD4EDB070B5C4B071BDD4BBCAF0A7B072B073B8DEB074B075F0A8B076B077B0A8B078F0A9B079B07ACDEEB07BB07CF0AAB07DB07EB080B081B082B083B084B085B086B087F0ABB088B089B08AB08BB08CB08DB08EB08FB090C6A4B091B092D6E5F1E4B093F1E5B094B095B096B097B098B099B09AB09BB09CB09DC3F3B09EB09FD3DBB0A0B140D6D1C5E8B141D3AFB142D2E6B143B144EEC1B0BBD5B5D1CEBCE0BAD0B145BFF8B146B8C7B5C1C5CCB147B148CAA2B149B14AB14BC3CBB14CB14DB14EB14FB150EEC2B151B152B153B154B155B156B157B158C4BFB6A2B159EDECC3A4B15AD6B1B15BB15CB15DCFE0EDEFB15EB15FC5CEB160B6DCB161B162CAA1B163B164EDEDB165B166EDF0EDF1C3BCB167BFB4B168EDEEB169B16AB16BB16CB16DB16EB16FB170B171B172B173EDF4EDF2B174B175B176B177D5E6C3DFB178EDF3B179B17AB17BEDF6B17CD5A3D1A3B17DB17EB180EDF5B181C3D0B182B183B184B185B186EDF7BFF4BEECEDF8B187CCF7B188D1DBB189B18AB18BD7C5D5F6B18CEDFCB18DB18EB18FEDFBB190B191B192B193B194B195B196B197EDF9EDFAB198B199B19AB19BB19CB19DB19EB19FEDFDBEA6B1A0B240B241B242B243CBAFEEA1B6BDB244EEA2C4C0B245EDFEB246B247BDDEB2C7B248B249B24AB24BB24CB24DB24EB24FB250B251B252B253B6C3B254B255B256EEA5D8BAEEA3EEA6B257B258B259C3E9B3F2B25AB25BB25CB25DB25EB25FEEA7EEA4CFB9B260B261EEA8C2F7B262B263B264B265B266B267B268B269B26AB26BB26CB26DEEA9EEAAB26EDEABB26FB270C6B3B271C7C6B272D6F5B5C9B273CBB2B274B275B276EEABB277B278CDABB279EEACB27AB27BB27CB27DB27ED5B0B280EEADB281F6C4B282B283B284B285B286B287B288B289B28AB28BB28CB28DB28EDBC7B28FB290B291B292B293B294B295B296B297B4A3B298B299B29AC3ACF1E6B29BB29CB29DB29EB29FCAB8D2D3B2A0D6AAB340EFF2B341BED8B342BDC3EFF3B6CCB0ABB343B344B345B346CAAFB347B348EDB6B349EDB7B34AB34BB34CB34DCEF9B7AFBFF3EDB8C2EBC9B0B34EB34FB350B351B352B353EDB9B354B355C6F6BFB3B356B357B358EDBCC5F8B359D1D0B35AD7A9EDBAEDBBB35BD1E2B35CEDBFEDC0B35DEDC4B35EB35FB360EDC8B361EDC6EDCED5E8B362EDC9B363B364EDC7EDBEB365B366C5E9B367B368B369C6C6B36AB36BC9E9D4D2EDC1EDC2EDC3EDC5B36CC0F9B36DB4A1B36EB36FB370B371B9E8B372EDD0B373B374B375B376EDD1B377EDCAB378EDCFB379CEF8B37AB37BCBB6EDCCEDCDB37CB37DB37EB380B381CFF5B382B383B384B385B386B387B388B389B38AB38BB38CB38DEDD2C1F2D3B2EDCBC8B7B38EB38FB390B391B392B393B394B395BCEFB396B397B398B399C5F0B39AB39BB39CB39DB39EB39FB3A0B440B441B442EDD6B443B5EFB444B445C2B5B0ADCBE9B446B447B1AEB448EDD4B449B44AB44BCDEBB5E2B44CEDD5EDD3EDD7B44DB44EB5FAB44FEDD8B450EDD9B451EDDCB452B1CCB453B454B455B456B457B458B459B45AC5F6BCEEEDDACCBCB2EAB45BB45CB45DB45EEDDBB45FB460B461B462C4EBB463B464B4C5B465B466B467B0F5B468B469B46AEDDFC0DAB4E8B46BB46CB46DB46EC5CDB46FB470B471EDDDBFC4B472B473B474EDDEB475B476B477B478B479B47AB47BB47CB47DB47EB480B481B482B483C4A5B484B485B486EDE0B487B488B489B48AB48BEDE1B48CEDE3B48DB48EC1D7B48FB490BBC7B491B492B493B494B495B496BDB8B497B498B499EDE2B49AB49BB49CB49DB49EB49FB4A0B540B541B542B543B544B545EDE4B546B547B548B549B54AB54BB54CB54DB54EB54FEDE6B550B551B552B553B554EDE5B555B556B557B558B559B55AB55BB55CB55DB55EB55FB560B561B562B563EDE7B564B565B566B567B568CABEECEAC0F1B569C9E7B56AECEBC6EEB56BB56CB56DB56EECECB56FC6EDECEDB570B571B572B573B574B575B576B577B578ECF0B579B57AD7E6ECF3B57BB57CECF1ECEEECEFD7A3C9F1CBEEECF4B57DECF2B57EB580CFE9B581ECF6C6B1B582B583B584B585BCC0B586ECF5B587B588B589B58AB58BB58CB58DB5BBBBF6B58EECF7B58FB590B591B592B593D9F7BDFBB594B595C2BBECF8B596B597B598B599ECF9B59AB59BB59CB59DB8A3B59EB59FB5A0B640B641B642B643B644B645B646ECFAB647B648B649B64AB64BB64CB64DB64EB64FB650B651B652ECFBB653B654B655B656B657B658B659B65AB65BB65CB65DECFCB65EB65FB660B661B662D3EDD8AEC0EBB663C7DDBACCB664D0E3CBBDB665CDBAB666B667B8D1B668B669B1FCB66AC7EFB66BD6D6B66CB66DB66EBFC6C3EBB66FB670EFF5B671B672C3D8B673B674B675B676B677B678D7E2B679B67AB67BEFF7B3D3B67CC7D8D1EDB67DD6C8B67EEFF8B680EFF6B681BBFDB3C6B682B683B684B685B686B687B688BDD5B689B68AD2C6B68BBBE0B68CB68DCFA1B68EEFFCEFFBB68FB690EFF9B691B692B693B694B3CCB695C9D4CBB0B696B697B698B699B69AEFFEB69BB69CB0DEB69DB69ED6C9B69FB6A0B740EFFDB741B3EDB742B743F6D5B744B745B746B747B748B749B74AB74BB74CB74DB74EB74FB750B751B752CEC8B753B754B755F0A2B756F0A1B757B5BEBCDABBFCB758B8E5B759B75AB75BB75CB75DB75EC4C2B75FB760B761B762B763B764B765B766B767B768F0A3B769B76AB76BB76CB76DCBEBB76EB76FB770B771B772B773B774B775B776B777B778B779B77AB77BB77CB77DB77EB780B781B782B783B784B785B786F0A6B787B788B789D1A8B78ABEBFC7EEF1B6F1B7BFD5B78BB78CB78DB78EB4A9F1B8CDBBB78FC7D4D5ADB790F1B9B791F1BAB792B793B794B795C7CFB796B797B798D2A4D6CFB799B79AF1BBBDD1B4B0BEBDB79BB79CB79DB4DCCED1B79EBFDFF1BDB79FB7A0B840B841BFFAF1BCB842F1BFB843B844B845F1BEF1C0B846B847B848B849B84AF1C1B84BB84CB84DB84EB84FB850B851B852B853B854B855C1FEB856B857B858B859B85AB85BB85CB85DB85EB85FB860C1A2B861B862B863B864B865B866B867B868B869B86ACAFAB86BB86CD5BEB86DB86EB86FB870BEBABEB9D5C2B871B872BFA2B873CDAFF1B5B874B875B876B877B878B879BDDFB87AB6CBB87BB87CB87DB87EB880B881B882B883B884D6F1F3C3B885B886F3C4B887B8CDB888B889B88AF3C6F3C7B88BB0CAB88CF3C5B88DF3C9CBF1B88EB88FB890F3CBB891D0A6B892B893B1CAF3C8B894B895B896F3CFB897B5D1B898B899F3D7B89AF3D2B89BB89CB89DF3D4F3D3B7FBB89EB1BFB89FF3CEF3CAB5DAB8A0F3D0B940B941F3D1B942F3D5B943B944B945B946F3CDB947BCE3B948C1FDB949F3D6B94AB94BB94CB94DB94EB94FF3DAB950F3CCB951B5C8B952BDEEF3DCB953B954B7A4BFF0D6FECDB2B955B4F0B956B2DFB957F3D8B958F3D9C9B8B959F3DDB95AB95BF3DEB95CF3E1B95DB95EB95FB960B961B962B963B964B965B966B967F3DFB968B969F3E3F3E2B96AB96BF3DBB96CBFEAB96DB3EFB96EF3E0B96FB970C7A9B971BCF2B972B973B974B975F3EBB976B977B978B979B97AB97BB97CB9BFB97DB97EF3E4B980B981B982B2ADBBFEB983CBE3B984B985B986B987F3EDF3E9B988B989B98AB9DCF3EEB98BB98CB98DF3E5F3E6F3EAC2E1F3ECF3EFF3E8BCFDB98EB98FB990CFE4B991B992F3F0B993B994B995F3E7B996B997B998B999B99AB99BB99CB99DF3F2B99EB99FB9A0BA40D7ADC6AABA41BA42BA43BA44F3F3BA45BA46BA47BA48F3F1BA49C2A8BA4ABA4BBA4CBA4DBA4EB8DDF3F5BA4FBA50F3F4BA51BA52BA53B4DBBA54BA55BA56F3F6F3F7BA57BA58BA59F3F8BA5ABA5BBA5CC0BABA5DBA5EC0E9BA5FBA60BA61BA62BA63C5F1BA64BA65BA66BA67F3FBBA68F3FABA69BA6ABA6BBA6CBA6DBA6EBA6FBA70B4D8BA71BA72BA73F3FEF3F9BA74BA75F3FCBA76BA77BA78BA79BA7ABA7BF3FDBA7CBA7DBA7EBA80BA81BA82BA83BA84F4A1BA85BA86BA87BA88BA89BA8AF4A3BBC9BA8BBA8CF4A2BA8DBA8EBA8FBA90BA91BA92BA93BA94BA95BA96BA97BA98BA99F4A4BA9ABA9BBA9CBA9DBA9EBA9FB2BEF4A6F4A5BAA0BB40BB41BB42BB43BB44BB45BB46BB47BB48BB49BCAEBB4ABB4BBB4CBB4DBB4EBB4FBB50BB51BB52BB53BB54BB55BB56BB57BB58BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB61BB62BB63BB64BB65BB66BB67BB68BB69BB6ABB6BBB6CBB6DBB6EC3D7D9E1BB6FBB70BB71BB72BB73BB74C0E0F4CCD7D1BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB80B7DBBB81BB82BB83BB84BB85BB86BB87F4CEC1A3BB88BB89C6C9BB8AB4D6D5B3BB8BBB8CBB8DF4D0F4CFF4D1CBDABB8EBB8FF4D2BB90D4C1D6E0BB91BB92BB93BB94B7E0BB95BB96BB97C1B8BB98BB99C1BBF4D3BEACBB9ABB9BBB9CBB9DBB9EB4E2BB9FBBA0F4D4F4D5BEABBC40BC41F4D6BC42BC43BC44F4DBBC45F4D7F4DABC46BAFDBC47F4D8F4D9BC48BC49BC4ABC4BBC4CBC4DBC4EB8E2CCC7F4DCBC4FB2DABC50BC51C3D3BC52BC53D4E3BFB7BC54BC55BC56BC57BC58BC59BC5AF4DDBC5BBC5CBC5DBC5EBC5FBC60C5B4BC61BC62BC63BC64BC65BC66BC67BC68F4E9BC69BC6ACFB5BC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78CEC9BC79BC7ABC7BBC7CBC7DBC7EBC80BC81BC82BC83BC84BC85BC86BC87BC88BC89BC8ABC8BBC8CBC8DBC8ECBD8BC8FCBF7BC90BC91BC92BC93BDF4BC94BC95BC96D7CFBC97BC98BC99C0DBBC9ABC9BBC9CBC9DBC9EBC9FBCA0BD40BD41BD42BD43BD44BD45BD46BD47BD48BD49BD4ABD4BBD4CBD4DBD4EBD4FBD50BD51BD52BD53BD54BD55BD56BD57BD58BD59BD5ABD5BBD5CBD5DBD5EBD5FBD60BD61BD62BD63BD64BD65BD66BD67BD68BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71BD72BD73BD74BD75BD76D0F5BD77BD78BD79BD7ABD7BBD7CBD7DBD7EF4EABD80BD81BD82BD83BD84BD85BD86BD87BD88BD89BD8ABD8BBD8CBD8DBD8EBD8FBD90BD91BD92BD93BD94BD95BD96BD97BD98BD99BD9ABD9BBD9CBD9DBD9EBD9FBDA0BE40BE41BE42BE43BE44BE45BE46BE47BE48BE49BE4ABE4BBE4CF4EBBE4DBE4EBE4FBE50BE51BE52BE53F4ECBE54BE55BE56BE57BE58BE59BE5ABE5BBE5CBE5DBE5EBE5FBE60BE61BE62BE63BE64BE65BE66BE67BE68BE69BE6ABE6BBE6CBE6DBE6EBE6FBE70BE71BE72BE73BE74BE75BE76BE77BE78BE79BE7ABE7BBE7CBE7DBE7EBE80BE81BE82BE83BE84BE85BE86BE87BE88BE89BE8ABE8BBE8CBE8DBE8EBE8FBE90BE91BE92BE93BE94BE95BE96BE97BE98BE99BE9ABE9BBE9CBE9DBE9EBE9FBEA0BF40BF41BF42BF43BF44BF45BF46BF47BF48BF49BF4ABF4BBF4CBF4DBF4EBF4FBF50BF51BF52BF53BF54BF55BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF80F7E3BF81BF82BF83BF84BF85B7B1BF86BF87BF88BF89BF8AF4EDBF8BBF8CBF8DBF8EBF8FBF90BF91BF92BF93BF94BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9DBF9EBF9FBFA0C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04EC04FC050C051C052C053C054C055C056C057C058C059C05AC05BC05CC05DC05EC05FC060C061C062C063D7EBC064C065C066C067C068C069C06AC06BC06CC06DC06EC06FC070C071C072C073C074C075C076C077C078C079C07AC07BF4EEC07CC07DC07EE6F9BEC0E6FABAECE6FBCFCBE6FCD4BCBCB6E6FDE6FEBCCDC8D2CEB3E7A1C080B4BFE7A2C9B4B8D9C4C9C081D7DDC2DAB7D7D6BDCEC6B7C4C082C083C5A6E7A3CFDFE7A4E7A5E7A6C1B7D7E9C9F0CFB8D6AFD6D5E7A7B0EDE7A8E7A9C9DCD2EFBEADE7AAB0F3C8DEBDE1E7ABC8C6C084E7ACBBE6B8F8D1A4E7ADC2E7BEF8BDCACDB3E7AEE7AFBEEED0E5C085CBE7CCD0BCCCE7B0BCA8D0F7E7B1C086D0F8E7B2E7B3B4C2E7B4E7B5C9FECEACC3E0E7B7B1C1B3F1C087E7B8E7B9D7DBD5C0E7BAC2CCD7BAE7BBE7BCE7BDBCEAC3E5C0C2E7BEE7BFBCA9C088E7C0E7C1E7B6B6D0E7C2C089E7C3E7C4BBBAB5DEC2C6B1E0E7C5D4B5E7C6B8BFE7C8E7C7B7ECC08AE7C9B2F8E7CAE7CBE7CCE7CDE7CEE7CFE7D0D3A7CBF5E7D1E7D2E7D3E7D4C9C9E7D5E7D6E7D7E7D8E7D9BDC9E7DAF3BEC08BB8D7C08CC8B1C08DC08EC08FC090C091C092C093F3BFC094F3C0F3C1C095C096C097C098C099C09AC09BC09CC09DC09EB9DECDF8C09FC0A0D8E8BAB1C140C2DEEEB7C141B7A3C142C143C144C145EEB9C146EEB8B0D5C147C148C149C14AC14BEEBBD5D6D7EFC14CC14DC14ED6C3C14FC150EEBDCAF0C151EEBCC152C153C154C155EEBEC156C157C158C159EEC0C15AC15BEEBFC15CC15DC15EC15FC160C161C162C163D1F2C164C7BCC165C3C0C166C167C168C169C16AB8E1C16BC16CC16DC16EC16FC1E7C170C171F4C6D0DFF4C7C172CFDBC173C174C8BAC175C176F4C8C177C178C179C17AC17BC17CC17DF4C9F4CAC17EF4CBC180C181C182C183C184D9FAB8FEC185C186E5F1D3F0C187F4E0C188CECCC189C18AC18BB3E1C18CC18DC18EC18FF1B4C190D2EEC191F4E1C192C193C194C195C196CFE8F4E2C197C198C7CCC199C19AC19BC19CC19DC19EB5D4B4E4F4E4C19FC1A0C240F4E3F4E5C241C242F4E6C243C244C245C246F4E7C247BAB2B0BFC248F4E8C249C24AC24BC24CC24DC24EC24FB7ADD2EDC250C251C252D2ABC0CFC253BFBCEBA3D5DFEAC8C254C255C256C257F1F3B6F8CBA3C258C259C4CDC25AF1E7C25BF1E8B8FBF1E9BAC4D4C5B0D2C25CC25DF1EAC25EC25FC260F1EBC261F1ECC262C263F1EDF1EEF1EFF1F1F1F0C5D5C264C265C266C267C268C269F1F2C26AB6FAC26BF1F4D2AEDEC7CBCAC26CC26DB3DCC26EB5A2C26FB9A2C270C271C4F4F1F5C272C273F1F6C274C275C276C1C4C1FBD6B0F1F7C277C278C279C27AF1F8C27BC1AAC27CC27DC27EC6B8C280BEDBC281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EF1F9B4CFC28FC290C291C292C293C294F1FAC295C296C297C298C299C29AC29BC29CC29DC29EC29FC2A0C340EDB2EDB1C341C342CBE0D2DEC343CBC1D5D8C344C8E2C345C0DFBCA1C346C347C348C349C34AC34BEBC1C34CC34DD0A4C34ED6E2C34FB6C7B8D8EBC0B8CEC350EBBFB3A6B9C9D6ABC351B7F4B7CAC352C353C354BCE7B7BEEBC6C355EBC7B0B9BFCFC356EBC5D3FDC357EBC8C358C359EBC9C35AC35BB7CEC35CEBC2EBC4C9F6D6D7D5CDD0B2EBCFCEB8EBD0C35DB5A8C35EC35FC360C361C362B1B3EBD2CCA5C363C364C365C366C367C368C369C5D6EBD3C36AEBD1C5DFEBCECAA4EBD5B0FBC36BC36CBAFAC36DC36ED8B7F1E3C36FEBCAEBCBEBCCEBCDEBD6E6C0EBD9C370BFE8D2C8EBD7EBDCB8ECEBD8C371BDBAC372D0D8C373B0B7C374EBDDC4DCC375C376C377C378D6ACC379C37AC37BB4E0C37CC37DC2F6BCB9C37EC380EBDAEBDBD4E0C6EAC4D4EBDFC5A7D9F5C381B2B1C382EBE4C383BDC5C384C385C386EBE2C387C388C389C38AC38BC38CC38DC38EC38FC390C391C392C393EBE3C394C395B8ACC396CDD1EBE5C397C398C399EBE1C39AC1B3C39BC39CC39DC39EC39FC6A2C3A0C440C441C442C443C444C445CCF3C446EBE6C447C0B0D2B8EBE7C448C449C44AB8AFB8ADC44BEBE8C7BBCDF3C44CC44DC44EEBEAEBEBC44FC450C451C452C453EBEDC454C455C456C457D0C8C458EBF2C459EBEEC45AC45BC45CEBF1C8F9C45DD1FCEBECC45EC45FEBE9C460C461C462C463B8B9CFD9C4E5EBEFEBF0CCDACDC8B0F2C464EBF6C465C466C467C468C469EBF5C46AB2B2C46BC46CC46DC46EB8E0C46FEBF7C470C471C472C473C474C475B1ECC476C477CCC5C4A4CFA5C478C479C47AC47BC47CEBF9C47DC47EECA2C480C5F2C481EBFAC482C483C484C485C486C487C488C489C9C5C48AC48BC48CC48DC48EC48FE2DFEBFEC490C491C492C493CDCEECA1B1DBD3B7C494C495D2DCC496C497C498EBFDC499EBFBC49AC49BC49CC49DC49EC49FC4A0C540C541C542C543C544C545C546C547C548C549C54AC54BC54CC54DC54EB3BCC54FC550C551EAB0C552C553D7D4C554F4ABB3F4C555C556C557C558C559D6C1D6C2C55AC55BC55CC55DC55EC55FD5E9BECAC560F4A7C561D2A8F4A8F4A9C562F4AABECBD3DFC563C564C565C566C567C9E0C9E1C568C569F3C2C56ACAE6C56BCCF2C56CC56DC56EC56FC570C571E2B6CBB4C572CEE8D6DBC573F4ADF4AEF4AFC574C575C576C577F4B2C578BABDF4B3B0E3F4B0C579F4B1BDA2B2D5C57AF4B6F4B7B6E6B2B0CFCFF4B4B4ACC57BF4B5C57CC57DF4B8C57EC580C581C582C583F4B9C584C585CDA7C586F4BAC587F4BBC588C589C58AF4BCC58BC58CC58DC58EC58FC590C591C592CBD2C593F4BDC594C595C596C597F4BEC598C599C59AC59BC59CC59DC59EC59FF4BFC5A0C640C641C642C643F4DEC1BCBCE8C644C9ABD1DEE5F5C645C646C647C648DCB3D2D5C649C64ADCB4B0ACDCB5C64BC64CBDDAC64DDCB9C64EC64FC650D8C2C651DCB7D3F3C652C9D6DCBADCB6C653DCBBC3A2C654C655C656C657DCBCDCC5DCBDC658C659CEDFD6A5C65ADCCFC65BDCCDC65CC65DDCD2BDE6C2ABC65EDCB8DCCBDCCEDCBEB7D2B0C5DCC7D0BEDCC1BBA8C65FB7BCDCCCC660C661DCC6DCBFC7DBC662C663C664D1BFDCC0C665C666DCCAC667C668DCD0C669C66ACEADDCC2C66BDCC3DCC8DCC9B2D4DCD1CBD5C66CD4B7DCDBDCDFCCA6DCE6C66DC3E7DCDCC66EC66FBFC1DCD9C670B0FAB9B6DCE5DCD3C671DCC4DCD6C8F4BFE0C672C673C674C675C9BBC676C677C678B1BDC679D3A2C67AC67BDCDAC67CC67DDCD5C67EC6BBC680DCDEC681C682C683C684C685D7C2C3AFB7B6C7D1C3A9DCE2DCD8DCEBDCD4C686C687DCDDC688BEA5DCD7C689DCE0C68AC68BDCE3DCE4C68CDCF8C68DC68EDCE1DDA2DCE7C68FC690C691C692C693C694C695C696C697C698BCEBB4C4C699C69AC3A3B2E7DCFAC69BDCF2C69CDCEFC69DDCFCDCEED2F0B2E8C69EC8D7C8E3DCFBC69FDCEDC6A0C740C741DCF7C742C743DCF5C744C745BEA3DCF4C746B2DDC747C748C749C74AC74BDCF3BCF6DCE8BBC4C74CC0F3C74DC74EC74FC750C751BCD4DCE9DCEAC752DCF1DCF6DCF9B5B4C753C8D9BBE7DCFEDCFDD3ABDDA1DDA3DDA5D2F1DDA4DDA6DDA7D2A9C754C755C756C757C758C759C75ABAC9DDA9C75BC75CDDB6DDB1DDB4C75DC75EC75FC760C761C762C763DDB0C6CEC764C765C0F2C766C767C768C769C9AFC76AC76BC76CDCECDDAEC76DC76EC76FC770DDB7C771C772DCF0DDAFC773DDB8C774DDACC775C776C777C778C779C77AC77BDDB9DDB3DDADC4AAC77CC77DC77EC780DDA8C0B3C1ABDDAADDABC781DDB2BBF1DDB5D3A8DDBAC782DDBBC3A7C783C784DDD2DDBCC785C786C787DDD1C788B9BDC789C78ABED5C78BBEFAC78CC78DBACAC78EC78FC790C791DDCAC792DDC5C793DDBFC794C795C796B2CBDDC3C797DDCBB2A4DDD5C798C799C79ADDBEC79BC79CC79DC6D0DDD0C79EC79FC7A0C840C841DDD4C1E2B7C6C842C843C844C845C846DDCEDDCFC847C848C849DDC4C84AC84BC84CDDBDC84DDDCDCCD1C84EDDC9C84FC850C851C852DDC2C3C8C6BCCEAEDDCCC853DDC8C854C855C856C857C858C859DDC1C85AC85BC85CDDC6C2DCC85DC85EC85FC860C861C862D3A9D3AADDD3CFF4C8F8C863C864C865C866C867C868C869C86ADDE6C86BC86CC86DC86EC86FC870DDC7C871C872C873DDE0C2E4C874C875C876C877C878C879C87AC87BDDE1C87CC87DC87EC880C881C882C883C884C885C886DDD7C887C888C889C88AC88BD6F8C88CDDD9DDD8B8F0DDD6C88DC88EC88FC890C6CFC891B6ADC892C893C894C895C896DDE2C897BAF9D4E1DDE7C898C899C89AB4D0C89BDDDAC89CBFFBDDE3C89DDDDFC89EDDDDC89FC8A0C940C941C942C943C944B5D9C945C946C947C948DDDBDDDCDDDEC949BDAFDDE4C94ADDE5C94BC94CC94DC94EC94FC950C951C952DDF5C953C3C9C954C955CBE2C956C957C958C959DDF2C95AC95BC95CC95DC95EC95FC960C961C962C963C964C965C966D8E1C967C968C6D1C969DDF4C96AC96BC96CD5F4DDF3DDF0C96DC96EDDECC96FDDEFC970DDE8C971C972D0EEC973C974C975C976C8D8DDEEC977C978DDE9C979C97ADDEACBF2C97BDDEDC97CC97DB1CDC97EC980C981C982C983C984C0B6C985BCBBDDF1C986C987DDF7C988DDF6DDEBC989C98AC98BC98CC98DC5EEC98EC98FC990DDFBC991C992C993C994C995C996C997C998C999C99AC99BDEA4C99CC99DDEA3C99EC99FC9A0CA40CA41CA42CA43CA44CA45CA46CA47CA48DDF8CA49CA4ACA4BCA4CC3EFCA4DC2FBCA4ECA4FCA50D5E1CA51CA52CEB5CA53CA54CA55CA56DDFDCA57B2CCCA58CA59CA5ACA5BCA5CCA5DCA5ECA5FCA60C4E8CADFCA61CA62CA63CA64CA65CA66CA67CA68CA69CA6AC7BEDDFADDFCDDFEDEA2B0AAB1CECA6BCA6CCA6DCA6ECA6FDEACCA70CA71CA72CA73DEA6BDB6C8EFCA74CA75CA76CA77CA78CA79CA7ACA7BCA7CCA7DCA7EDEA1CA80CA81DEA5CA82CA83CA84CA85DEA9CA86CA87CA88CA89CA8ADEA8CA8BCA8CCA8DDEA7CA8ECA8FCA90CA91CA92CA93CA94CA95CA96DEADCA97D4CCCA98CA99CA9ACA9BDEB3DEAADEAECA9CCA9DC0D9CA9ECA9FCAA0CB40CB41B1A1DEB6CB42DEB1CB43CB44CB45CB46CB47CB48CB49DEB2CB4ACB4BCB4CCB4DCB4ECB4FCB50CB51CB52CB53CB54D1A6DEB5CB55CB56CB57CB58CB59CB5ACB5BDEAFCB5CCB5DCB5EDEB0CB5FD0BDCB60CB61CB62DEB4CAEDDEB9CB63CB64CB65CB66CB67CB68DEB8CB69DEB7CB6ACB6BCB6CCB6DCB6ECB6FCB70DEBBCB71CB72CB73CB74CB75CB76CB77BDE5CB78CB79CB7ACB7BCB7CB2D8C3EACB7DCB7EDEBACB80C5BACB81CB82CB83CB84CB85CB86DEBCCB87CB88CB89CB8ACB8BCB8CCB8DCCD9CB8ECB8FCB90CB91B7AACB92CB93CB94CB95CB96CB97CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FCBA0CC40CC41D4E5CC42CC43CC44DEBDCC45CC46CC47CC48CC49DEBFCC4ACC4BCC4CCC4DCC4ECC4FCC50CC51CC52CC53CC54C4A2CC55CC56CC57CC58DEC1CC59CC5ACC5BCC5CCC5DCC5ECC5FCC60CC61CC62CC63CC64CC65CC66CC67CC68DEBECC69DEC0CC6ACC6BCC6CCC6DCC6ECC6FCC70CC71CC72CC73CC74CC75CC76CC77D5BACC78CC79CC7ADEC2CC7BCC7CCC7DCC7ECC80CC81CC82CC83CC84CC85CC86CC87CC88CC89CC8ACC8BF2AEBBA2C2B2C5B0C2C7CC8CCC8DF2AFCC8ECC8FCC90CC91CC92D0E9CC93CC94CC95D3DDCC96CC97CC98EBBDCC99CC9ACC9BCC9CCC9DCC9ECC9FCCA0B3E6F2B0CD40F2B1CD41CD42CAADCD43CD44CD45CD46CD47CD48CD49BAE7F2B3F2B5F2B4CBE4CFBAF2B2CAB4D2CFC2ECCD4ACD4BCD4CCD4DCD4ECD4FCD50CEC3F2B8B0F6F2B7CD51CD52CD53CD54CD55F2BECD56B2CFCD57CD58CD59CD5ACD5BCD5CD1C1F2BACD5DCD5ECD5FCD60CD61F2BCD4E9CD62CD63F2BBF2B6F2BFF2BDCD64F2B9CD65CD66F2C7F2C4F2C6CD67CD68F2CAF2C2F2C0CD69CD6ACD6BF2C5CD6CCD6DCD6ECD6FCD70D6FBCD71CD72CD73F2C1CD74C7F9C9DFCD75F2C8B9C6B5B0CD76CD77F2C3F2C9F2D0F2D6CD78CD79BBD7CD7ACD7BCD7CF2D5CDDCCD7DD6EBCD7ECD80F2D2F2D4CD81CD82CD83CD84B8F2CD85CD86CD87CD88F2CBCD89CD8ACD8BF2CEC2F9CD8CD5DDF2CCF2CDF2CFF2D3CD8DCD8ECD8FF2D9D3BCCD90CD91CD92CD93B6EACD94CAF1CD95B7E4F2D7CD96CD97CD98F2D8F2DAF2DDF2DBCD99CD9AF2DCCD9BCD9CCD9DCD9ED1D1F2D1CD9FCDC9CDA0CECFD6A9CE40F2E3CE41C3DBCE42F2E0CE43CE44C0AFF2ECF2DECE45F2E1CE46CE47CE48F2E8CE49CE4ACE4BCE4CF2E2CE4DCE4EF2E7CE4FCE50F2E6CE51CE52F2E9CE53CE54CE55F2DFCE56CE57F2E4F2EACE58CE59CE5ACE5BCE5CCE5DCE5ED3ACF2E5B2F5CE5FCE60F2F2CE61D0ABCE62CE63CE64CE65F2F5CE66CE67CE68BBC8CE69F2F9CE6ACE6BCE6CCE6DCE6ECE6FF2F0CE70CE71F2F6F2F8F2FACE72CE73CE74CE75CE76CE77CE78CE79F2F3CE7AF2F1CE7BCE7CCE7DBAFBCE7EB5FBCE80CE81CE82CE83F2EFF2F7F2EDF2EECE84CE85CE86F2EBF3A6CE87F3A3CE88CE89F3A2CE8ACE8BF2F4CE8CC8DACE8DCE8ECE8FCE90CE91F2FBCE92CE93CE94F3A5CE95CE96CE97CE98CE99CE9ACE9BC3F8CE9CCE9DCE9ECE9FCEA0CF40CF41CF42F2FDCF43CF44F3A7F3A9F3A4CF45F2FCCF46CF47CF48F3ABCF49F3AACF4ACF4BCF4CCF4DC2DDCF4ECF4FF3AECF50CF51F3B0CF52CF53CF54CF55CF56F3A1CF57CF58CF59F3B1F3ACCF5ACF5BCF5CCF5DCF5EF3AFF2FEF3ADCF5FCF60CF61CF62CF63CF64CF65F3B2CF66CF67CF68CF69F3B4CF6ACF6BCF6CCF6DF3A8CF6ECF6FCF70CF71F3B3CF72CF73CF74F3B5CF75CF76CF77CF78CF79CF7ACF7BCF7CCF7DCF7ED0B7CF80CF81CF82CF83F3B8CF84CF85CF86CF87D9F9CF88CF89CF8ACF8BCF8CCF8DF3B9CF8ECF8FCF90CF91CF92CF93CF94CF95F3B7CF96C8E4F3B6CF97CF98CF99CF9AF3BACF9BCF9CCF9DCF9ECF9FF3BBB4C0CFA0D040D041D042D043D044D045D046D047D048D049D04AD04BD04CD04DEEC3D04ED04FD050D051D052D053F3BCD054D055F3BDD056D057D058D1AAD059D05AD05BF4ACD0C6D05CD05DD05ED05FD060D061D0D0D1DCD062D063D064D065D066D067CFCED068D069BDD6D06AD1C3D06BD06CD06DD06ED06FD070D071BAE2E1E9D2C2F1C2B2B9D072D073B1EDF1C3D074C9C0B3C4D075D9F2D076CBA5D077F1C4D078D079D07AD07BD6D4D07CD07DD07ED080D081F1C5F4C0F1C6D082D4ACF1C7D083B0C0F4C1D084D085F4C2D086D087B4FCD088C5DBD089D08AD08BD08CCCBBD08DD08ED08FD0E4D090D091D092D093D094CDE0D095D096D097D098D099F1C8D09AD9F3D09BD09CD09DD09ED09FD0A0B1BBD140CFAED141D142D143B8A4D144D145D146D147D148F1CAD149D14AD14BD14CF1CBD14DD14ED14FD150B2C3C1D1D151D152D7B0F1C9D153D154F1CCD155D156D157D158F1CED159D15AD15BD9F6D15CD2E1D4A3D15DD15EF4C3C8B9D15FD160D161D162D163F4C4D164D165F1CDF1CFBFE3F1D0D166D167F1D4D168D169D16AD16BD16CD16DD16EF1D6F1D1D16FC9D1C5E1D170D171D172C2E3B9FCD173D174F1D3D175F1D5D176D177D178B9D3D179D17AD17BD17CD17DD17ED180F1DBD181D182D183D184D185BAD6D186B0FDF1D9D187D188D189D18AD18BF1D8F1D2F1DAD18CD18DD18ED18FD190F1D7D191D192D193C8ECD194D195D196D197CDCAF1DDD198D199D19AD19BE5BDD19CD19DD19EF1DCD19FF1DED1A0D240D241D242D243D244D245D246D247D248F1DFD249D24ACFE5D24BD24CD24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25BD25CD25DD25ED25FD260D261D262D263F4C5BDF3D264D265D266D267D268D269F1E0D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277D278D279D27AD27BD27CD27DF1E1D27ED280D281CEF7D282D2AAD283F1FBD284D285B8B2D286D287D288D289D28AD28BD28CD28DD28ED28FD290D291D292D293D294D295D296D297D298D299D29AD29BD29CD29DD29ED29FD2A0D340D341D342D343D344D345D346D347D348D349D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358D359D35AD35BD35CD35DD35EBCFBB9DBD35FB9E6C3D9CAD3EAE8C0C0BEF5EAE9EAEAEAEBD360EAECEAEDEAEEEAEFBDC7D361D362D363F5FBD364D365D366F5FDD367F5FED368F5FCD369D36AD36BD36CBDE2D36DF6A1B4A5D36ED36FD370D371F6A2D372D373D374F6A3D375D376D377ECB2D378D379D37AD37BD37CD37DD37ED380D381D382D383D384D1D4D385D386D387D388D389D38AD9EAD38BD38CD38DD38ED38FD390D391D392D393D394D395D396D397D398D399D39AD39BD39CD39DD39ED39FD3A0D440D441D442D443D444D445D446D447D448D449D44AD44BD44CD44DD44ED44FD450D451D452D453D454D455D456D457D458D459D45AD45BD45CD45DD45ED45FF6A4D460D461D462D463D464D465D466D467D468EEBAD469D46AD46BD46CD46DD46ED46FD470D471D472D473D474D475D476D477D478D479D47AD47BD47CD47DD47ED480D481D482D483D484D485D486D487D488D489D48AD48BD48CD48DD48ED48FD490D491D492D493D494D495D496D497D498D499D5B2D49AD49BD49CD49DD49ED49FD4A0D540D541D542D543D544D545D546D547D3FECCDCD548D549D54AD54BD54CD54DD54ED54FCAC4D550D551D552D553D554D555D556D557D558D559D55AD55BD55CD55DD55ED55FD560D561D562D563D564D565D566D567D568D569D56AD56BD56CD56DD56ED56FD570D571D572D573D574D575D576D577D578D579D57AD57BD57CD57DD57ED580D581D582D583D584D585D586D587D588D589D58AD58BD58CD58DD58ED58FD590D591D592D593D594D595D596D597D598D599D59AD59BD59CD59DD59ED59FD5A0D640D641D642D643D644D645D646D647D648D649D64AD64BD64CD64DD64ED64FD650D651D652D653D654D655D656D657D658D659D65AD65BD65CD65DD65ED65FD660D661D662E5C0D663D664D665D666D667D668D669D66AD66BD66CD66DD66ED66FD670D671D672D673D674D675D676D677D678D679D67AD67BD67CD67DD67ED680D681F6A5D682D683D684D685D686D687D688D689D68AD68BD68CD68DD68ED68FD690D691D692D693D694D695D696D697D698D699D69AD69BD69CD69DD69ED69FD6A0D740D741D742D743D744D745D746D747D748D749D74AD74BD74CD74DD74ED74FD750D751D752D753D754D755D756D757D758D759D75AD75BD75CD75DD75ED75FBEAFD760D761D762D763D764C6A9D765D766D767D768D769D76AD76BD76CD76DD76ED76FD770D771D772D773D774D775D776D777D778D779D77AD77BD77CD77DD77ED780D781D782D783D784D785D786D787D788D789D78AD78BD78CD78DD78ED78FD790D791D792D793D794D795D796D797D798DAA5BCC6B6A9B8BCC8CFBCA5DAA6DAA7CCD6C8C3DAA8C6FDD799D1B5D2E9D1B6BCC7D79ABDB2BBE4DAA9DAAAD1C8DAABD0EDB6EFC2DBD79BCBCFB7EDC9E8B7C3BEF7D6A4DAACDAADC6C0D7E7CAB6D79CD5A9CBDFD5EFDAAED6DFB4CADAB0DAAFD79DD2EBDAB1DAB2DAB3CAD4DAB4CAABDAB5DAB6B3CFD6EFDAB7BBB0B5AEDAB8DAB9B9EED1AFD2E8DABAB8C3CFEAB2EFDABBDABCD79EBDEBCEDCD3EFDABDCEF3DABED3D5BBE5DABFCBB5CBD0DAC0C7EBD6EEDAC1C5B5B6C1DAC2B7CCBFCEDAC3DAC4CBADDAC5B5F7DAC6C1C2D7BBDAC7CCB8D79FD2EAC4B1DAC8B5FDBBD1DAC9D0B3DACADACBCEBDDACCDACDDACEB2F7DAD1DACFD1E8DAD0C3D5DAD2D7A0DAD3DAD4DAD5D0BBD2A5B0F9DAD6C7ABDAD7BDF7C3A1DAD8DAD9C3FDCCB7DADADADBC0BEC6D7DADCDADDC7B4DADEDADFB9C8D840D841D842D843D844D845D846D847D848BBEDD849D84AD84BD84CB6B9F4F8D84DF4F9D84ED84FCDE3D850D851D852D853D854D855D856D857F5B9D858D859D85AD85BEBE0D85CD85DD85ED85FD860D861CFF3BBBFD862D863D864D865D866D867D868BAC0D4A5D869D86AD86BD86CD86DD86ED86FE1D9D870D871D872D873F5F4B1AAB2F2D874D875D876D877D878D879D87AF5F5D87BD87CF5F7D87DD87ED880BAD1F5F6D881C3B2D882D883D884D885D886D887D888F5F9D889D88AD88BF5F8D88CD88DD88ED88FD890D891D892D893D894D895D896D897D898D899D89AD89BD89CD89DD89ED89FD8A0D940D941D942D943D944D945D946D947D948D949D94AD94BD94CD94DD94ED94FD950D951D952D953D954D955D956D957D958D959D95AD95BD95CD95DD95ED95FD960D961D962D963D964D965D966D967D968D969D96AD96BD96CD96DD96ED96FD970D971D972D973D974D975D976D977D978D979D97AD97BD97CD97DD97ED980D981D982D983D984D985D986D987D988D989D98AD98BD98CD98DD98ED98FD990D991D992D993D994D995D996D997D998D999D99AD99BD99CD99DD99ED99FD9A0DA40DA41DA42DA43DA44DA45DA46DA47DA48DA49DA4ADA4BDA4CDA4DDA4EB1B4D5EAB8BADA4FB9B1B2C6D4F0CFCDB0DCD5CBBBF5D6CAB7B7CCB0C6B6B1E1B9BAD6FCB9E1B7A1BCFAEADAEADBCCF9B9F3EADCB4FBC3B3B7D1BAD8EADDD4F4EADEBCD6BBDFEADFC1DEC2B8D4DFD7CAEAE0EAE1EAE4EAE2EAE3C9DEB8B3B6C4EAE5CAEAC9CDB4CDDA50DA51E2D9C5E2EAE6C0B5DA52D7B8EAE7D7ACC8FCD8D3D8CDD4DEDA53D4F9C9C4D3AEB8D3B3E0DA54C9E2F4F6DA55DA56DA57BAD5DA58F4F7DA59DA5AD7DFDA5BDA5CF4F1B8B0D5D4B8CFC6F0DA5DDA5EDA5FDA60DA61DA62DA63DA64DA65B3C3DA66DA67F4F2B3ACDA68DA69DA6ADA6BD4BDC7F7DA6CDA6DDA6EDA6FDA70F4F4DA71DA72F4F3DA73DA74DA75DA76DA77DA78DA79DA7ADA7BDA7CCCCBDA7DDA7EDA80C8A4DA81DA82DA83DA84DA85DA86DA87DA88DA89DA8ADA8BDA8CDA8DF4F5DA8ED7E3C5BFF5C0DA8FDA90F5BBDA91F5C3DA92F5C2DA93D6BAF5C1DA94DA95DA96D4BEF5C4DA97F5CCDA98DA99DA9ADA9BB0CFB5F8DA9CF5C9F5CADA9DC5DCDA9EDA9FDAA0DB40F5C5F5C6DB41DB42F5C7F5CBDB43BEE0F5C8B8FADB44DB45DB46F5D0F5D3DB47DB48DB49BFE7DB4AB9F2F5BCF5CDDB4BDB4CC2B7DB4DDB4EDB4FCCF8DB50BCF9DB51F5CEF5CFF5D1B6E5F5D2DB52F5D5DB53DB54DB55DB56DB57DB58DB59F5BDDB5ADB5BDB5CF5D4D3BBDB5DB3ECDB5EDB5FCCA4DB60DB61DB62DB63F5D6DB64DB65DB66DB67DB68DB69DB6ADB6BF5D7BEE1F5D8DB6CDB6DCCDFF5DBDB6EDB6FDB70DB71DB72B2C8D7D9DB73F5D9DB74F5DAF5DCDB75F5E2DB76DB77DB78F5E0DB79DB7ADB7BF5DFF5DDDB7CDB7DF5E1DB7EDB80F5DEF5E4F5E5DB81CCE3DB82DB83E5BFB5B8F5E3F5E8CCA3DB84DB85DB86DB87DB88F5E6F5E7DB89DB8ADB8BDB8CDB8DDB8EF5BEDB8FDB90DB91DB92DB93DB94DB95DB96DB97DB98DB99DB9AB1C4DB9BDB9CF5BFDB9DDB9EB5C5B2E4DB9FF5ECF5E9DBA0B6D7DC40F5EDDC41F5EADC42DC43DC44DC45DC46F5EBDC47DC48B4DADC49D4EADC4ADC4BDC4CF5EEDC4DB3F9DC4EDC4FDC50DC51DC52DC53DC54F5EFF5F1DC55DC56DC57F5F0DC58DC59DC5ADC5BDC5CDC5DDC5EF5F2DC5FF5F3DC60DC61DC62DC63DC64DC65DC66DC67DC68DC69DC6ADC6BC9EDB9AADC6CDC6DC7FBDC6EDC6FB6E3DC70DC71DC72DC73DC74DC75DC76CCC9DC77DC78DC79DC7ADC7BDC7CDC7DDC7EDC80DC81DC82DC83DC84DC85DC86DC87DC88DC89DC8AEAA6DC8BDC8CDC8DDC8EDC8FDC90DC91DC92DC93DC94DC95DC96DC97DC98DC99DC9ADC9BDC9CDC9DDC9EDC9FDCA0DD40DD41DD42DD43DD44DD45DD46DD47DD48DD49DD4ADD4BDD4CDD4DDD4EDD4FDD50DD51DD52DD53DD54DD55DD56DD57DD58DD59DD5ADD5BDD5CDD5DDD5EDD5FDD60DD61DD62DD63DD64DD65DD66DD67DD68DD69DD6ADD6BDD6CDD6DDD6EDD6FDD70DD71DD72DD73DD74DD75DD76DD77DD78DD79DD7ADD7BDD7CDD7DDD7EDD80DD81DD82DD83DD84DD85DD86DD87DD88DD89DD8ADD8BDD8CDD8DDD8EDD8FDD90DD91DD92DD93DD94DD95DD96DD97DD98DD99DD9ADD9BDD9CDD9DDD9EDD9FDDA0DE40DE41DE42DE43DE44DE45DE46DE47DE48DE49DE4ADE4BDE4CDE4DDE4EDE4FDE50DE51DE52DE53DE54DE55DE56DE57DE58DE59DE5ADE5BDE5CDE5DDE5EDE5FDE60B3B5D4FEB9ECD0F9DE61E9EDD7AAE9EEC2D6C8EDBAE4E9EFE9F0E9F1D6E1E9F2E9F3E9F5E9F4E9F6E9F7C7E1E9F8D4D8E9F9BDCEDE62E9FAE9FBBDCFE9FCB8A8C1BEE9FDB1B2BBD4B9F5E9FEDE63EAA1EAA2EAA3B7F8BCADDE64CAE4E0CED4AFCFBDD5B7EAA4D5DEEAA5D0C1B9BCDE65B4C7B1D9DE66DE67DE68C0B1DE69DE6ADE6BDE6CB1E6B1E7DE6DB1E8DE6EDE6FDE70DE71B3BDC8E8DE72DE73DE74DE75E5C1DE76DE77B1DFDE78DE79DE7AC1C9B4EFDE7BDE7CC7A8D3D8DE7DC6F9D1B8DE7EB9FDC2F5DE80DE81DE82DE83DE84D3ADDE85D4CBBDFCDE86E5C2B7B5E5C3DE87DE88BBB9D5E2DE89BDF8D4B6CEA5C1ACB3D9DE8ADE8BCCF6DE8CE5C6E5C4E5C8DE8DE5CAE5C7B5CFC6C8DE8EB5FCE5C5DE8FCAF6DE90DE91E5C9DE92DE93DE94C3D4B1C5BCA3DE95DE96DE97D7B7DE98DE99CDCBCBCDCACACCD3E5CCE5CBC4E6DE9ADE9BD1A1D1B7E5CDDE9CE5D0DE9DCDB8D6F0E5CFB5DDDE9ECDBEDE9FE5D1B6BADEA0DF40CDA8B9E4DF41CAC5B3D1CBD9D4ECE5D2B7EADF42DF43DF44E5CEDF45DF46DF47DF48DF49DF4AE5D5B4FEE5D6DF4BDF4CDF4DDF4EDF4FE5D3E5D4DF50D2DDDF51DF52C2DFB1C6DF53D3E2DF54DF55B6DDCBECDF56E5D7DF57DF58D3F6DF59DF5ADF5BDF5CDF5DB1E9DF5EB6F4E5DAE5D8E5D9B5C0DF5FDF60DF61D2C5E5DCDF62DF63E5DEDF64DF65DF66DF67DF68DF69E5DDC7B2DF6AD2A3DF6BDF6CE5DBDF6DDF6EDF6FDF70D4E2D5DADF71DF72DF73DF74DF75E5E0D7F1DF76DF77DF78DF79DF7ADF7BDF7CE5E1DF7DB1DCD1FBDF7EE5E2E5E4DF80DF81DF82DF83E5E3DF84DF85E5E5DF86DF87DF88DF89DF8AD2D8DF8BB5CBDF8CE7DFDF8DDAF5DF8EDAF8DF8FDAF6DF90DAF7DF91DF92DF93DAFAD0CFC4C7DF94DF95B0EEDF96DF97DF98D0B0DF99DAF9DF9AD3CABAAADBA2C7F1DF9BDAFCDAFBC9DBDAFDDF9CDBA1D7DEDAFEC1DADF9DDF9EDBA5DF9FDFA0D3F4E040E041DBA7DBA4E042DBA8E043E044BDBCE045E046E047C0C9DBA3DBA6D6A3E048DBA9E049E04AE04BDBADE04CE04DE04EDBAEDBACBAC2E04FE050E051BFA4DBABE052E053E054DBAAD4C7B2BFE055E056DBAFE057B9F9E058DBB0E059E05AE05BE05CB3BBE05DE05EE05FB5A6E060E061E062E063B6BCDBB1E064E065E066B6F5E067DBB2E068E069E06AE06BE06CE06DE06EE06FE070E071E072E073E074E075E076E077E078E079E07AE07BB1C9E07CE07DE07EE080DBB4E081E082E083DBB3DBB5E084E085E086E087E088E089E08AE08BE08CE08DE08EDBB7E08FDBB6E090E091E092E093E094E095E096DBB8E097E098E099E09AE09BE09CE09DE09EE09FDBB9E0A0E140DBBAE141E142D3CFF4FAC7F5D7C3C5E4F4FCF4FDF4FBE143BEC6E144E145E146E147D0EFE148E149B7D3E14AE14BD4CDCCAAE14CE14DF5A2F5A1BAA8F4FECBD6E14EE14FE150F5A4C0D2E151B3EAE152CDAAF5A5F5A3BDB4F5A8E153F5A9BDCDC3B8BFE1CBE1F5AAE154E155E156F5A6F5A7C4F0E157E158E159E15AE15BF5ACE15CB4BCE15DD7EDE15EB4D7F5ABF5AEE15FE160F5ADF5AFD0D1E161E162E163E164E165E166E167C3D1C8A9E168E169E16AE16BE16CE16DF5B0F5B1E16EE16FE170E171E172E173F5B2E174E175F5B3F5B4F5B5E176E177E178E179F5B7F5B6E17AE17BE17CE17DF5B8E17EE180E181E182E183E184E185E186E187E188E189E18AB2C9E18BD3D4CACDE18CC0EFD6D8D2B0C1BFE18DBDF0E18EE18FE190E191E192E193E194E195E196E197B8AAE198E199E19AE19BE19CE19DE19EE19FE1A0E240E241E242E243E244E245E246E247E248E249E24AE24BE24CE24DE24EE24FE250E251E252E253E254E255E256E257E258E259E25AE25BE25CE25DE25EE25FE260E261E262E263E264E265E266E267E268E269E26AE26BE26CE26DE26EE26FE270E271E272E273E274E275E276E277E278E279E27AE27BE27CE27DE27EE280E281E282E283E284E285E286E287E288E289E28AE28BE28CE28DE28EE28FE290E291E292E293E294E295E296E297E298E299E29AE29BE29CE29DE29EE29FE2A0E340E341E342E343E344E345E346E347E348E349E34AE34BE34CE34DE34EE34FE350E351E352E353E354E355E356E357E358E359E35AE35BE35CE35DE35EE35FE360E361E362E363E364E365E366E367E368E369E36AE36BE36CE36DBCF8E36EE36FE370E371E372E373E374E375E376E377E378E379E37AE37BE37CE37DE37EE380E381E382E383E384E385E386E387F6C6E388E389E38AE38BE38CE38DE38EE38FE390E391E392E393E394E395E396E397E398E399E39AE39BE39CE39DE39EE39FE3A0E440E441E442E443E444E445F6C7E446E447E448E449E44AE44BE44CE44DE44EE44FE450E451E452E453E454E455E456E457E458E459E45AE45BE45CE45DE45EF6C8E45FE460E461E462E463E464E465E466E467E468E469E46AE46BE46CE46DE46EE46FE470E471E472E473E474E475E476E477E478E479E47AE47BE47CE47DE47EE480E481E482E483E484E485E486E487E488E489E48AE48BE48CE48DE48EE48FE490E491E492E493E494E495E496E497E498E499E49AE49BE49CE49DE49EE49FE4A0E540E541E542E543E544E545E546E547E548E549E54AE54BE54CE54DE54EE54FE550E551E552E553E554E555E556E557E558E559E55AE55BE55CE55DE55EE55FE560E561E562E563E564E565E566E567E568E569E56AE56BE56CE56DE56EE56FE570E571E572E573F6C9E574E575E576E577E578E579E57AE57BE57CE57DE57EE580E581E582E583E584E585E586E587E588E589E58AE58BE58CE58DE58EE58FE590E591E592E593E594E595E596E597E598E599E59AE59BE59CE59DE59EE59FF6CAE5A0E640E641E642E643E644E645E646E647E648E649E64AE64BE64CE64DE64EE64FE650E651E652E653E654E655E656E657E658E659E65AE65BE65CE65DE65EE65FE660E661E662F6CCE663E664E665E666E667E668E669E66AE66BE66CE66DE66EE66FE670E671E672E673E674E675E676E677E678E679E67AE67BE67CE67DE67EE680E681E682E683E684E685E686E687E688E689E68AE68BE68CE68DE68EE68FE690E691E692E693E694E695E696E697E698E699E69AE69BE69CE69DF6CBE69EE69FE6A0E740E741E742E743E744E745E746E747F7E9E748E749E74AE74BE74CE74DE74EE74FE750E751E752E753E754E755E756E757E758E759E75AE75BE75CE75DE75EE75FE760E761E762E763E764E765E766E767E768E769E76AE76BE76CE76DE76EE76FE770E771E772E773E774E775E776E777E778E779E77AE77BE77CE77DE77EE780E781E782E783E784E785E786E787E788E789E78AE78BE78CE78DE78EE78FE790E791E792E793E794E795E796E797E798E799E79AE79BE79CE79DE79EE79FE7A0E840E841E842E843E844E845E846E847E848E849E84AE84BE84CE84DE84EF6CDE84FE850E851E852E853E854E855E856E857E858E859E85AE85BE85CE85DE85EE85FE860E861E862E863E864E865E866E867E868E869E86AE86BE86CE86DE86EE86FE870E871E872E873E874E875E876E877E878E879E87AF6CEE87BE87CE87DE87EE880E881E882E883E884E885E886E887E888E889E88AE88BE88CE88DE88EE88FE890E891E892E893E894EEC4EEC5EEC6D5EBB6A4EEC8EEC7EEC9EECAC7A5EECBEECCE895B7B0B5F6EECDEECFE896EECEE897B8C6EED0EED1EED2B6DBB3AED6D3C4C6B1B5B8D6EED3EED4D4BFC7D5BEFBCED9B9B3EED6EED5EED8EED7C5A5EED9EEDAC7AEEEDBC7AFEEDCB2A7EEDDEEDEEEDFEEE0EEE1D7EAEEE2EEE3BCD8EEE4D3CBCCFAB2ACC1E5EEE5C7A6C3ADE898EEE6EEE7EEE8EEE9EEEAEEEBEEECE899EEEDEEEEEEEFE89AE89BEEF0EEF1EEF2EEF4EEF3E89CEEF5CDADC2C1EEF6EEF7EEF8D5A1EEF9CFB3EEFAEEFBE89DEEFCEEFDEFA1EEFEEFA2B8F5C3FAEFA3EFA4BDC2D2BFB2F9EFA5EFA6EFA7D2F8EFA8D6FDEFA9C6CCE89EEFAAEFABC1B4EFACCFFACBF8EFAEEFADB3FAB9F8EFAFEFB0D0E2EFB1EFB2B7E6D0BFEFB3EFB4EFB5C8F1CCE0EFB6EFB7EFB8EFB9EFBAD5E0EFBBB4EDC3AAEFBCE89FEFBDEFBEEFBFE8A0CEFDEFC0C2E0B4B8D7B6BDF5E940CFC7EFC3EFC1EFC2EFC4B6A7BCFCBEE2C3CCEFC5EFC6E941EFC7EFCFEFC8EFC9EFCAC7C2EFF1B6CDEFCBE942EFCCEFCDB6C6C3BEEFCEE943EFD0EFD1EFD2D5F2E944EFD3C4F7E945EFD4C4F8EFD5EFD6B8E4B0F7EFD7EFD8EFD9E946EFDAEFDBEFDCEFDDE947EFDEBEB5EFE1EFDFEFE0E948EFE2EFE3C1CDEFE4EFE5EFE6EFE7EFE8EFE9EFEAEFEBEFECC0D8E949EFEDC1ADEFEEEFEFEFF0E94AE94BCFE2E94CE94DE94EE94FE950E951E952E953B3A4E954E955E956E957E958E959E95AE95BE95CE95DE95EE95FE960E961E962E963E964E965E966E967E968E969E96AE96BE96CE96DE96EE96FE970E971E972E973E974E975E976E977E978E979E97AE97BE97CE97DE97EE980E981E982E983E984E985E986E987E988E989E98AE98BE98CE98DE98EE98FE990E991E992E993E994E995E996E997E998E999E99AE99BE99CE99DE99EE99FE9A0EA40EA41EA42EA43EA44EA45EA46EA47EA48EA49EA4AEA4BEA4CEA4DEA4EEA4FEA50EA51EA52EA53EA54EA55EA56EA57EA58EA59EA5AEA5BC3C5E3C5C9C1E3C6EA5CB1D5CECAB4B3C8F2E3C7CFD0E3C8BCE4E3C9E3CAC3C6D5A2C4D6B9EBCEC5E3CBC3F6E3CCEA5DB7A7B8F3BAD2E3CDE3CED4C4E3CFEA5EE3D0D1CBE3D1E3D2E3D3E3D4D1D6E3D5B2FBC0BBE3D6EA5FC0ABE3D7E3D8E3D9EA60E3DAE3DBEA61B8B7DAE2EA62B6D3EA63DAE4DAE3EA64EA65EA66EA67EA68EA69EA6ADAE6EA6BEA6CEA6DC8EEEA6EEA6FDAE5B7C0D1F4D2F5D5F3BDD7EA70EA71EA72EA73D7E8DAE8DAE7EA74B0A2CDD3EA75DAE9EA76B8BDBCCAC2BDC2A4B3C2DAEAEA77C2AAC4B0BDB5EA78EA79CFDEEA7AEA7BEA7CDAEBC9C2EA7DEA7EEA80EA81EA82B1DDEA83EA84EA85DAECEA86B6B8D4BAEA87B3FDEA88EA89DAEDD4C9CFD5C5E3EA8ADAEEEA8BEA8CEA8DEA8EEA8FDAEFEA90DAF0C1EACCD5CFDDEA91EA92EA93EA94EA95EA96EA97EA98EA99EA9AEA9BEA9CEA9DD3E7C2A1EA9EDAF1EA9FEAA0CBE5EB40DAF2EB41CBE6D2FEEB42EB43EB44B8F4EB45EB46DAF3B0AFCFB6EB47EB48D5CFEB49EB4AEB4BEB4CEB4DEB4EEB4FEB50EB51EB52CBEDEB53EB54EB55EB56EB57EB58EB59EB5ADAF4EB5BEB5CE3C4EB5DEB5EC1A5EB5FEB60F6BFEB61EB62F6C0F6C1C4D1EB63C8B8D1E3EB64EB65D0DBD1C5BCAFB9CDEB66EFF4EB67EB68B4C6D3BAF6C2B3FBEB69EB6AF6C3EB6BEB6CB5F1EB6DEB6EEB6FEB70EB71EB72EB73EB74EB75EB76F6C5EB77EB78EB79EB7AEB7BEB7CEB7DD3EAF6A7D1A9EB7EEB80EB81EB82F6A9EB83EB84EB85F6A8EB86EB87C1E3C0D7EB88B1A2EB89EB8AEB8BEB8CCEEDEB8DD0E8F6ABEB8EEB8FCFF6EB90F6AAD5F0F6ACC3B9EB91EB92EB93BBF4F6AEF6ADEB94EB95EB96C4DEEB97EB98C1D8EB99EB9AEB9BEB9CEB9DCBAAEB9ECFBCEB9FEBA0EC40EC41EC42EC43EC44EC45EC46EC47EC48F6AFEC49EC4AF6B0EC4BEC4CF6B1EC4DC2B6EC4EEC4FEC50EC51EC52B0D4C5F9EC53EC54EC55EC56F6B2EC57EC58EC59EC5AEC5BEC5CEC5DEC5EEC5FEC60EC61EC62EC63EC64EC65EC66EC67EC68EC69C7E0F6A6EC6AEC6BBEB8EC6CEC6DBEB2EC6EB5E5EC6FEC70B7C7EC71BFBFC3D2C3E6EC72EC73D8CCEC74EC75EC76B8EFEC77EC78EC79EC7AEC7BEC7CEC7DEC7EEC80BDF9D1A5EC81B0D0EC82EC83EC84EC85EC86F7B0EC87EC88EC89EC8AEC8BEC8CEC8DEC8EF7B1EC8FEC90EC91EC92EC93D0ACEC94B0B0EC95EC96EC97F7B2F7B3EC98F7B4EC99EC9AEC9BC7CAEC9CEC9DEC9EEC9FECA0ED40ED41BECFED42ED43F7B7ED44ED45ED46ED47ED48ED49ED4AF7B6ED4BB1DEED4CF7B5ED4DED4EF7B8ED4FF7B9ED50ED51ED52ED53ED54ED55ED56ED57ED58ED59ED5AED5BED5CED5DED5EED5FED60ED61ED62ED63ED64ED65ED66ED67ED68ED69ED6AED6BED6CED6DED6EED6FED70ED71ED72ED73ED74ED75ED76ED77ED78ED79ED7AED7BED7CED7DED7EED80ED81CEA4C8CDED82BAABE8B8E8B9E8BABEC2ED83ED84ED85ED86ED87D2F4ED88D4CFC9D8ED89ED8AED8BED8CED8DED8EED8FED90ED91ED92ED93ED94ED95ED96ED97ED98ED99ED9AED9BED9CED9DED9EED9FEDA0EE40EE41EE42EE43EE44EE45EE46EE47EE48EE49EE4AEE4BEE4CEE4DEE4EEE4FEE50EE51EE52EE53EE54EE55EE56EE57EE58EE59EE5AEE5BEE5CEE5DEE5EEE5FEE60EE61EE62EE63EE64EE65EE66EE67EE68EE69EE6AEE6BEE6CEE6DEE6EEE6FEE70EE71EE72EE73EE74EE75EE76EE77EE78EE79EE7AEE7BEE7CEE7DEE7EEE80EE81EE82EE83EE84EE85EE86EE87EE88EE89EE8AEE8BEE8CEE8DEE8EEE8FEE90EE91EE92EE93EE94EE95EE96EE97EE98EE99EE9AEE9BEE9CEE9DEE9EEE9FEEA0EF40EF41EF42EF43EF44EF45D2B3B6A5C7EAF1FCCFEECBB3D0EBE7EFCDE7B9CBB6D9F1FDB0E4CBCCF1FED4A4C2ADC1ECC6C4BEB1F2A1BCD5EF46F2A2F2A3EF47F2A4D2C3C6B5EF48CDC7F2A5EF49D3B1BFC5CCE2EF4AF2A6F2A7D1D5B6EEF2A8F2A9B5DFF2AAF2ABEF4BB2FCF2ACF2ADC8A7EF4CEF4DEF4EEF4FEF50EF51EF52EF53EF54EF55EF56EF57EF58EF59EF5AEF5BEF5CEF5DEF5EEF5FEF60EF61EF62EF63EF64EF65EF66EF67EF68EF69EF6AEF6BEF6CEF6DEF6EEF6FEF70EF71B7E7EF72EF73ECA9ECAAECABEF74ECACEF75EF76C6AEECADECAEEF77EF78EF79B7C9CAB3EF7AEF7BEF7CEF7DEF7EEF80EF81E2B8F7CFEF82EF83EF84EF85EF86EF87EF88EF89EF8AEF8BEF8CEF8DEF8EEF8FEF90EF91EF92EF93EF94EF95EF96EF97EF98EF99EF9AEF9BEF9CEF9DEF9EEF9FEFA0F040F041F042F043F044F7D0F045F046B2CDF047F048F049F04AF04BF04CF04DF04EF04FF050F051F052F053F054F055F056F057F058F059F05AF05BF05CF05DF05EF05FF060F061F062F063F7D1F064F065F066F067F068F069F06AF06BF06CF06DF06EF06FF070F071F072F073F074F075F076F077F078F079F07AF07BF07CF07DF07EF080F081F082F083F084F085F086F087F088F089F7D3F7D2F08AF08BF08CF08DF08EF08FF090F091F092F093F094F095F096E2BBF097BCA2F098E2BCE2BDE2BEE2BFE2C0E2C1B7B9D2FBBDA4CACEB1A5CBC7F099E2C2B6FCC8C4E2C3F09AF09BBDC8F09CB1FDE2C4F09DB6F6E2C5C4D9F09EF09FE2C6CFDAB9DDE2C7C0A1F0A0E2C8B2F6F140E2C9F141C1F3E2CAE2CBC2F8E2CCE2CDE2CECAD7D8B8D9E5CFE3F142F143F144F145F146F147F148F149F14AF14BF14CF0A5F14DF14EDCB0F14FF150F151F152F153F154F155F156F157F158F159F15AF15BF15CF15DF15EF15FF160F161F162F163F164F165F166F167F168F169F16AF16BF16CF16DF16EF16FF170F171F172F173F174F175F176F177F178F179F17AF17BF17CF17DF17EF180F181F182F183F184F185F186F187F188F189F18AF18BF18CF18DF18EF18FF190F191F192F193F194F195F196F197F198F199F19AF19BF19CF19DF19EF19FF1A0F240F241F242F243F244F245F246F247F248F249F24AF24BF24CF24DF24EF24FF250F251F252F253F254F255F256F257F258F259F25AF25BF25CF25DF25EF25FF260F261F262F263F264F265F266F267F268F269F26AF26BF26CF26DF26EF26FF270F271F272F273F274F275F276F277F278F279F27AF27BF27CF27DF27EF280F281F282F283F284F285F286F287F288F289F28AF28BF28CF28DF28EF28FF290F291F292F293F294F295F296F297F298F299F29AF29BF29CF29DF29EF29FF2A0F340F341F342F343F344F345F346F347F348F349F34AF34BF34CF34DF34EF34FF350F351C2EDD4A6CDD4D1B1B3DBC7FDF352B2B5C2BFE6E0CABBE6E1E6E2BED4E6E3D7A4CDD5E6E5BCDDE6E4E6E6E6E7C2EEF353BDBEE6E8C2E6BAA7E6E9F354E6EAB3D2D1E9F355F356BFA5E6EBC6EFE6ECE6EDF357F358E6EEC6ADE6EFF359C9A7E6F0E6F1E6F2E5B9E6F3E6F4C2E2E6F5E6F6D6E8E6F7F35AE6F8B9C7F35BF35CF35DF35EF35FF360F361F7BBF7BAF362F363F364F365F7BEF7BCBAA1F366F7BFF367F7C0F368F369F36AF7C2F7C1F7C4F36BF36CF7C3F36DF36EF36FF370F371F7C5F7C6F372F373F374F375F7C7F376CBE8F377F378F379F37AB8DFF37BF37CF37DF37EF380F381F7D4F382F7D5F383F384F385F386F7D6F387F388F389F38AF7D8F38BF7DAF38CF7D7F38DF38EF38FF390F391F392F393F394F395F7DBF396F7D9F397F398F399F39AF39BF39CF39DD7D7F39EF39FF3A0F440F7DCF441F442F443F444F445F446F7DDF447F448F449F7DEF44AF44BF44CF44DF44EF44FF450F451F452F453F454F7DFF455F456F457F7E0F458F459F45AF45BF45CF45DF45EF45FF460F461F462DBCBF463F464D8AAF465F466F467F468F469F46AF46BF46CE5F7B9EDF46DF46EF46FF470BFFDBBEAF7C9C6C7F7C8F471F7CAF7CCF7CBF472F473F474F7CDF475CEBAF476F7CEF477F478C4A7F479F47AF47BF47CF47DF47EF480F481F482F483F484F485F486F487F488F489F48AF48BF48CF48DF48EF48FF490F491F492F493F494F495F496F497F498F499F49AF49BF49CF49DF49EF49FF4A0F540F541F542F543F544F545F546F547F548F549F54AF54BF54CF54DF54EF54FF550F551F552F553F554F555F556F557F558F559F55AF55BF55CF55DF55EF55FF560F561F562F563F564F565F566F567F568F569F56AF56BF56CF56DF56EF56FF570F571F572F573F574F575F576F577F578F579F57AF57BF57CF57DF57EF580F581F582F583F584F585F586F587F588F589F58AF58BF58CF58DF58EF58FF590F591F592F593F594F595F596F597F598F599F59AF59BF59CF59DF59EF59FF5A0F640F641F642F643F644F645F646F647F648F649F64AF64BF64CF64DF64EF64FF650F651F652F653F654F655F656F657F658F659F65AF65BF65CF65DF65EF65FF660F661F662F663F664F665F666F667F668F669F66AF66BF66CF66DF66EF66FF670F671F672F673F674F675F676F677F678F679F67AF67BF67CF67DF67EF680F681F682F683F684F685F686F687F688F689F68AF68BF68CF68DF68EF68FF690F691F692F693F694F695F696F697F698F699F69AF69BF69CF69DF69EF69FF6A0F740F741F742F743F744F745F746F747F748F749F74AF74BF74CF74DF74EF74FF750F751F752F753F754F755F756F757F758F759F75AF75BF75CF75DF75EF75FF760F761F762F763F764F765F766F767F768F769F76AF76BF76CF76DF76EF76FF770F771F772F773F774F775F776F777F778F779F77AF77BF77CF77DF77EF780D3E3F781F782F6CFF783C2B3F6D0F784F785F6D1F6D2F6D3F6D4F786F787F6D6F788B1ABF6D7F789F6D8F6D9F6DAF78AF6DBF6DCF78BF78CF78DF78EF6DDF6DECFCAF78FF6DFF6E0F6E1F6E2F6E3F6E4C0F0F6E5F6E6F6E7F6E8F6E9F790F6EAF791F6EBF6ECF792F6EDF6EEF6EFF6F0F6F1F6F2F6F3F6F4BEA8F793F6F5F6F6F6F7F6F8F794F795F796F797F798C8FAF6F9F6FAF6FBF6FCF799F79AF6FDF6FEF7A1F7A2F7A3F7A4F7A5F79BF79CF7A6F7A7F7A8B1EEF7A9F7AAF7ABF79DF79EF7ACF7ADC1DBF7AEF79FF7A0F7AFF840F841F842F843F844F845F846F847F848F849F84AF84BF84CF84DF84EF84FF850F851F852F853F854F855F856F857F858F859F85AF85BF85CF85DF85EF85FF860F861F862F863F864F865F866F867F868F869F86AF86BF86CF86DF86EF86FF870F871F872F873F874F875F876F877F878F879F87AF87BF87CF87DF87EF880F881F882F883F884F885F886F887F888F889F88AF88BF88CF88DF88EF88FF890F891F892F893F894F895F896F897F898F899F89AF89BF89CF89DF89EF89FF8A0F940F941F942F943F944F945F946F947F948F949F94AF94BF94CF94DF94EF94FF950F951F952F953F954F955F956F957F958F959F95AF95BF95CF95DF95EF95FF960F961F962F963F964F965F966F967F968F969F96AF96BF96CF96DF96EF96FF970F971F972F973F974F975F976F977F978F979F97AF97BF97CF97DF97EF980F981F982F983F984F985F986F987F988F989F98AF98BF98CF98DF98EF98FF990F991F992F993F994F995F996F997F998F999F99AF99BF99CF99DF99EF99FF9A0FA40FA41FA42FA43FA44FA45FA46FA47FA48FA49FA4AFA4BFA4CFA4DFA4EFA4FFA50FA51FA52FA53FA54FA55FA56FA57FA58FA59FA5AFA5BFA5CFA5DFA5EFA5FFA60FA61FA62FA63FA64FA65FA66FA67FA68FA69FA6AFA6BFA6CFA6DFA6EFA6FFA70FA71FA72FA73FA74FA75FA76FA77FA78FA79FA7AFA7BFA7CFA7DFA7EFA80FA81FA82FA83FA84FA85FA86FA87FA88FA89FA8AFA8BFA8CFA8DFA8EFA8FFA90FA91FA92FA93FA94FA95FA96FA97FA98FA99FA9AFA9BFA9CFA9DFA9EFA9FFAA0FB40FB41FB42FB43FB44FB45FB46FB47FB48FB49FB4AFB4BFB4CFB4DFB4EFB4FFB50FB51FB52FB53FB54FB55FB56FB57FB58FB59FB5AFB5BC4F1F0AFBCA6F0B0C3F9FB5CC5B8D1BBFB5DF0B1F0B2F0B3F0B4F0B5D1BCFB5ED1ECFB5FF0B7F0B6D4A7FB60CDD2F0B8F0BAF0B9F0BBF0BCFB61FB62B8EBF0BDBAE8FB63F0BEF0BFBEE9F0C0B6ECF0C1F0C2F0C3F0C4C8B5F0C5F0C6FB64F0C7C5F4FB65F0C8FB66FB67FB68F0C9FB69F0CAF7BDFB6AF0CBF0CCF0CDFB6BF0CEFB6CFB6DFB6EFB6FF0CFBAD7FB70F0D0F0D1F0D2F0D3F0D4F0D5F0D6F0D8FB71FB72D3A5F0D7FB73F0D9FB74FB75FB76FB77FB78FB79FB7AFB7BFB7CFB7DF5BAC2B9FB7EFB80F7E4FB81FB82FB83FB84F7E5F7E6FB85FB86F7E7FB87FB88FB89FB8AFB8BFB8CF7E8C2B4FB8DFB8EFB8FFB90FB91FB92FB93FB94FB95F7EAFB96F7EBFB97FB98FB99FB9AFB9BFB9CC2F3FB9DFB9EFB9FFBA0FC40FC41FC42FC43FC44FC45FC46FC47FC48F4F0FC49FC4AFC4BF4EFFC4CFC4DC2E9FC4EF7E1F7E2FC4FFC50FC51FC52FC53BBC6FC54FC55FC56FC57D9E4FC58FC59FC5ACAF2C0E8F0A4FC5BBADAFC5CFC5DC7ADFC5EFC5FFC60C4ACFC61FC62F7ECF7EDF7EEFC63F7F0F7EFFC64F7F1FC65FC66F7F4FC67F7F3FC68F7F2F7F5FC69FC6AFC6BFC6CF7F6FC6DFC6EFC6FFC70FC71FC72FC73FC74FC75EDE9FC76EDEAEDEBFC77F6BCFC78FC79FC7AFC7BFC7CFC7DFC7EFC80FC81FC82FC83FC84F6BDFC85F6BEB6A6FC86D8BEFC87FC88B9C4FC89FC8AFC8BD8BBFC8CDCB1FC8DFC8EFC8FFC90FC91FC92CAF3FC93F7F7FC94FC95FC96FC97FC98FC99FC9AFC9BFC9CF7F8FC9DFC9EF7F9FC9FFCA0FD40FD41FD42FD43FD44F7FBFD45F7FAFD46B1C7FD47F7FCF7FDFD48FD49FD4AFD4BFD4CF7FEFD4DFD4EFD4FFD50FD51FD52FD53FD54FD55FD56FD57C6EBECB4FD58FD59FD5AFD5BFD5CFD5DFD5EFD5FFD60FD61FD62FD63FD64FD65FD66FD67FD68FD69FD6AFD6BFD6CFD6DFD6EFD6FFD70FD71FD72FD73FD74FD75FD76FD77FD78FD79FD7AFD7BFD7CFD7DFD7EFD80FD81FD82FD83FD84FD85B3DDF6B3FD86FD87F6B4C1E4F6B5F6B6F6B7F6B8F6B9F6BAC8A3F6BBFD88FD89FD8AFD8BFD8CFD8DFD8EFD8FFD90FD91FD92FD93C1FAB9A8EDE8FD94FD95FD96B9EAD9DFFD97FD98FD99FD9AFD9";
68
67
  encodeToGb2312(D) {
69
68
  for (var C = "", B = 0; B < D.length; B++) {
@@ -71,8 +70,8 @@ class rC {
71
70
  if (F == " ")
72
71
  C += "+";
73
72
  else if (A >= 19968 && A <= 40869) {
74
- let e = A - 19968;
75
- C += "%" + this.z.substr(e * 4, 2) + "%" + this.z.substr(e * 4 + 2, 2);
73
+ let t = A - 19968;
74
+ C += "%" + this.z.substr(t * 4, 2) + "%" + this.z.substr(t * 4 + 2, 2);
76
75
  } else
77
76
  C += "%" + D.charCodeAt(B).toString(16);
78
77
  }
@@ -90,11 +89,11 @@ class rC {
90
89
  var A = D.charAt(B);
91
90
  if (isNaN(parseInt(A)))
92
91
  try {
93
- var e = D.substr(B, 2) + D.substr(B + 3, 2);
92
+ var t = D.substr(B, 2) + D.substr(B + 3, 2);
94
93
  B = B + 4;
95
- for (var t = -1; (t = this.z.indexOf(e, t + 1)) != -1; )
96
- if (t % 4 == 0) {
97
- C += String.fromCharCode(t / 4 + 19968);
94
+ for (var e = -1; (e = this.z.indexOf(t, e + 1)) != -1; )
95
+ if (e % 4 == 0) {
96
+ C += String.fromCharCode(e / 4 + 19968);
98
97
  break;
99
98
  }
100
99
  } catch {
@@ -112,7 +111,7 @@ class rC {
112
111
  return C;
113
112
  }
114
113
  }
115
- let P = new rC();
114
+ let P = new uC();
116
115
  class a {
117
116
  static kOrigin;
118
117
  imp;
@@ -236,7 +235,7 @@ class y {
236
235
  this.imp.z = D;
237
236
  }
238
237
  }
239
- class I {
238
+ class j {
240
239
  static kIdentity;
241
240
  imp;
242
241
  constructor(D) {
@@ -246,7 +245,7 @@ class I {
246
245
  return this.imp.copy(D.imp), this;
247
246
  }
248
247
  clone() {
249
- return new I(this.imp);
248
+ return new j(this.imp);
250
249
  }
251
250
  setToIdentity() {
252
251
  return this.imp.setToIdentity(), this;
@@ -294,7 +293,7 @@ class I {
294
293
  return this.imp.getData(D, C);
295
294
  }
296
295
  }
297
- class sC {
296
+ class lC {
298
297
  imp;
299
298
  constructor(D) {
300
299
  this.imp = new i.mxcadassemblyimp.MdGeLongArray(), D instanceof Object && this.imp.copy(D);
@@ -315,7 +314,7 @@ class sC {
315
314
  this.imp.setAt(D, C);
316
315
  }
317
316
  }
318
- class LD {
317
+ class vD {
319
318
  imp;
320
319
  constructor(D) {
321
320
  this.imp = new i.mxcadassemblyimp.MdGeStringArray(), D instanceof Object && this.imp.copy(D);
@@ -341,7 +340,7 @@ class LD {
341
340
  D(C ? P.decodeFromGb2312(this.imp.at(F)) : this.imp.at(F), F);
342
341
  }
343
342
  }
344
- class nC {
343
+ class cC {
345
344
  imp;
346
345
  constructor(D) {
347
346
  this.imp = new i.mxcadassemblyimp.MdGePoint3dArray(), D instanceof Object && this.imp.copy(D);
@@ -362,13 +361,13 @@ class nC {
362
361
  this.imp.setAt(D, C.imp);
363
362
  }
364
363
  }
365
- const oC = new FinalizationRegistry((E) => {
364
+ const mC = new FinalizationRegistry((E) => {
366
365
  i.App.DestroyObject(E);
367
- }), aC = {};
366
+ }), pC = {};
368
367
  class K {
369
368
  imp = 0;
370
369
  constructor(D) {
371
- this.imp = D, this.imp && oC.register(this, D, aC);
370
+ this.imp = D, this.imp && mC.register(this, D, pC);
372
371
  }
373
372
  getImp() {
374
373
  return this.imp;
@@ -440,7 +439,7 @@ class R {
440
439
  return this.type == 1 ? h.getCurrentDraw().getMxEntity(this.id) : null;
441
440
  }
442
441
  }
443
- class j extends K {
442
+ class I extends K {
444
443
  constructor(D) {
445
444
  super(D);
446
445
  }
@@ -458,13 +457,13 @@ class j extends K {
458
457
  return this.imp.GetHandle();
459
458
  }
460
459
  GetDatabase() {
461
- return new mD(this.imp.GetDatabase());
460
+ return new pD(this.imp.GetDatabase());
462
461
  }
463
462
  GetOwnerID() {
464
463
  return this.imp.GetOwnerID();
465
464
  }
466
465
  }
467
- class nD {
466
+ class oD {
468
467
  aryVal = [];
469
468
  constructor(D) {
470
469
  if (D) {
@@ -488,7 +487,7 @@ class nD {
488
487
  return this.aryVal.length == 0;
489
488
  }
490
489
  }
491
- var oD;
490
+ var aD;
492
491
  ((E) => {
493
492
  ((D) => {
494
493
  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";
@@ -499,7 +498,7 @@ var oD;
499
498
  })(E.AttachmentPoint || (E.AttachmentPoint = {})), ((D) => {
500
499
  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";
501
500
  })(E.LineWeight || (E.LineWeight = {}));
502
- })(oD || (oD = {}));
501
+ })(aD || (aD = {}));
503
502
  class H {
504
503
  imp;
505
504
  constructor(D, C, B) {
@@ -557,7 +556,7 @@ class H {
557
556
  this.imp.colorIndex = D;
558
557
  }
559
558
  }
560
- class uC extends j {
559
+ class dC extends I {
561
560
  constructor(D) {
562
561
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbLayerTableRecord());
563
562
  }
@@ -604,39 +603,39 @@ class uC extends j {
604
603
  this.imp.setLineWeight(D);
605
604
  }
606
605
  }
607
- class vD extends j {
606
+ class jD extends I {
608
607
  constructor(D) {
609
608
  super(D);
610
609
  }
611
610
  }
612
- class ID extends j {
611
+ class ID extends I {
613
612
  constructor(D) {
614
613
  super(D);
615
614
  }
616
615
  }
617
- class jD extends j {
616
+ class GD extends I {
618
617
  constructor(D) {
619
618
  super(D);
620
619
  }
621
620
  }
622
- class mD extends K {
621
+ class pD extends K {
623
622
  constructor(D) {
624
623
  super(D);
625
624
  }
626
625
  GetLayerTable() {
627
- return new vD(this.imp.GetLayerTable());
626
+ return new jD(this.imp.GetLayerTable());
628
627
  }
629
628
  GetLinetypeTable() {
630
629
  return new ID(this.imp.GetLinetypeTable());
631
630
  }
632
631
  GetTextStyleTable() {
633
- return new jD(this.imp.GetTextStyleTable());
632
+ return new GD(this.imp.GetTextStyleTable());
634
633
  }
635
634
  GetBlockTable() {
636
- return new VD(this.imp.GetBlockTable());
635
+ return new UD(this.imp.GetBlockTable());
637
636
  }
638
637
  CurrentSpace() {
639
- return new ED(this.imp.CurrentSpace());
638
+ return new FD(this.imp.CurrentSpace());
640
639
  }
641
640
  GetCurrentlyLineTypeScale() {
642
641
  return this.imp.GetCurrentlyLineTypeScale();
@@ -695,7 +694,7 @@ class mD extends K {
695
694
  return this.imp.SetModifyed(!1);
696
695
  }
697
696
  }
698
- class GD extends K {
697
+ class VD extends K {
699
698
  constructor(D) {
700
699
  super(D);
701
700
  }
@@ -712,7 +711,7 @@ class GD extends K {
712
711
  return this.imp.step(D, C);
713
712
  }
714
713
  }
715
- class ED extends j {
714
+ class FD extends I {
716
715
  constructor(D) {
717
716
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTableRecord());
718
717
  }
@@ -724,7 +723,7 @@ class ED extends j {
724
723
  }
725
724
  newIterator(D = !0, C = !0) {
726
725
  let B = this.imp.newIterator(D, C);
727
- return new GD(B);
726
+ return new VD(B);
728
727
  }
729
728
  get origin() {
730
729
  return new a(this.imp.origin());
@@ -756,19 +755,19 @@ class WD extends K {
756
755
  }
757
756
  getRecord() {
758
757
  let D = this.imp.getRecord();
759
- return new ED(D);
758
+ return new FD(D);
760
759
  }
761
760
  step(D = !0, C = !0) {
762
761
  this.imp.start(D, C);
763
762
  }
764
763
  }
765
- class VD extends j {
764
+ class UD extends I {
766
765
  constructor(D) {
767
766
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockTable());
768
767
  }
769
768
  getAt(D) {
770
769
  let C = this.getAt(D);
771
- return C && new ED(C);
770
+ return C && new FD(C);
772
771
  }
773
772
  has(D) {
774
773
  return this.imp.has(D);
@@ -781,13 +780,13 @@ class VD extends j {
781
780
  return this.imp.add(D.getImp());
782
781
  }
783
782
  }
784
- class G extends j {
783
+ class G extends I {
785
784
  constructor(D) {
786
785
  super(D);
787
786
  }
788
787
  explode() {
789
788
  let D = this.imp.explode();
790
- return new AD(D);
789
+ return new tD(D);
791
790
  }
792
791
  get trueColor() {
793
792
  return new H(this.imp.TrueColor());
@@ -862,7 +861,7 @@ class G extends j {
862
861
  return { minPt: new a(), maxPt: new a(), ret: !1 };
863
862
  }
864
863
  }
865
- class V extends G {
864
+ class W extends G {
866
865
  constructor(D) {
867
866
  super(D);
868
867
  }
@@ -931,26 +930,26 @@ class V extends G {
931
930
  }
932
931
  offsetCurves(D, C) {
933
932
  let B = this.imp.offsetCurves(D, C.imp);
934
- return new nD(B);
933
+ return new oD(B);
935
934
  }
936
935
  splitCurves(D) {
937
936
  let C = this.imp.splitCurves(D);
938
- return new nD(C);
937
+ return new oD(C);
939
938
  }
940
939
  getArea() {
941
940
  return { val: this.imp.getArea(), ret: i.getCallResult() };
942
941
  }
943
942
  getSamplePoints(D) {
944
943
  let C = this.imp.getSamplePoints(D);
945
- return new AD(C);
944
+ return new tD(C);
946
945
  }
947
946
  getLength() {
948
947
  return { val: this.imp.getLength(), ret: i.getCallResult() };
949
948
  }
950
949
  }
951
- class X extends V {
952
- constructor(D, C, B, F, A, e) {
953
- D instanceof Object ? D instanceof a ? (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), C instanceof a && (this.startPoint = D, this.endPoint = C)) : super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), this.startPoint = new a(D, C, B), this.endPoint = new a(F, A, e));
950
+ class DD extends W {
951
+ constructor(D, C, B, F, A, t) {
952
+ D instanceof Object ? D instanceof a ? (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), C instanceof a && (this.startPoint = D, this.endPoint = C)) : super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbLine()), this.startPoint = new a(D, C, B), this.endPoint = new a(F, A, t));
954
953
  }
955
954
  get startPoint() {
956
955
  return new a(this.imp.startPoint());
@@ -965,7 +964,7 @@ class X extends V {
965
964
  this.imp.setEndPoint(D.imp);
966
965
  }
967
966
  }
968
- class aD extends G {
967
+ class uD extends G {
969
968
  constructor(D) {
970
969
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbText());
971
970
  }
@@ -1024,7 +1023,7 @@ class aD extends G {
1024
1023
  this.imp.setVerticalMode(D);
1025
1024
  }
1026
1025
  }
1027
- class DD extends G {
1026
+ class CD extends G {
1028
1027
  constructor(D) {
1029
1028
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbMText());
1030
1029
  }
@@ -1065,7 +1064,7 @@ class DD extends G {
1065
1064
  this.imp.setContents(P.encodeToGb2312(D));
1066
1065
  }
1067
1066
  }
1068
- class W extends V {
1067
+ class V extends W {
1069
1068
  constructor(D, C, B, F) {
1070
1069
  D instanceof Object ? super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbCircle()), typeof D == "number" && (this.imp.setCenter(new a(D, C, B).imp), this.imp.setRadius(F)));
1071
1070
  }
@@ -1085,7 +1084,7 @@ class W extends V {
1085
1084
  this.imp.setRadius(D);
1086
1085
  }
1087
1086
  }
1088
- class CD extends V {
1087
+ class BD extends W {
1089
1088
  constructor(D) {
1090
1089
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbPolyline());
1091
1090
  }
@@ -1103,8 +1102,8 @@ class CD extends V {
1103
1102
  }
1104
1103
  addVertexAt(D, C = 0, B = 0, F = 0, A = 0) {
1105
1104
  if (D instanceof THREE.Vector3) {
1106
- let e = new i.mxcadassemblyimp.MdGePoint3d();
1107
- return e.x = D.x, e.y = D.y, e.z = D.z, this.imp.addVertexAt(A, e, C, B, F);
1105
+ let t = new i.mxcadassemblyimp.MdGePoint3d();
1106
+ return t.x = D.x, t.y = D.y, t.z = D.z, this.imp.addVertexAt(A, t, C, B, F);
1108
1107
  } else
1109
1108
  return this.imp.addVertexAt(A, D.imp, C, B, F);
1110
1109
  }
@@ -1134,7 +1133,7 @@ class CD extends V {
1134
1133
  return this.imp.setBulgeAt(D, C);
1135
1134
  }
1136
1135
  }
1137
- class uD extends G {
1136
+ class lD extends G {
1138
1137
  constructor(D) {
1139
1138
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbBlockReference());
1140
1139
  }
@@ -1163,13 +1162,13 @@ class uD extends G {
1163
1162
  this.imp.setRotation(D);
1164
1163
  }
1165
1164
  get blockTransform() {
1166
- return new I(this.imp.blockTransform());
1165
+ return new j(this.imp.blockTransform());
1167
1166
  }
1168
1167
  set blockTransform(D) {
1169
1168
  this.imp.setBlockTransform(D.imp);
1170
1169
  }
1171
1170
  }
1172
- class pD extends G {
1171
+ class dD extends G {
1173
1172
  constructor(D) {
1174
1173
  super(D);
1175
1174
  }
@@ -1255,7 +1254,7 @@ class pD extends G {
1255
1254
  this.imp.SetDimVarObjectId(D, C.id);
1256
1255
  }
1257
1256
  }
1258
- class lD extends pD {
1257
+ class cD extends dD {
1259
1258
  constructor(D) {
1260
1259
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbAlignedDimension());
1261
1260
  }
@@ -1284,7 +1283,7 @@ class lD extends pD {
1284
1283
  this.imp.setOblique(D);
1285
1284
  }
1286
1285
  }
1287
- class cD extends pD {
1286
+ class mD extends dD {
1288
1287
  constructor(D) {
1289
1288
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbRotatedDimension());
1290
1289
  }
@@ -1319,7 +1318,7 @@ class cD extends pD {
1319
1318
  this.imp.setRotation(D);
1320
1319
  }
1321
1320
  }
1322
- class BD extends V {
1321
+ class ED extends W {
1323
1322
  constructor(D) {
1324
1323
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.MdDbArc());
1325
1324
  }
@@ -1350,20 +1349,20 @@ class BD extends V {
1350
1349
  set endAngle(D) {
1351
1350
  this.imp.setEndAngle(D);
1352
1351
  }
1353
- computeArc(D, C, B, F, A, e) {
1352
+ computeArc(D, C, B, F, A, t) {
1354
1353
  return this.imp.computeArc(
1355
1354
  D,
1356
1355
  C,
1357
1356
  B,
1358
1357
  F,
1359
1358
  A,
1360
- e
1359
+ t
1361
1360
  );
1362
1361
  }
1363
1362
  }
1364
- class FD extends V {
1365
- constructor(D, C, B, F, A, e, t, r, s) {
1366
- D instanceof Object ? super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbEllipse()), typeof D == "number" && (t || (t = 1), typeof r != "number" && (r = 0), typeof s != "number" && (s = 6.283185307179586), this.imp.InitData(new a(D, C, B).imp, new y(F, A, e).imp, t, r, s)));
1363
+ class AD extends W {
1364
+ constructor(D, C, B, F, A, t, e, r, s) {
1365
+ D instanceof Object ? super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbEllipse()), typeof D == "number" && (e || (e = 1), typeof r != "number" && (r = 0), typeof s != "number" && (s = 6.283185307179586), this.imp.InitData(new a(D, C, B).imp, new y(F, A, t).imp, e, r, s)));
1367
1366
  }
1368
1367
  setCenter(D, C, B) {
1369
1368
  this.imp.setCenter(new a(D, C, B).imp);
@@ -1411,7 +1410,7 @@ class FD extends V {
1411
1410
  this.imp.setEndAngle(D);
1412
1411
  }
1413
1412
  }
1414
- class dD extends G {
1413
+ class hD extends G {
1415
1414
  constructor(D, C, B) {
1416
1415
  D instanceof Object ? D instanceof a ? (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbPoint()), this.imp.setPosition(D.imp)) : super(D) : (super(), this.initTempObject(new i.mxcadassemblyimp.MdDbPoint()), typeof D == "number" && this.imp.setPosition(new a(D, C, B).imp));
1417
1416
  }
@@ -1425,11 +1424,11 @@ class dD extends G {
1425
1424
  this.imp.setPosition(D.imp);
1426
1425
  }
1427
1426
  }
1428
- function N(E = null) {
1427
+ function _(E = null) {
1429
1428
  let D;
1430
1429
  return E == null ? D = new i.mxcadassemblyimp.McDrawResbuf() : D = E.getImp(), D;
1431
1430
  }
1432
- class AD extends K {
1431
+ class tD extends K {
1433
1432
  constructor(D) {
1434
1433
  super(D), D || this.initTempObject(new i.mxcadassemblyimp.McDrawResbuf());
1435
1434
  }
@@ -1449,7 +1448,7 @@ class AD extends K {
1449
1448
  if (this.imp.AtObjectName(D) == "McDbMText") {
1450
1449
  let B = this.imp.AtObjectMdDbMText(D);
1451
1450
  if (B)
1452
- return { val: new DD(B), ret: i.getCallResult() };
1451
+ return { val: new CD(B), ret: i.getCallResult() };
1453
1452
  }
1454
1453
  return { val: void 0, ret: -1 };
1455
1454
  }
@@ -1493,7 +1492,7 @@ class AD extends K {
1493
1492
  this.imp.Remove(D);
1494
1493
  }
1495
1494
  }
1496
- class UD {
1495
+ class zD {
1497
1496
  imp;
1498
1497
  constructor() {
1499
1498
  }
@@ -1505,30 +1504,30 @@ class UD {
1505
1504
  }
1506
1505
  findEntAtPoint(D, C, B, F = -1, A = null) {
1507
1506
  this.init();
1508
- let e = this.imp.findEntAtPoint(D, C, B, F, N(A));
1509
- return new R(e, k.kMxCAD);
1507
+ let t = this.imp.findEntAtPoint(D, C, B, F, _(A));
1508
+ return new R(t, k.kMxCAD);
1510
1509
  }
1511
1510
  selectEnt(D, C = null, B = !0) {
1512
1511
  return this.init(), new Promise(async (F) => {
1513
- const A = new O();
1514
- D && A.setMessage(D), A.setCursorType(bD.kRect), A.setDisableOsnap(!0);
1515
- let e = await A.go();
1516
- if (!e) {
1512
+ const A = new S();
1513
+ D && A.setMessage(D), A.setCursorType(xD.kRect), A.setDisableOsnap(!0);
1514
+ let t = await A.go();
1515
+ if (!t) {
1517
1516
  F([]);
1518
1517
  return;
1519
1518
  }
1520
1519
  if (B)
1521
- fD.findEntAtPoint(e).then((t) => {
1520
+ fD.findEntAtPoint(t).then((e) => {
1522
1521
  let r = [];
1523
- t.forEach((o) => {
1522
+ e.forEach((o) => {
1524
1523
  r.push(new R(o, k.kMxDraw));
1525
1524
  });
1526
- let s = this.findEntAtPoint(e.x, e.y, e.z, -1, C);
1525
+ let s = this.findEntAtPoint(t.x, t.y, t.z, -1, C);
1527
1526
  s.isValid() && r.push(s), F(r);
1528
1527
  });
1529
1528
  else {
1530
- let t = [], r = this.findEntAtPoint(e.x, e.y, e.z, -1, C);
1531
- r.isValid() && t.push(r), F(t);
1529
+ let e = [], r = this.findEntAtPoint(t.x, t.y, t.z, -1, C);
1530
+ r.isValid() && e.push(r), F(e);
1532
1531
  }
1533
1532
  });
1534
1533
  }
@@ -1544,19 +1543,19 @@ class UD {
1544
1543
  this.imp || (this.imp = new i.mxcadassemblyimp.McDrawUtility());
1545
1544
  }
1546
1545
  }
1547
- let U = new UD();
1548
- class Z extends K {
1546
+ let U = new zD();
1547
+ class $ extends K {
1549
1548
  constructor() {
1550
1549
  super(), this.initTempObject(new i.mxcadassemblyimp.McDrawSelSet());
1551
1550
  }
1552
1551
  allSelect(D = null) {
1553
- return this.imp.allSelect(N(D));
1552
+ return this.imp.allSelect(_(D));
1554
1553
  }
1555
1554
  pointSelect(D, C, B = null, F = -1) {
1556
- return this.imp.pointSelect(D, C, N(B), F);
1555
+ return this.imp.pointSelect(D, C, _(B), F);
1557
1556
  }
1558
1557
  crossingSelect(D, C, B, F, A = null) {
1559
- return this.imp.crossingSelect(D, C, B, F, N(A));
1558
+ return this.imp.crossingSelect(D, C, B, F, _(A));
1560
1559
  }
1561
1560
  count() {
1562
1561
  return this.imp.count();
@@ -1576,38 +1575,31 @@ class Z extends K {
1576
1575
  return D;
1577
1576
  }
1578
1577
  async userSelect(D, C = null) {
1579
- let B = new O();
1580
- D && B.setMessage(D), B.setCursorType(bD.kRect), B.setDynamicInputType(xD.kDynTip), B.setDisableOsnap(!0);
1578
+ let B = new S();
1579
+ D && B.setMessage(D), B.setCursorType(xD.kRect), B.setDynamicInputType(MD.kDynTip), B.setDisableOsnap(!0);
1581
1580
  let F = 0;
1582
1581
  for (; ; ) {
1583
1582
  let A = await B.go();
1584
1583
  if (F = B.getDetailedResult(), !A)
1585
1584
  break;
1586
- let e = await fD.getCorner(A, D, !0, (t) => {
1587
- F = t.detailedResult;
1585
+ let t = await fD.getCorner(A, D, !0, (e) => {
1586
+ F = e.detailedResult;
1588
1587
  });
1589
- if (!e)
1588
+ if (!t)
1590
1589
  break;
1591
- this.imp.userSelect(A.x, A.y, e.x, e.y, N(C));
1590
+ this.imp.userSelect(A.x, A.y, t.x, t.y, _(C));
1592
1591
  }
1593
- return this.imp.highlightEntity(!1), F == iD.kEcsIn || F == iD.kNewCommadIn || F == iD.kUnknown ? new Promise((A) => {
1592
+ return this.imp.highlightEntity(!1), F == rD.kEcsIn || F == rD.kNewCommadIn || F == rD.kUnknown ? new Promise((A) => {
1594
1593
  A(!1);
1595
1594
  }) : new Promise((A) => {
1596
1595
  A(!0);
1597
1596
  });
1598
1597
  }
1599
1598
  }
1600
- class z {
1599
+ class N {
1601
1600
  imp;
1602
- constructor() {
1603
- this.imp = new O();
1604
- }
1605
- go() {
1606
- return new Promise((D) => {
1607
- this.imp.go((C) => {
1608
- C != 0 ? D(null) : D(new a(this.imp.value()));
1609
- });
1610
- });
1601
+ constructor(D) {
1602
+ this.imp = D;
1611
1603
  }
1612
1604
  keyWords() {
1613
1605
  return this.imp.keyWords();
@@ -1632,21 +1624,6 @@ class z {
1632
1624
  D(new a(C), B);
1633
1625
  });
1634
1626
  }
1635
- value() {
1636
- return new a(this.imp.value());
1637
- }
1638
- getCADValue() {
1639
- return this.imp.getCADValue();
1640
- }
1641
- basePt() {
1642
- return new a(this.imp.basePt());
1643
- }
1644
- setBasePt(D) {
1645
- this.imp.setBasePt(D.toVector3());
1646
- }
1647
- setUseBasePt(D) {
1648
- this.imp.setUseBasePt(D);
1649
- }
1650
1627
  getDetailedResult() {
1651
1628
  return this.imp.getDetailedResult();
1652
1629
  }
@@ -1687,33 +1664,36 @@ class z {
1687
1664
  return this.imp.isDisableOsnap();
1688
1665
  }
1689
1666
  }
1690
- class zD {
1691
- imp;
1667
+ class z extends N {
1692
1668
  constructor() {
1693
- this.imp = new BC();
1669
+ super(new S());
1694
1670
  }
1695
- keyWords() {
1696
- return this.imp.keyWords();
1671
+ go() {
1672
+ return new Promise((D) => {
1673
+ this.imp.go((C) => {
1674
+ C != 0 ? D(null) : D(new a(this.imp.value()));
1675
+ });
1676
+ });
1697
1677
  }
1698
- setKeyWords(D) {
1699
- return this.imp.setKeyWords(D);
1678
+ value() {
1679
+ return new a(this.imp.value());
1700
1680
  }
1701
- message() {
1702
- return this.imp.message();
1681
+ getCADValue() {
1682
+ return this.imp.getCADValue();
1703
1683
  }
1704
- setMessage(D) {
1705
- return this.imp.setMessage(D);
1684
+ basePt() {
1685
+ return new a(this.imp.basePt());
1706
1686
  }
1707
- keyWordPicked() {
1708
- return this.imp.keyWordPicked();
1687
+ setBasePt(D) {
1688
+ this.imp.setBasePt(D.toVector3());
1709
1689
  }
1710
- isKeyWordPicked(D) {
1711
- return this.imp.isKeyWordPicked(D);
1690
+ setUseBasePt(D) {
1691
+ this.imp.setUseBasePt(D);
1712
1692
  }
1713
- setUserDraw(D) {
1714
- this.imp.setUserDraw((C, B) => {
1715
- D(new a(C), B);
1716
- });
1693
+ }
1694
+ class KD extends N {
1695
+ constructor() {
1696
+ super(new EC());
1717
1697
  }
1718
1698
  value() {
1719
1699
  return this.imp.value();
@@ -1727,54 +1707,61 @@ class zD {
1727
1707
  setUseBasePt(D) {
1728
1708
  return this.imp.setUseBasePt(D);
1729
1709
  }
1730
- getDetailedResult() {
1731
- return this.imp.getDetailedResult();
1710
+ go() {
1711
+ return this.imp.go();
1732
1712
  }
1733
- getStatus() {
1734
- return this.imp.getStatus();
1713
+ }
1714
+ class hC extends N {
1715
+ constructor() {
1716
+ super(new FC());
1735
1717
  }
1736
- go() {
1737
- return new Promise((D) => {
1738
- this.imp.go((C) => {
1739
- C != 0 ? D(null) : D(this.imp.value());
1740
- });
1741
- });
1718
+ value() {
1719
+ return this.imp.value();
1742
1720
  }
1743
- drawReserve(D) {
1744
- return this.imp.drawReserve(D);
1721
+ basePt() {
1722
+ return new a(this.imp.basePt());
1745
1723
  }
1746
- setInputToucheType(D) {
1747
- return this.imp.setInputToucheType(D);
1724
+ setBasePt(D) {
1725
+ this.imp.setBasePt(D.toVector3());
1748
1726
  }
1749
- getInputToucheType() {
1750
- return this.imp.getInputToucheType();
1727
+ setUseBasePt(D) {
1728
+ return this.imp.setUseBasePt(D);
1751
1729
  }
1752
- setCursorType(D) {
1753
- this.imp.setCursorType(D);
1730
+ go() {
1731
+ return this.imp.go();
1754
1732
  }
1755
- getCursorType() {
1756
- return this.imp.getCursorType();
1733
+ }
1734
+ class yC extends N {
1735
+ constructor() {
1736
+ super(new AC());
1757
1737
  }
1758
- setDynamicInputType(D) {
1759
- this.imp.setDynamicInputType(D);
1738
+ value() {
1739
+ return this.imp.value();
1760
1740
  }
1761
- getDynamicInputType() {
1762
- return this.imp.getDynamicInputType();
1741
+ go() {
1742
+ return this.imp.go();
1763
1743
  }
1764
- isDisableDynInput() {
1765
- return this.imp.isDisableDynInput();
1744
+ }
1745
+ class gC extends N {
1746
+ constructor() {
1747
+ super(new tC());
1766
1748
  }
1767
- setDisableDynInput(D) {
1768
- return this.imp.setDisableDynInput(D);
1749
+ go() {
1750
+ return this.imp.go();
1769
1751
  }
1770
- setDisableOsnap(D) {
1771
- return this.imp.setDisableOsnap(D);
1752
+ }
1753
+ class wC extends N {
1754
+ constructor() {
1755
+ super(new eC());
1772
1756
  }
1773
- isDisableOsnap() {
1774
- return this.imp.isDisableOsnap();
1757
+ value() {
1758
+ return this.imp.value();
1759
+ }
1760
+ go() {
1761
+ return this.imp.go();
1775
1762
  }
1776
1763
  }
1777
- class _ {
1764
+ class q {
1778
1765
  imp;
1779
1766
  static currentFileName;
1780
1767
  constructor(D) {
@@ -1789,18 +1776,18 @@ class _ {
1789
1776
  getImp() {
1790
1777
  return this.imp;
1791
1778
  }
1792
- openWebFile(D, C, B = !0) {
1793
- let F = this.imp.mxdrawObject, A = Math.round(Math.random() * 1e7);
1779
+ openWebFile(D, C, B = !0, F = "") {
1780
+ let A = this.imp.mxdrawObject, t = Math.round(Math.random() * 1e7);
1794
1781
  if (C) {
1795
- let e = (t, r) => {
1796
- F.removeEventFuction("openFileComplete", e), A == r && C(t);
1782
+ let e = (r, s) => {
1783
+ A.removeEventFuction("openFileComplete", e), t == s && C(r);
1797
1784
  };
1798
- F.addEvent("openFileComplete", e);
1785
+ A.addEvent("openFileComplete", e);
1799
1786
  }
1800
- return _.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, B, A);
1787
+ return q.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, B, t, F || "");
1801
1788
  }
1802
1789
  getCurrentFileName() {
1803
- return _.currentFileName;
1790
+ return q.currentFileName;
1804
1791
  }
1805
1792
  saveFileToUrl(D, C) {
1806
1793
  const B = window;
@@ -1811,12 +1798,12 @@ class _ {
1811
1798
  saveFile(D, C, B = !0, F = !0) {
1812
1799
  D || (D = this.getCurrentFileName()), D.indexOf(".") == -1 && (D += ".mxweb");
1813
1800
  const A = window;
1814
- return A.mx_saveFile_call = (e) => {
1815
- if (C && C(e), !!e) {
1801
+ return A.mx_saveFile_call = (t) => {
1802
+ if (C && C(t), !!t) {
1816
1803
  if (B) {
1817
- let t;
1818
- /^((?!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 ? J.saveAsFileDialog({
1819
- blob: t,
1804
+ let e;
1805
+ /^((?!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 ? Y.saveAsFileDialog({
1806
+ blob: e,
1820
1807
  filename: D,
1821
1808
  types: [{
1822
1809
  description: "mxweb File",
@@ -1824,14 +1811,14 @@ class _ {
1824
1811
  "application/octet-stream": [".mxweb"]
1825
1812
  }
1826
1813
  }]
1827
- }) : J.downloadFile(t, D);
1814
+ }) : Y.downloadFile(e, D);
1828
1815
  }
1829
1816
  A.mx_saveFile_call = null;
1830
1817
  }
1831
1818
  }, this.imp.saveFile(D);
1832
1819
  }
1833
1820
  GetDatabase() {
1834
- return this.imp.McDbDatabase || (this.imp.McDbDatabase = new mD(this.imp.GetDatabase())), this.imp.McDbDatabase;
1821
+ return this.imp.McDbDatabase || (this.imp.McDbDatabase = new pD(this.imp.GetDatabase())), this.imp.McDbDatabase;
1835
1822
  }
1836
1823
  GetSysVarString(D) {
1837
1824
  return this.imp.GetSysVarString(D);
@@ -1899,8 +1886,8 @@ class _ {
1899
1886
  AddLinetypeEx(D, C, B) {
1900
1887
  this.imp.AddLinetypeEx(D, C, B);
1901
1888
  }
1902
- DrawLine(D, C, B, F, A, e) {
1903
- return this.imp.DrawLine(D, C, B, F, A, e);
1889
+ DrawLine(D, C, B, F, A, t) {
1890
+ return this.imp.DrawLine(D, C, B, F, A, t);
1904
1891
  }
1905
1892
  AddDimStyle(D, C, B, F, A) {
1906
1893
  return this.imp.AddDimStyle(D, C, B, F, A);
@@ -1926,8 +1913,8 @@ class _ {
1926
1913
  DrawArc(D, C, B, F, A) {
1927
1914
  return this.imp.DrawArc(D, C, B, F, A);
1928
1915
  }
1929
- DrawArc2(D, C, B, F, A, e) {
1930
- return this.imp.DrawArc2(D, C, B, F, A, e);
1916
+ DrawArc2(D, C, B, F, A, t) {
1917
+ return this.imp.DrawArc2(D, C, B, F, A, t);
1931
1918
  }
1932
1919
  DrawCircle(D, C, B) {
1933
1920
  return this.imp.DrawCircle(D, C, B);
@@ -1935,35 +1922,35 @@ class _ {
1935
1922
  DrawEllipse(D, C, B, F, A) {
1936
1923
  return this.imp.DrawEllipse(D, C, B, F, A);
1937
1924
  }
1938
- DrawEllipseArc(D, C, B, F, A, e, t) {
1939
- return this.imp.DrawEllipseArc(D, C, B, F, A, e, t);
1925
+ DrawEllipseArc(D, C, B, F, A, t, e) {
1926
+ return this.imp.DrawEllipseArc(D, C, B, F, A, t, e);
1940
1927
  }
1941
1928
  DrawPoint(D, C) {
1942
1929
  return this.imp.DrawPoint(D, C);
1943
1930
  }
1944
- DrawSolid(D, C, B, F, A, e, t, r) {
1945
- return this.imp.DrawSolid(D, C, B, F, A, e, t, r);
1931
+ DrawSolid(D, C, B, F, A, t, e, r) {
1932
+ return this.imp.DrawSolid(D, C, B, F, A, t, e, r);
1946
1933
  }
1947
- DrawMText(D, C, B, F, A, e, t) {
1948
- return this.imp.DrawMText(D, C, B, F, A, e, t);
1934
+ DrawMText(D, C, B, F, A, t, e) {
1935
+ return this.imp.DrawMText(D, C, B, F, A, t, e);
1949
1936
  }
1950
- DrawText(D, C, B, F, A, e, t) {
1951
- return this.imp.DrawTextDrawText(D, C, B, F, A, e, t);
1937
+ DrawText(D, C, B, F, A, t, e) {
1938
+ return this.imp.DrawTextDrawText(D, C, B, F, A, t, e);
1952
1939
  }
1953
1940
  DrawBlockReference(D, C, B, F, A) {
1954
1941
  return this.imp.DrawBlockReference(D, C, B, F, A);
1955
1942
  }
1956
- DrawDimAligned(D, C, B, F, A, e) {
1957
- return this.imp.DrawDimAligned(D, C, B, F, A, e);
1943
+ DrawDimAligned(D, C, B, F, A, t) {
1944
+ return this.imp.DrawDimAligned(D, C, B, F, A, t);
1958
1945
  }
1959
- DrawDimAngular(D, C, B, F, A, e, t, r) {
1960
- return this.imp.DrawDimAngular(D, C, B, F, A, e, t, r);
1946
+ DrawDimAngular(D, C, B, F, A, t, e, r) {
1947
+ return this.imp.DrawDimAngular(D, C, B, F, A, t, e, r);
1961
1948
  }
1962
1949
  DrawDimDiametric(D, C, B, F, A) {
1963
1950
  return this.imp.DrawDimDiametric(D, C, B, F, A);
1964
1951
  }
1965
- DrawDimRotated(D, C, B, F, A, e, t) {
1966
- return this.imp.DrawDimRotated(D, C, B, F, A, e, t);
1952
+ DrawDimRotated(D, C, B, F, A, t, e) {
1953
+ return this.imp.DrawDimRotated(D, C, B, F, A, t, e);
1967
1954
  }
1968
1955
  DrawDimOrdinate(D, C, B, F, A) {
1969
1956
  return this.imp.DrawDimOrdinate(D, C, B, F, A);
@@ -2005,7 +1992,7 @@ class _ {
2005
1992
  !D || i.App.getImp().DestroyObject(D);
2006
1993
  }
2007
1994
  GetAllLayoutName() {
2008
- return new LD(this.imp.GetAllLayoutName());
1995
+ return new vD(this.imp.GetAllLayoutName());
2009
1996
  }
2010
1997
  SetCurrentLayout(D) {
2011
1998
  this.imp.SetCurrentLayout(P.encodeToGb2312(D));
@@ -2017,10 +2004,10 @@ class _ {
2017
2004
  return new a(this.imp.mxdrawObject.docCoord2Cad(D.x, D.y, D.z));
2018
2005
  }
2019
2006
  }
2020
- class KD {
2007
+ class HD {
2021
2008
  imp;
2022
2009
  init(D) {
2023
- this.imp = D, y.kZAxis = new y(0, 0, 1), y.kNegateZAxis = new y(0, 0, -1), y.kXAxis = new y(1, 0, 0), y.kYAxis = new y(0, 1, 0), a.kOrigin = new a(0, 0, 0), I.kIdentity = new I();
2010
+ this.imp = D, y.kZAxis = new y(0, 0, 1), y.kNegateZAxis = new y(0, 0, -1), y.kXAxis = new y(1, 0, 0), y.kYAxis = new y(0, 1, 0), a.kOrigin = new a(0, 0, 0), j.kIdentity = new j();
2024
2011
  }
2025
2012
  getImp() {
2026
2013
  return this.imp;
@@ -2029,15 +2016,15 @@ class KD {
2029
2016
  return this.imp.getLastCallResult();
2030
2017
  }
2031
2018
  CreateMxCAD(D, C, B, F, A) {
2032
- let e = this.imp.CreateMxDraw(D, C, B, F, A);
2033
- return new _(e);
2019
+ let t = this.imp.CreateMxDraw(D, C, B, F, A);
2020
+ return new q(t);
2034
2021
  }
2035
2022
  DestroyObject(D) {
2036
2023
  this.imp.DestroyObject(D);
2037
2024
  }
2038
2025
  GetCurrentMxCAD() {
2039
2026
  let D = this.imp.GetCurrentMxDraw();
2040
- return D.McObject || (D.McObject = new _(this.imp.GetCurrentMxDraw())), D.McObject;
2027
+ return D.McObject || (D.McObject = new q(this.imp.GetCurrentMxDraw())), D.McObject;
2041
2028
  }
2042
2029
  mcedRGB2Index(D, C, B, F = !0) {
2043
2030
  return this.imp.mcedRGB2Index(D, C, B, F);
@@ -2051,53 +2038,53 @@ class KD {
2051
2038
  let C = this.imp.ObjectIdToObjectName(D);
2052
2039
  if (C == "McDbLine") {
2053
2040
  let B = this.imp.ObjectIdToMdDbLine(D);
2054
- return new X(B);
2041
+ return new DD(B);
2055
2042
  } else if (C == "McDbText") {
2056
2043
  let B = this.imp.ObjectIdToMdDbText(D);
2057
- return new aD(B);
2044
+ return new uD(B);
2058
2045
  } else if (C == "McDbPolyline") {
2059
2046
  let B = this.imp.ObjectIdToMdDbPolyline(D);
2060
- return new CD(B);
2047
+ return new BD(B);
2061
2048
  } else if (C == "McDbCircle") {
2062
2049
  let B = this.imp.ObjectIdToMdDbCircle(D);
2063
- return new W(B);
2050
+ return new V(B);
2064
2051
  } else if (C == "McDbArc") {
2065
2052
  let B = this.imp.ObjectIdToMdDbArc(D);
2066
- return new BD(B);
2053
+ return new ED(B);
2067
2054
  } else if (C == "McDbBlockReference") {
2068
2055
  let B = this.imp.ObjectIdToMdDbBlockReference(D);
2069
- return new uD(B);
2056
+ return new lD(B);
2070
2057
  } else if (C == "McDbAlignedDimension") {
2071
2058
  let B = this.imp.ObjectIdToMdDbAlignedDimension(D);
2072
- return new lD(B);
2059
+ return new cD(B);
2073
2060
  } else if (C == "McDbRotatedDimension") {
2074
2061
  let B = this.imp.ObjectIdToMdDbRotatedDimension(D);
2075
- return new cD(B);
2062
+ return new mD(B);
2076
2063
  } else if (C == "McDbMText") {
2077
2064
  let B = this.imp.ObjectIdToMdDbMText(D);
2078
- return new DD(B);
2065
+ return new CD(B);
2079
2066
  } else if (C == "McDbEllipse") {
2080
2067
  let B = this.imp.ObjectIdToMdDbEllipse(D);
2081
- return new FD(B);
2068
+ return new AD(B);
2082
2069
  } else if (C == "McDbPoint") {
2083
2070
  let B = this.imp.ObjectIdToMdDbPoint(D);
2084
- return new dD(B);
2071
+ return new hD(B);
2085
2072
  } else if (this.imp.ObjectIdIsKindOf(D, "McDbCurve")) {
2086
2073
  let B = this.imp.ObjectIdToMdDbCurve(D);
2087
- return new V(B);
2074
+ return new W(B);
2088
2075
  } else if (this.imp.ObjectIdIsKindOf(D, "McDbEntity")) {
2089
2076
  let B = this.imp.ObjectIdToMdDbEntity(D);
2090
2077
  return new G(B);
2091
2078
  } else {
2092
2079
  let B = this.imp.ObjectIdToMdObject(D);
2093
- return new j(B);
2080
+ return new I(B);
2094
2081
  }
2095
2082
  }
2096
2083
  CreateCloneObject(D) {
2097
2084
  if (!D)
2098
2085
  return null;
2099
2086
  let C = D.getObjectName(), B = null;
2100
- return C == "McDbLine" ? B = new X() : C == "McDbText" ? B = new aD() : C == "McDbPolyline" ? B = new CD() : C == "McDbCircle" ? B = new W() : C == "McDbArc" ? B = new BD() : C == "McDbBlockReference" ? B = new uD() : C == "McDbAlignedDimension" ? B = new lD() : C == "McDbRotatedDimension" ? B = new cD() : C == "McDbMText" ? B = new DD() : D.isKindOf("McDbCurve") ? (B = new V(), B.initTempObject(new i.mxcadassemblyimp.MdDbCurve())) : D.isKindOf("McDbEntity") && (B = new G(), B.initTempObject(new i.mxcadassemblyimp.MdDbEntity())), B ? (B.getImp().ConnectionTempObject(D), i.App.DestroyObject(D), B) : new j(D);
2087
+ return C == "McDbLine" ? B = new DD() : C == "McDbText" ? B = new uD() : C == "McDbPolyline" ? B = new BD() : C == "McDbCircle" ? B = new V() : C == "McDbArc" ? B = new ED() : C == "McDbBlockReference" ? B = new lD() : C == "McDbAlignedDimension" ? B = new cD() : C == "McDbRotatedDimension" ? B = new mD() : C == "McDbMText" ? B = new CD() : D.isKindOf("McDbCurve") ? (B = new W(), B.initTempObject(new i.mxcadassemblyimp.MdDbCurve())) : D.isKindOf("McDbEntity") && (B = new G(), B.initTempObject(new i.mxcadassemblyimp.MdDbEntity())), B ? (B.getImp().ConnectionTempObject(D), i.App.DestroyObject(D), B) : new I(D);
2101
2088
  }
2102
2089
  setFontFilePath(D) {
2103
2090
  this.imp.setFontFilePath(D);
@@ -2108,9 +2095,9 @@ class KD {
2108
2095
  });
2109
2096
  }
2110
2097
  }
2111
- class HD {
2098
+ class ND {
2112
2099
  mxcadassemblyimp;
2113
- App = new KD();
2100
+ App = new HD();
2114
2101
  getCallResult() {
2115
2102
  return this.App.getLastCallResult();
2116
2103
  }
@@ -2129,43 +2116,43 @@ class HD {
2129
2116
  return this.App.GetCurrentMxCAD().GetDatabase();
2130
2117
  }
2131
2118
  }
2132
- const hD = "1.0.78", lC = "SharedArrayBuffer" in window, eD = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), cC = (E, D = self.location.href) => eD ? `https://unpkg.com/mxcad@${hD}/dist/wasm/2d-st/${E}` : D + E, mC = (E, D = self.location.href) => eD ? `https://unpkg.com/mxcad@${hD}/dist/wasm/2d/${E}` : D + E, pC = (E, D = self.location.href) => eD ? `https://unpkg.com/mxcad@${hD}/dist/wasm/3d/${E}` : D + E, ND = (E) => new Promise((D, C) => {
2119
+ const yD = "1.0.80", bC = "SharedArrayBuffer" in window, eD = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), xC = (E, D = self.location.href) => eD ? `https://unpkg.com/mxcad@${yD}/dist/wasm/2d-st/${E}` : D + E, fC = (E, D = self.location.href) => eD ? `https://unpkg.com/mxcad@${yD}/dist/wasm/2d/${E}` : D + E, MC = (E, D = self.location.href) => eD ? `https://unpkg.com/mxcad@${yD}/dist/wasm/3d/${E}` : D + E, _D = (E) => new Promise((D, C) => {
2133
2120
  const B = document.createElement("script");
2134
2121
  B.src = E, B.type = "text/javascript", B.crossOrigin = "anonymous", document.body.appendChild(B), B.onload = () => {
2135
2122
  D();
2136
2123
  }, B.onerror = (F) => {
2137
2124
  C(F);
2138
2125
  };
2139
- }), dC = async (E, D, C) => {
2126
+ }), PC = async (E, D, C) => {
2140
2127
  const { locateFile: B } = C, F = B(E + ".js");
2141
- return await ND(F), await globalThis[D](C);
2128
+ return await _D(F), await globalThis[D](C);
2142
2129
  };
2143
2130
  let i;
2144
- async function _D(E, D = lC || !eD ? cC : mC, C, B, F) {
2145
- return new Promise(async (A, e) => {
2131
+ async function qD(E, D = bC || !eD ? xC : fC, C, B, F) {
2132
+ return new Promise(async (A, t) => {
2146
2133
  try {
2147
- if (i || (i = new HD()), i.mxcadassemblyimp)
2134
+ if (i || (i = new ND()), i.mxcadassemblyimp)
2148
2135
  return E && E(i), A(i);
2149
- const r = await dC("mxdrawassembly_min", "mxdrawassembly", {
2136
+ const r = await PC("mxdrawassembly_min", "mxdrawassembly", {
2150
2137
  locateFile: D,
2151
2138
  wasmBinary: C
2152
2139
  });
2153
2140
  i.mxcadassemblyimp = r;
2154
2141
  let s = new r.McApp();
2155
2142
  B && s.setFontFilePath(B), s.Init(), i.App.init(s), F && i.App.addNetworkLoadingFont(F), E && E(i), A(i);
2156
- } catch (t) {
2157
- e(t);
2143
+ } catch (e) {
2144
+ t(e);
2158
2145
  }
2159
2146
  });
2160
2147
  }
2161
- const hC = (E) => {
2148
+ const TC = (E) => {
2162
2149
  let D = null;
2163
2150
  if (typeof E == "string" ? D = document.querySelector(E) : E instanceof HTMLCanvasElement && (D = E), !!D)
2164
2151
  return D.id || (D.id = Math.random().toString(16).slice(2)), D.id;
2165
- }, yC = (E, D) => new Promise((C, B) => {
2152
+ }, kC = (E, D) => new Promise((C, B) => {
2166
2153
  try {
2167
2154
  h.createMxObject({
2168
- canvasId: hC(E),
2155
+ canvasId: TC(E),
2169
2156
  isCPPMxCAD: !0,
2170
2157
  userIdentitySign: D,
2171
2158
  callback(F) {
@@ -2177,28 +2164,28 @@ const hC = (E) => {
2177
2164
  } catch (F) {
2178
2165
  B(F);
2179
2166
  }
2180
- }), wC = async (E) => {
2181
- MD.state.MxFun || await EC();
2182
- const { multipleSelect: D, networkFonts: C, fontspath: B, locateFile: F, wasmBinary: A, canvas: e, userIdentitySign: t, onOpenFileComplete: r, fileUrl: s, onInit: o = () => {
2167
+ }), RC = async (E) => {
2168
+ PD.state.MxFun || await iC();
2169
+ const { multipleSelect: D, openParameter: C, networkFonts: B, fontspath: F, locateFile: A, wasmBinary: t, canvas: e, userIdentitySign: r, onOpenFileComplete: s, fileUrl: o, onInit: u = () => {
2183
2170
  h.setIniset({
2184
2171
  EnableIntelliSelect: !0,
2185
2172
  IntelliSelectType: 1,
2186
2173
  multipleSelect: !!D
2187
2174
  });
2188
2175
  } } = E || {};
2189
- await _D(() => {
2190
- }, F, A, B, C), o();
2191
- let u = await yC(e, t);
2192
- const l = h.getMxFunTHREE();
2193
- let c = new l.Vector2();
2194
- u.getRenderer().getSize(c);
2195
- const n = i.App.CreateMxCAD(c.width, c.height, u.getCanvas().id, u.isWebgl2(), u.getId());
2196
- return u.initMxCpp(n), u.addEvent("openFileComplete", () => {
2197
- r && r();
2198
- }), s && n.openWebFile(s), n;
2176
+ await qD(() => {
2177
+ }, A, t, F, B), u();
2178
+ let l = await kC(e, r);
2179
+ const m = h.getMxFunTHREE();
2180
+ let n = new m.Vector2();
2181
+ l.getRenderer().getSize(n);
2182
+ const c = i.App.CreateMxCAD(n.width, n.height, l.getCanvas().id, l.isWebgl2(), l.getId());
2183
+ return l.initMxCpp(c), l.addEvent("openFileComplete", () => {
2184
+ s && s();
2185
+ }), o && c.openWebFile(o, void 0, !0, C), c;
2199
2186
  };
2200
- async function gC() {
2201
- const E = new O();
2187
+ async function SC() {
2188
+ const E = new S();
2202
2189
  E.setMessage(`
2203
2190
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
2204
2191
  let D = await E.go();
@@ -2208,7 +2195,7 @@ async function gC() {
2208
2195
  if (C.length <= 0)
2209
2196
  return;
2210
2197
  let B = h.screenCoordLong2Doc(50);
2211
- C = J.b64Encode(C);
2198
+ C = Y.b64Encode(C);
2212
2199
  const F = {
2213
2200
  postx: D.x,
2214
2201
  posty: D.y,
@@ -2217,43 +2204,43 @@ async function gC() {
2217
2204
  };
2218
2205
  h.call("Mx_Text", F);
2219
2206
  }
2220
- class bC extends PD {
2207
+ class OC extends TD {
2221
2208
  getGripPoints() {
2222
2209
  const { x: D, y: C, z: B } = this.center;
2223
- 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);
2224
- return [this.center, F, A, e, t];
2210
+ 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);
2211
+ return [this.center, F, A, t, e];
2225
2212
  }
2226
2213
  moveGripPointsAt(D, C) {
2227
- const [B, F, A, e, t] = this.getGripPoints();
2228
- 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;
2214
+ const [B, F, A, t, e] = this.getGripPoints();
2215
+ 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;
2229
2216
  }
2230
2217
  }
2231
2218
  const wD = (E) => {
2232
- const [D, C, B] = E, { x: F, y: A, z: e } = D, { x: t, y: r, z: s } = C, { x: o, y: u, z: l } = B, c = A * s - r * e - A * l + u * e + r * l - u * s, n = -(F * s - t * e - F * l + o * e + t * l - o * s), m = F * r - t * A - F * u + o * A + t * u - o * r, w = -(F * r * l - F * u * s - t * A * l + t * u * e + o * A * s - o * r * e), b = 2 * (t - F), p = 2 * (r - A), d = 2 * (s - e), x = F * F + A * A + e * e - t * t - r * r - s * s, f = 2 * (o - F), g = 2 * (u - A), M = 2 * (l - e), L = F * F + A * A + e * e - o * o - u * u - l * l, $ = -(n * d * L - n * M * x - p * m * L + p * M * w + g * m * x - g * d * w) / (c * p * M - c * g * d - b * n * M + b * g * m + f * n * d - f * p * m), DC = (c * d * L - c * M * x - b * m * L + b * M * w + f * m * x - f * d * w) / (c * p * M - c * g * d - b * n * M + b * g * m + f * n * d - f * p * m), CC = -(c * p * L - c * g * x - b * n * L + b * g * w + f * n * x - f * p * w) / (c * p * M - c * g * d - b * n * M + b * g * m + f * n * d - f * p * m);
2233
- return new THREE.Vector3($, DC, CC);
2219
+ const [D, C, B] = E, { x: F, y: A, z: t } = D, { x: e, y: r, z: s } = C, { x: o, y: u, z: l } = B, m = A * s - r * t - A * l + u * t + r * l - u * s, n = -(F * s - e * t - F * l + o * t + e * l - o * s), c = F * r - e * A - F * u + o * A + e * u - o * r, g = -(F * r * l - F * u * s - e * A * l + e * u * t + o * A * s - o * r * t), b = 2 * (e - F), p = 2 * (r - A), d = 2 * (s - t), f = F * F + A * A + t * t - e * e - r * r - s * s, x = 2 * (o - F), w = 2 * (u - A), M = 2 * (l - t), L = F * F + A * A + t * t - o * o - u * u - l * l, J = -(n * d * L - n * M * f - p * c * L + p * M * g + w * c * f - w * d * g) / (m * p * M - m * w * d - b * n * M + b * w * c + x * n * d - x * p * c), CC = (m * d * L - m * M * f - b * c * L + b * M * g + x * c * f - x * d * g) / (m * p * M - m * w * d - b * n * M + b * w * c + x * n * d - x * p * c), BC = -(m * p * L - m * w * f - b * n * L + b * w * g + x * n * f - x * p * g) / (m * p * M - m * w * d - b * n * M + b * w * c + x * n * d - x * p * c);
2220
+ return new THREE.Vector3(J, CC, BC);
2234
2221
  };
2235
- function qD() {
2236
- const E = new O();
2237
- let D = new bC(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2222
+ function ZD() {
2223
+ const E = new S();
2224
+ let D = new OC(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2238
2225
  v.use(D), D.closed = !1, D.setColor(C);
2239
2226
  let B = 0, F = "default", A = !0;
2240
- const e = () => {
2227
+ const t = () => {
2241
2228
  E.setUserDraw(
2242
- (n, m) => {
2243
- D.radius = A ? D.center.distanceTo(n) : D.center.distanceTo(n) / 2, m.drawCustomEntity(D), m.drawLine(D.center, n);
2229
+ (n, c) => {
2230
+ D.radius = A ? D.center.distanceTo(n) : D.center.distanceTo(n) / 2, c.drawCustomEntity(D), c.drawLine(D.center, n);
2244
2231
  }
2245
2232
  );
2246
- }, t = (n) => {
2233
+ }, e = (n) => {
2247
2234
  if (F === "default") {
2248
2235
  if (n === T.kOk) {
2249
2236
  if (B === 0)
2250
2237
  E.setMessage(`
2251
- \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(), e();
2238
+ \u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(), t();
2252
2239
  else if (B === 1)
2253
- return i.GetCurrentMxCAD().DrawEntity(new W(D.center.x, D.center.y, 0, D.radius)), !0;
2240
+ return i.GetCurrentMxCAD().DrawEntity(new V(D.center.x, D.center.y, 0, D.radius)), !0;
2254
2241
  B++;
2255
2242
  }
2256
- n === T.kKeyWord && E.isKeyWordPicked("D") && (A = !1, e(), E.setMessage(`
2243
+ n === T.kKeyWord && E.isKeyWordPicked("D") && (A = !1, t(), E.setMessage(`
2257
2244
  \u6307\u5B9A\u5706\u7684\u76F4\u5F84:`), E.setKeyWords(""));
2258
2245
  }
2259
2246
  };
@@ -2261,42 +2248,42 @@ function qD() {
2261
2248
  const s = (n) => {
2262
2249
  if (F === "3P" && (E.setMessage(`
2263
2250
  \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E00\u4E2A\u70B9:`), n === T.kOk)) {
2264
- if (B === 0 && (r.push(E.value()), E.setUserDraw((m, w) => {
2265
- w.drawLine(r[0], m);
2251
+ if (B === 0 && (r.push(E.value()), E.setUserDraw((c, g) => {
2252
+ g.drawLine(r[0], c);
2266
2253
  }), E.setMessage(`
2267
- \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), B === 1 && (r.push(E.value()), E.setUserDraw((m, w) => {
2268
- const [b, p] = r, d = m;
2254
+ \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), B === 1 && (r.push(E.value()), E.setUserDraw((c, g) => {
2255
+ const [b, p] = r, d = c;
2269
2256
  D.center = wD([
2270
2257
  b,
2271
2258
  p,
2272
2259
  d
2273
- ]), D.radius = D.center.distanceTo(b), w.drawCustomEntity(D);
2260
+ ]), D.radius = D.center.distanceTo(b), g.drawCustomEntity(D);
2274
2261
  }), E.setMessage(`
2275
2262
  \u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E09\u4E2A\u70B9:`)), B === 2)
2276
- return r.push(E.value()), D.center = wD(r), D.radius = D.center.distanceTo(r[0]), i.GetCurrentMxCAD().DrawEntity(new W(D.center.x, D.center.y, 0, D.radius)), !0;
2263
+ return r.push(E.value()), D.center = wD(r), D.radius = D.center.distanceTo(r[0]), i.GetCurrentMxCAD().DrawEntity(new V(D.center.x, D.center.y, 0, D.radius)), !0;
2277
2264
  B++;
2278
2265
  }
2279
2266
  };
2280
2267
  let o;
2281
- const u = (n, m) => {
2282
- new THREE.Line3(n, m).getCenter(D.center), D.radius = m.distanceTo(n) / 2;
2268
+ const u = (n, c) => {
2269
+ new THREE.Line3(n, c).getCenter(D.center), D.radius = c.distanceTo(n) / 2;
2283
2270
  }, l = (n) => {
2284
2271
  if (F === "2P" && (E.setMessage(`
2285
2272
  \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E00\u4E2A\u7AEF\u70B9:`), n === T.kOk)) {
2286
- if (B === 0 && (o = E.value(), E.setUserDraw((m, w) => {
2287
- u(o, m), w.drawCustomEntity(D), w.drawLine(o, m);
2273
+ if (B === 0 && (o = E.value(), E.setUserDraw((c, g) => {
2274
+ u(o, c), g.drawCustomEntity(D), g.drawLine(o, c);
2288
2275
  }), E.setMessage(`
2289
2276
  \u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E8C\u4E2A\u7AEF\u70B9:`)), B === 1)
2290
- return u(o, E.value()), i.GetCurrentMxCAD().DrawEntity(new W(D.center.x, D.center.y, 0, D.radius)), !0;
2277
+ return u(o, E.value()), i.GetCurrentMxCAD().DrawEntity(new V(D.center.x, D.center.y, 0, D.radius)), !0;
2291
2278
  B++;
2292
2279
  }
2293
- }, c = (n) => {
2280
+ }, m = (n) => {
2294
2281
  if (F === "T") {
2295
2282
  if (E.setMessage(`
2296
2283
  \u6307\u5B9A\u5BF9\u8C61\u4E0E\u5706\u7684\u7B2C\u4E00\u4E2A\u5207\u70B9:`), n === T.kOk) {
2297
2284
  if (B === 0) {
2298
- const m = E.value();
2299
- console.log(m), h.getCurrentDraw();
2285
+ const c = E.value();
2286
+ console.log(c), h.getCurrentDraw();
2300
2287
  }
2301
2288
  B++;
2302
2289
  }
@@ -2308,30 +2295,30 @@ function qD() {
2308
2295
  \u6307\u5B9A\u5706\u7684\u5706\u5FC3\u6216[\u4E09\u70B9(3P)/\u4E24\u70B9(2P)/\u5207\u70B9\u3001\u5207\u70B9\u3001\u534A\u5F84(T)]:`
2309
2296
  ), E.setKeyWords("3P 2P T"), E.goWhile(
2310
2297
  (n) => {
2311
- if (n === T.kKeyWord && (E.isKeyWordPicked("3P") ? F = "3P" : E.isKeyWordPicked("2P") ? F = "2P" : E.isKeyWordPicked("T") && (F = "T")), t(n))
2298
+ if (n === T.kKeyWord && (E.isKeyWordPicked("3P") ? F = "3P" : E.isKeyWordPicked("2P") ? F = "2P" : E.isKeyWordPicked("T") && (F = "T")), e(n))
2312
2299
  return { exit: !0 };
2313
2300
  if (s(n))
2314
2301
  return { exit: !0 };
2315
2302
  if (l(n))
2316
2303
  return { exit: !0 };
2317
- if (c(n))
2304
+ if (m(n))
2318
2305
  return { exit: !0 };
2319
2306
  },
2320
2307
  (n) => {
2321
- n === T.kCancel && i.GetCurrentMxCAD().DrawEntity(new W(D.center.x, D.center.y, 0, D.radius));
2308
+ n === T.kCancel && i.GetCurrentMxCAD().DrawEntity(new V(D.center.x, D.center.y, 0, D.radius));
2322
2309
  }
2323
2310
  );
2324
2311
  }
2325
2312
  h.on("init", () => {
2326
- h.addCommand("Mx_Circle", qD);
2313
+ h.addCommand("Mx_Circle", ZD);
2327
2314
  });
2328
- const gD = () => MD.state.MxFun.stopRunCommand();
2329
- function rD(E, D, C, B) {
2315
+ const bD = () => PD.state.MxFun.stopRunCommand();
2316
+ function sD(E, D, C, B) {
2330
2317
  const F = E - C, A = D - B;
2331
- let e = 0;
2332
- 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;
2318
+ let t = 0;
2319
+ 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;
2333
2320
  }
2334
- const S = (E, D, C) => {
2321
+ const O = (E, D, C) => {
2335
2322
  const B = () => {
2336
2323
  E.go((F) => {
2337
2324
  if (F === T.kKeyWord && C() && B(), F === T.kOk && D() && B(), F === T.kNone && B(), F === T.kCancel)
@@ -2340,56 +2327,56 @@ const S = (E, D, C) => {
2340
2327
  };
2341
2328
  return B;
2342
2329
  };
2343
- async function ZD() {
2344
- const E = new O();
2345
- let D = new Q(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor(), B = [];
2330
+ async function $D() {
2331
+ const E = new S();
2332
+ let D = new X(), C = i.GetCurrentDatabase().GetCurrentlyDrawColor(), B = [];
2346
2333
  E.setMessage(`
2347
2334
  \u6307\u5B9A\u7B2C\u4E00\u70B9:`);
2348
2335
  let F = await E.go();
2349
2336
  if (!F)
2350
2337
  return;
2351
- E.setUserDraw((e, t) => {
2352
- t.setColor(C), B.forEach((r) => {
2353
- r.color = C, t.drawCustomEntity(r);
2354
- }), t.drawLine(F, e);
2338
+ E.setUserDraw((t, e) => {
2339
+ e.setColor(C), B.forEach((r) => {
2340
+ r.color = C, e.drawCustomEntity(r);
2341
+ }), e.drawLine(F, t);
2355
2342
  });
2356
2343
  const A = () => {
2357
2344
  E.setMessage(`
2358
2345
  \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)]");
2359
2346
  };
2360
2347
  A(), E.goWhile(
2361
- (e) => {
2362
- if (e === T.kOk && (D = new Q(), v.use(D), D.pt1 = F, D.pt2 = E.value(), F = D.pt2.clone(), B.push(D), A()), e === T.kKeyWord) {
2348
+ (t) => {
2349
+ if (t === T.kOk && (D = new X(), v.use(D), D.pt1 = F, D.pt2 = E.value(), F = D.pt2.clone(), B.push(D), A()), t === T.kKeyWord) {
2363
2350
  if (E.isKeyWordPicked("E"))
2364
- gD();
2351
+ bD();
2365
2352
  else if (E.isKeyWordPicked("C")) {
2366
- const t = new Q();
2367
- return t.pt1 = F.clone(), t.pt2 = B[0].pt1.clone(), v.use(t), B.push(t), F = t.pt2.clone(), gD(), { exit: !0 };
2353
+ const e = new X();
2354
+ return e.pt1 = F.clone(), e.pt2 = B[0].pt1.clone(), v.use(e), B.push(e), F = e.pt2.clone(), bD(), { exit: !0 };
2368
2355
  } else if (E.isKeyWordPicked("U")) {
2369
- const t = B.pop();
2370
- t && (F = t.pt1);
2356
+ const e = B.pop();
2357
+ e && (F = e.pt1);
2371
2358
  }
2372
2359
  }
2373
2360
  },
2374
- (e) => (e != T.kCancel && B.forEach((t) => {
2375
- i.GetCurrentMxCAD().DrawEntity(new X(t.pt1.x, t.pt1.y, 0, t.pt2.x, t.pt2.y, 0));
2361
+ (t) => (t != T.kCancel && B.forEach((e) => {
2362
+ i.GetCurrentMxCAD().DrawEntity(new DD(e.pt1.x, e.pt1.y, 0, e.pt2.x, e.pt2.y, 0));
2376
2363
  }), { exit: !0 })
2377
2364
  );
2378
2365
  }
2379
- async function fC() {
2366
+ async function LC() {
2380
2367
  let E = new z();
2381
2368
  for (E.setMessage("\u6307\u5B9A\u70B9"); ; ) {
2382
2369
  let D = await E.go();
2383
2370
  if (D == null)
2384
2371
  break;
2385
- i.GetCurrentMxCAD().DrawEntity(new dD(D));
2372
+ i.GetCurrentMxCAD().DrawEntity(new hD(D));
2386
2373
  }
2387
2374
  }
2388
2375
  h.on("init", () => {
2389
- h.addCommand("Mx_Line", ZD), h.addCommand("Mx_Point", fC);
2376
+ h.addCommand("Mx_Line", $D), h.addCommand("Mx_Point", LC);
2390
2377
  });
2391
- async function xC() {
2392
- const E = new O();
2378
+ async function vC() {
2379
+ const E = new S();
2393
2380
  E.setMessage(`
2394
2381
  \u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
2395
2382
  let D = await E.go();
@@ -2400,7 +2387,7 @@ async function xC() {
2400
2387
  if (C.length <= 0)
2401
2388
  return;
2402
2389
  let B = h.screenCoordLong2Doc(50);
2403
- C = J.b64Encode(C);
2390
+ C = Y.b64Encode(C);
2404
2391
  const F = {
2405
2392
  postx: D.x,
2406
2393
  posty: D.y,
@@ -2409,10 +2396,10 @@ async function xC() {
2409
2396
  };
2410
2397
  h.call("Mx_MText", F);
2411
2398
  }
2412
- async function $D() {
2413
- const E = new O();
2399
+ async function JD() {
2400
+ const E = new S();
2414
2401
  let D = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2415
- const C = new FC();
2402
+ const C = new rC();
2416
2403
  v.use(C), C.color = D, E.setMessage(`
2417
2404
  \u6307\u5B9A\u8D77\u70B9:`);
2418
2405
  let B;
@@ -2429,59 +2416,59 @@ async function $D() {
2429
2416
  },
2430
2417
  (F) => {
2431
2418
  if (F != T.kCancel) {
2432
- let A = i.GetCurrentMxCAD(), e = new CD();
2433
- for (let t = 0; t < C.points.length; t++)
2434
- e.addVertexAt(C.points[t]);
2435
- A.DrawEntity(e);
2419
+ let A = i.GetCurrentMxCAD(), t = new BD();
2420
+ for (let e = 0; e < C.points.length; e++)
2421
+ t.addVertexAt(C.points[e]);
2422
+ A.DrawEntity(t);
2436
2423
  }
2437
2424
  }
2438
2425
  );
2439
2426
  }
2440
2427
  h.on("init", () => {
2441
- h.addCommand("Mx_Pline", $D);
2428
+ h.addCommand("Mx_Pline", JD);
2442
2429
  });
2443
- async function JD() {
2444
- const E = new O();
2430
+ async function YD() {
2431
+ const E = new S();
2445
2432
  E.setMessage(`
2446
2433
  \u6307\u5B9A\u4E00\u70B9:`);
2447
- let D = await E.go(), C = new W();
2434
+ let D = await E.go(), C = new V();
2448
2435
  C.setCenter(D.x, D.y, D.z);
2449
2436
  let B = 5, F = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2450
- E.setUserDraw((A, e) => {
2451
- e.setColor(F), C.radius = D.distanceTo(A);
2452
- let t = C.getEndParam().val, s = C.getDistAtParam(t).val / B, o = 0, u = new THREE.Vector3(), l = new THREE.Vector3();
2453
- for (let c = 0; c < B; c++) {
2437
+ E.setUserDraw((A, t) => {
2438
+ t.setColor(F), C.radius = D.distanceTo(A);
2439
+ let e = C.getEndParam().val, s = C.getDistAtParam(e).val / B, o = 0, u = new THREE.Vector3(), l = new THREE.Vector3();
2440
+ for (let m = 0; m < B; m++) {
2454
2441
  let n = C.getPointAtDist(o).val;
2455
- o += s, c > 0 ? e.drawMcDbLine(n.x, n.y, n.z, u.x, u.y, u.z) : l = new THREE.Vector3(n.x, n.y, n.z), c == B - 1 && e.drawMcDbLine(n.x, n.y, n.z, l.x, l.y, l.z), u = new THREE.Vector3(n.x, n.y, n.z);
2442
+ o += s, m > 0 ? t.drawMcDbLine(n.x, n.y, n.z, u.x, u.y, u.z) : l = new THREE.Vector3(n.x, n.y, n.z), m == B - 1 && t.drawMcDbLine(n.x, n.y, n.z, l.x, l.y, l.z), u = new THREE.Vector3(n.x, n.y, n.z);
2456
2443
  }
2457
2444
  }), E.setMessage(`
2458
2445
  \u6307\u5B9A\u4E8C\u70B9:`), await E.go(), E.drawReserve();
2459
2446
  }
2460
- h.addCommand("Mx_Polygon", JD);
2461
- function MC(E, D, C) {
2462
- const B = E.x, F = D.x, A = C.x, e = E.y, t = D.y, r = C.y, s = B - F, o = e - t, u = B - A, l = e - r, c = (B * B - F * F + (e * e - t * t)) / 2, n = (B * B - A * A + (e * e - r * r)) / 2, m = o * u - s * l, w = -(l * c - o * n) / m, b = -(s * n - u * c) / m;
2463
- return new THREE.Vector3(w, b, 0);
2447
+ h.addCommand("Mx_Polygon", YD);
2448
+ function jC(E, D, C) {
2449
+ const B = E.x, F = D.x, A = C.x, t = E.y, e = D.y, r = C.y, s = B - F, o = t - e, u = B - A, l = t - r, m = (B * B - F * F + (t * t - e * e)) / 2, n = (B * B - A * A + (t * t - r * r)) / 2, c = o * u - s * l, g = -(l * m - o * n) / c, b = -(s * n - u * m) / c;
2450
+ return new THREE.Vector3(g, b, 0);
2464
2451
  }
2465
- function PC(E, D) {
2452
+ function IC(E, D) {
2466
2453
  const C = E.x, B = E.y, F = D.x, A = D.y;
2467
2454
  return Math.sqrt((C - F) * (C - F) + (B - A) * (B - A));
2468
2455
  }
2469
- function TC(E, D, C) {
2456
+ function GC(E, D, C) {
2470
2457
  let B;
2471
2458
  E < C ? B = C - E : B = C - E + 360;
2472
2459
  let F;
2473
2460
  return E < D ? F = D - E : F = D - E + 360, F > B;
2474
2461
  }
2475
- function sD(E, D, C) {
2476
- const B = E.x, F = D.x, A = E.y, e = D.y;
2477
- let t, r, s;
2478
- return t = (A - e) / C, r = (B - F) / C, r >= 0.99999 && (r = 0.99999), r <= -0.99999 && (r = -0.99999), s = Math.acos(r), s = s / Math.PI * 180, t < -0.05 && (s = 360 - s), {
2479
- sin: t,
2462
+ function nD(E, D, C) {
2463
+ const B = E.x, F = D.x, A = E.y, t = D.y;
2464
+ let e, r, s;
2465
+ return e = (A - t) / C, r = (B - F) / C, r >= 0.99999 && (r = 0.99999), r <= -0.99999 && (r = -0.99999), s = Math.acos(r), s = s / Math.PI * 180, e < -0.05 && (s = 360 - s), {
2466
+ sin: e,
2480
2467
  cos: r,
2481
2468
  angle: s
2482
2469
  };
2483
2470
  }
2484
- class yD extends PD {
2471
+ class gD extends TD {
2485
2472
  constructor() {
2486
2473
  super(), this._propertyDbKeys = [...this._propertyDbKeys, "bulge"];
2487
2474
  }
@@ -2489,24 +2476,24 @@ class yD extends PD {
2489
2476
  return "MxDbCircle";
2490
2477
  }
2491
2478
  create() {
2492
- return new yD();
2479
+ return new gD();
2493
2480
  }
2494
2481
  getArcBulge(D, C, B) {
2495
2482
  const F = D.distanceTo(C);
2496
- let t = 2 * new THREE.Line3(D, C).getCenter(
2483
+ let e = 2 * new THREE.Line3(D, C).getCenter(
2497
2484
  new THREE.Vector3()
2498
2485
  ).distanceTo(B) / F;
2499
- 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;
2486
+ 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;
2500
2487
  }
2501
2488
  getArcMidPoint(D, C, B, F, A) {
2502
- const e = D, t = B * Math.PI / 180;
2489
+ const t = D, e = B * Math.PI / 180;
2503
2490
  let r = F * Math.PI / 180;
2504
2491
  const s = new THREE.Vector3(), o = new THREE.Vector3();
2505
- s.x = e.x + C * Math.cos(t), s.y = e.y + C * Math.sin(t), o.x = e.x + C * Math.cos(r), o.y = e.y + C * Math.sin(r);
2492
+ s.x = t.x + C * Math.cos(e), s.y = t.y + C * Math.sin(e), o.x = t.x + C * Math.cos(r), o.y = t.y + C * Math.sin(r);
2506
2493
  const u = C;
2507
2494
  (A ? B < F : B > F) && (r += Math.PI * 2);
2508
2495
  const l = new THREE.Vector3();
2509
- return l.x = e.x + u * Math.cos((t + r) / 2), l.y = e.y + u * Math.sin((t + r) / 2), [s, l, o, this.center];
2496
+ return l.x = t.x + u * Math.cos((e + r) / 2), l.y = t.y + u * Math.sin((e + r) / 2), [s, l, o, this.center];
2510
2497
  }
2511
2498
  getGripPoints() {
2512
2499
  return this.getArcMidPoint(
@@ -2525,72 +2512,72 @@ class yD extends PD {
2525
2512
  }
2526
2513
  upDatePoints(D, C, B) {
2527
2514
  D[C].add(B);
2528
- const [F, A, e] = D;
2529
- this.center = MC(F, e, A), this.radius = PC(A, this.center);
2530
- const t = sD(F, this.center, this.radius), r = sD(e, this.center, this.radius), s = sD(A, this.center, this.radius);
2531
- this.clockwise = TC(
2515
+ const [F, A, t] = D;
2516
+ this.center = jC(F, t, A), this.radius = IC(A, this.center);
2517
+ const e = nD(F, this.center, this.radius), r = nD(t, this.center, this.radius), s = nD(A, this.center, this.radius);
2518
+ this.clockwise = GC(
2532
2519
  r.angle,
2533
- t.angle,
2520
+ e.angle,
2534
2521
  s.angle
2535
- ), this.startAngle = THREE.MathUtils.degToRad(t.angle), this.endAngle = THREE.MathUtils.degToRad(r.angle);
2522
+ ), this.startAngle = THREE.MathUtils.degToRad(e.angle), this.endAngle = THREE.MathUtils.degToRad(r.angle);
2536
2523
  }
2537
2524
  }
2538
- async function YD() {
2525
+ async function QD() {
2539
2526
  let E = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2540
- const D = new O();
2527
+ const D = new S();
2541
2528
  D.setMessage(`
2542
2529
  \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)]");
2543
- let C = new yD();
2530
+ let C = new gD();
2544
2531
  C.closed = !1, v.use(C);
2545
2532
  let B, F, A;
2546
- const e = S(
2533
+ const t = O(
2547
2534
  D,
2548
2535
  () => {
2549
2536
  B = D.value(), D.setMessage(`
2550
2537
  \u6307\u5B9A\u5706\u5F27\u7684\u7B2C\u4E8C\u4E2A\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)/\u7AEF\u70B9(E)]"), D.setUserDraw((p, d) => {
2551
2538
  d.setColor(E), d.drawLine(B, p);
2552
- }), m();
2539
+ }), c();
2553
2540
  },
2554
2541
  () => {
2555
2542
  if (D.isKeyWordPicked("C")) {
2556
- const p = new Y();
2543
+ const p = new Q();
2557
2544
  p.color = E, C.center = D.value(), p.center = D.value(), D.setMessage(`
2558
2545
  \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), D.setKeyWords(""), r();
2559
2546
  } else
2560
2547
  return !0;
2561
2548
  }
2562
2549
  );
2563
- let t;
2564
- const r = S(
2550
+ let e;
2551
+ const r = O(
2565
2552
  D,
2566
2553
  () => {
2567
- t = D.value(), A = new Y(), A.closed = !1, v.use(A), A.color = E, A.center = t, C.center = t, D.setMessage(`
2554
+ e = D.value(), A = new Q(), A.closed = !1, v.use(A), A.color = E, A.center = e, C.center = e, D.setMessage(`
2568
2555
  \u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setUserDraw((p, d) => {
2569
- d.drawCustomEntity(A), d.setColor(E), d.drawLine(t, p);
2556
+ d.drawCustomEntity(A), d.setColor(E), d.drawLine(e, p);
2570
2557
  }), u();
2571
2558
  },
2572
2559
  () => {
2573
2560
  }
2574
2561
  );
2575
2562
  let s, o;
2576
- const u = S(
2563
+ const u = O(
2577
2564
  D,
2578
2565
  () => {
2579
2566
  s = D.value(), A.endPoint = s, D.setMessage(
2580
2567
  `
2581
2568
  \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)]:`
2582
- ), D.setKeyWords("A L R"), o = new Q(), o.setDashLineDisplay(!0), o.setDashArray(0.05), o.setLineWidth(2), o.setColor("#ffd30d"), o.pt1 = A.center, D.setUserDraw((p, d) => {
2569
+ ), D.setKeyWords("A L R"), o = new X(), o.setDashLineDisplay(!0), o.setDashArray(0.05), o.setLineWidth(2), o.setColor("#ffd30d"), o.pt1 = A.center, D.setUserDraw((p, d) => {
2583
2570
  A.startPoint = p, o.pt2 = p, d.drawCustomEntity(A), d.drawCustomEntity(o);
2584
- }), c();
2571
+ }), m();
2585
2572
  },
2586
2573
  () => {
2587
2574
  }
2588
2575
  );
2589
2576
  let l;
2590
- const c = S(
2577
+ const m = O(
2591
2578
  D,
2592
2579
  () => {
2593
- l = D.value(), A.startPoint = l, A.endPoint = s, w.DrawArc(A.center.x, A.center.y, A.radius, A.startAngle, A.endAngle);
2580
+ l = D.value(), A.startPoint = l, A.endPoint = s, g.DrawArc(A.center.x, A.center.y, A.radius, A.startAngle, A.endAngle);
2594
2581
  },
2595
2582
  () => {
2596
2583
  if (D.isKeyWordPicked("A"))
@@ -2619,22 +2606,22 @@ async function YD() {
2619
2606
  }
2620
2607
  );
2621
2608
  let n;
2622
- const m = S(
2609
+ const c = O(
2623
2610
  D,
2624
2611
  () => {
2625
2612
  n = D.value(), D.setMessage(`
2626
- \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), F = new AC(), F.color = E, F.autoClockwise = !0, F.closed = !1, v.use(F), D.setUserDraw((p, d) => {
2613
+ \u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), F = new sC(), F.color = E, F.autoClockwise = !0, F.closed = !1, v.use(F), D.setUserDraw((p, d) => {
2627
2614
  F.point1 = B, F.point3 = n, F.point2 = p, d.drawCustomEntity(F);
2628
2615
  }), b();
2629
2616
  },
2630
2617
  () => {
2631
2618
  if (D.isKeyWordPicked("C"))
2632
- A = new Y(), A.closed = !1, v.use(A), A.color = E, D.setMessage(`
2619
+ A = new Q(), A.closed = !1, v.use(A), A.color = E, D.setMessage(`
2633
2620
  \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((p, d) => {
2634
2621
  A.startPoint = B, d.drawLine(p, A.startPoint);
2635
2622
  }), r();
2636
2623
  else if (D.isKeyWordPicked("E"))
2637
- A = new Y(), A.closed = !1, v.use(A), A.color = E, D.setMessage(`
2624
+ A = new Q(), A.closed = !1, v.use(A), A.color = E, D.setMessage(`
2638
2625
  \u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((p, d) => {
2639
2626
  A.startPoint = B, d.drawLine(p, A.startPoint);
2640
2627
  }), r();
@@ -2642,13 +2629,13 @@ async function YD() {
2642
2629
  return !0;
2643
2630
  }
2644
2631
  );
2645
- let w = i.GetCurrentMxCAD();
2646
- const b = S(
2632
+ let g = i.GetCurrentMxCAD();
2633
+ const b = O(
2647
2634
  D,
2648
2635
  () => {
2649
2636
  F.point1 = B, F.point2 = D.value(), F.point3 = n;
2650
- let p = new BD();
2651
- p.computeArc(F.point1.x, F.point1.y, F.point3.x, F.point3.y, F.point2.x, F.point2.y), w.DrawEntity(p);
2637
+ let p = new ED();
2638
+ p.computeArc(F.point1.x, F.point1.y, F.point3.x, F.point3.y, F.point2.x, F.point2.y), g.DrawEntity(p);
2652
2639
  },
2653
2640
  () => {
2654
2641
  if (D.isKeyWordPicked("C"))
@@ -2659,70 +2646,70 @@ async function YD() {
2659
2646
  return !0;
2660
2647
  }
2661
2648
  );
2662
- e();
2649
+ t();
2663
2650
  }
2664
2651
  h.on("init", () => {
2665
- h.addCommand("Mx_Arc", YD);
2652
+ h.addCommand("Mx_Arc", QD);
2666
2653
  });
2667
- function QD() {
2668
- const E = new O(), D = new eC();
2654
+ function XD() {
2655
+ const E = new S(), D = new nC();
2669
2656
  D.closed = !1, v.use(D), E.setMessage(`
2670
2657
  \u6307\u5B9A\u692D\u5706\u7684\u8F74\u7AEF\u70B9`), E.setKeyWords("[\u4E2D\u5FC3\u70B9(C)]");
2671
2658
  let C, B = new THREE.Vector3();
2672
- S(
2659
+ O(
2673
2660
  E,
2674
2661
  () => {
2675
2662
  C = E.value(), E.setUserDraw((s, o) => {
2676
2663
  const u = new THREE.Line3(C, s);
2677
- u.getCenter(B), D.center = B, D.xRadius = u.distance() / 2, D.yRadius = D.xRadius, D.rotation = rD(s.x, s.y, B.x, B.y), o.drawLine(s, C);
2664
+ u.getCenter(B), D.center = B, D.xRadius = u.distance() / 2, D.yRadius = D.xRadius, D.rotation = sD(s.x, s.y, B.x, B.y), o.drawLine(s, C);
2678
2665
  }), E.setMessage(`
2679
2666
  \u6307\u5B9A\u692D\u5706\u5F27\u8F74\u7684\u53E6\u4E00\u4E2A\u7AEF\u70B9:`), E.setKeyWords(""), A();
2680
2667
  },
2681
2668
  () => {
2682
2669
  }
2683
2670
  )();
2684
- const A = S(
2671
+ const A = O(
2685
2672
  E,
2686
2673
  () => {
2687
2674
  E.setUserDraw((s, o) => {
2688
2675
  D.yRadius = B.distanceTo(s), o.drawLine(B, s), o.drawCustomEntity(D);
2689
2676
  }), E.setMessage(`
2690
- \u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), E.setKeyWords(""), e();
2677
+ \u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), E.setKeyWords(""), t();
2691
2678
  },
2692
2679
  () => {
2693
2680
  }
2694
- ), e = S(
2681
+ ), t = O(
2695
2682
  E,
2696
2683
  () => {
2697
2684
  E.setMessage(`
2698
2685
  \u6307\u5B9A\u8D77\u59CB\u89D2\u5EA6`), E.setKeyWords(""), E.setUserDraw((s, o) => {
2699
- D.startAngle = rD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2700
- }), t();
2686
+ D.startAngle = sD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2687
+ }), e();
2701
2688
  },
2702
2689
  () => {
2703
2690
  }
2704
- ), t = S(
2691
+ ), e = O(
2705
2692
  E,
2706
2693
  () => {
2707
2694
  E.setUserDraw((s, o) => {
2708
- D.endAngle = rD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2695
+ D.endAngle = sD(s.x, s.y, B.x, B.y) - D.rotation, o.drawLine(B, s), o.drawCustomEntity(D);
2709
2696
  }), E.setMessage(`
2710
2697
  \u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), E.setKeyWords(""), r();
2711
2698
  },
2712
2699
  () => {
2713
2700
  }
2714
- ), r = S(
2701
+ ), r = O(
2715
2702
  E,
2716
2703
  () => {
2717
2704
  let s = new y(D.xRadius, 0, 0);
2718
- s.rotateBy(D.rotation, y.kZAxis), i.GetCurrentMxCAD().DrawEntity(new FD(D.center.x, D.center.y, 0, s.x, s.y, 0, D.yRadius / D.xRadius, D.startAngle, D.endAngle));
2705
+ s.rotateBy(D.rotation, y.kZAxis), i.GetCurrentMxCAD().DrawEntity(new AD(D.center.x, D.center.y, 0, s.x, s.y, 0, D.yRadius / D.xRadius, D.startAngle, D.endAngle));
2719
2706
  },
2720
2707
  () => {
2721
2708
  }
2722
2709
  );
2723
2710
  }
2724
- function kC() {
2725
- const E = new O(), D = new tC(), C = new iC();
2711
+ function VC() {
2712
+ const E = new S(), D = new oC(), C = new aC();
2726
2713
  let B = i.GetCurrentDatabase().GetCurrentlyDrawColor();
2727
2714
  C.setColor(B), E.setMessage(`
2728
2715
  \u70B9\u51FB\u5F00\u59CB\u7ED8\u5236\u692D\u5706:`), E.go(() => {
@@ -2730,14 +2717,14 @@ function kC() {
2730
2717
  C.point2 = F, D.drawCustomEntity(C);
2731
2718
  }), E.setUserDraw(D), E.setMessage(`
2732
2719
  \u518D\u6B21\u70B9\u51FB\u7ED3\u675F\u7ED8\u5236\u692D\u5706:`), E.go(() => {
2733
- i.GetCurrentMxCAD().DrawEntity(new FD(C.center.x, C.center.y, 0, C.xRadius, 0, 0, C.yRadius / C.xRadius));
2720
+ i.GetCurrentMxCAD().DrawEntity(new AD(C.center.x, C.center.y, 0, C.xRadius, 0, 0, C.yRadius / C.xRadius));
2734
2721
  });
2735
2722
  });
2736
2723
  }
2737
2724
  h.on("init", () => {
2738
- h.addCommand("Mx_EllipseArc", QD), h.addCommand("Mx_Ellipse", kC);
2725
+ h.addCommand("Mx_EllipseArc", XD), h.addCommand("Mx_Ellipse", VC);
2739
2726
  });
2740
- async function XD() {
2727
+ async function DC() {
2741
2728
  let E = U.getCurrentSelect();
2742
2729
  if (E.length > 0) {
2743
2730
  E.forEach((C) => {
@@ -2745,13 +2732,13 @@ async function XD() {
2745
2732
  });
2746
2733
  return;
2747
2734
  }
2748
- let D = new Z();
2735
+ let D = new $();
2749
2736
  !await D.userSelect(`
2750
2737
  \u9009\u62E9\u5220\u9664\u5BF9\u8C61`) || D.forEach((C) => {
2751
2738
  C.erase();
2752
2739
  });
2753
2740
  }
2754
- function tD(E) {
2741
+ function iD(E) {
2755
2742
  let D, C;
2756
2743
  if (E.forEach((B) => {
2757
2744
  let F = B.getMcDbEntity();
@@ -2762,171 +2749,171 @@ function tD(E) {
2762
2749
  }), D && C)
2763
2750
  return { minPt: D, maxPt: C };
2764
2751
  }
2765
- async function RC() {
2752
+ async function WC() {
2766
2753
  let E;
2767
2754
  for (; E = U.getCurrentSelect(), !(E.length > 0); ) {
2768
- let e = new Z();
2769
- if (!await e.userSelect(`
2770
- \u9009\u62E9\u590D\u5236\u5BF9\u8C61`) || (E = e.getIds(), E.length == 0))
2755
+ let t = new $();
2756
+ if (!await t.userSelect(`
2757
+ \u9009\u62E9\u590D\u5236\u5BF9\u8C61`) || (E = t.getIds(), E.length == 0))
2771
2758
  return;
2772
2759
  break;
2773
2760
  }
2774
2761
  let D, C;
2775
2762
  if (E.length >= 10) {
2776
- let e = tD(E);
2777
- e && (D = e.minPt, C = e.maxPt);
2763
+ let t = iD(E);
2764
+ t && (D = t.minPt, C = t.maxPt);
2778
2765
  }
2779
2766
  let B = new z();
2780
2767
  B.setMessage("\u6307\u5B9A\u57FA\u70B9");
2781
2768
  let F = await B.go();
2782
2769
  if (!F)
2783
2770
  return;
2784
- B.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), B.setBasePt(F), B.setUseBasePt(!0), B.setUserDraw((e, t) => {
2771
+ B.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), B.setBasePt(F), B.setUseBasePt(!0), B.setUserDraw((t, e) => {
2785
2772
  if (D && C) {
2786
- let r = e.x - F.x, s = e.y - F.y, o = new THREE.Vector3(D.x + r, C.y + s, 0), u = new THREE.Vector3(C.x + r, D.y + s, 0), l = new THREE.Vector3(o.x, u.y, 0), c = new THREE.Vector3(u.x, o.y, 0);
2787
- t.drawLine(c, o), t.drawLine(o, l), t.drawLine(l, u), t.drawLine(u, c);
2773
+ let r = t.x - F.x, s = t.y - F.y, o = new THREE.Vector3(D.x + r, C.y + s, 0), u = new THREE.Vector3(C.x + r, D.y + s, 0), l = new THREE.Vector3(o.x, u.y, 0), m = new THREE.Vector3(u.x, o.y, 0);
2774
+ e.drawLine(m, o), e.drawLine(o, l), e.drawLine(l, u), e.drawLine(u, m);
2788
2775
  }
2789
2776
  for (let r = 0; r < E.length && r < 10; r++) {
2790
2777
  let s = E[r].clone();
2791
- !s || (s.Move(F, e), t.drawMcDbEntity(s));
2778
+ !s || (s.Move(F, t), e.drawMcDbEntity(s));
2792
2779
  }
2793
2780
  });
2794
2781
  let A = await B.go();
2795
2782
  if (!!A)
2796
- for (let e = 0; e < E.length; e++) {
2797
- let t = E[e].clone();
2798
- !t || (t.Move(F, A), i.GetCurrentMxCAD().DrawEntity(t));
2783
+ for (let t = 0; t < E.length; t++) {
2784
+ let e = E[t].clone();
2785
+ !e || (e.Move(F, A), i.GetCurrentMxCAD().DrawEntity(e));
2799
2786
  }
2800
2787
  }
2801
- async function OC() {
2788
+ async function UC() {
2802
2789
  let E;
2803
2790
  for (; E = U.getCurrentSelect(), !(E.length > 0); ) {
2804
- let e = new Z();
2805
- if (!await e.userSelect(`
2806
- \u9009\u62E9\u79FB\u52A8\u5BF9\u8C61`) || (E = e.getIds(), E.length == 0))
2791
+ let t = new $();
2792
+ if (!await t.userSelect(`
2793
+ \u9009\u62E9\u79FB\u52A8\u5BF9\u8C61`) || (E = t.getIds(), E.length == 0))
2807
2794
  return;
2808
2795
  break;
2809
2796
  }
2810
2797
  let D, C;
2811
2798
  if (E.length >= 10) {
2812
- let e = tD(E);
2813
- e && (D = e.minPt, C = e.maxPt);
2799
+ let t = iD(E);
2800
+ t && (D = t.minPt, C = t.maxPt);
2814
2801
  }
2815
2802
  let B = new z();
2816
2803
  B.setMessage("\u6307\u5B9A\u57FA\u70B9");
2817
2804
  let F = await B.go();
2818
2805
  if (!F)
2819
2806
  return;
2820
- B.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), B.setBasePt(F), B.setUseBasePt(!0), B.setUserDraw((e, t) => {
2807
+ B.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), B.setBasePt(F), B.setUseBasePt(!0), B.setUserDraw((t, e) => {
2821
2808
  if (D && C) {
2822
- let r = e.x - F.x, s = e.y - F.y, o = new THREE.Vector3(D.x + r, C.y + s, 0), u = new THREE.Vector3(C.x + r, D.y + s, 0), l = new THREE.Vector3(o.x, u.y, 0), c = new THREE.Vector3(u.x, o.y, 0);
2823
- t.drawLine(c, o), t.drawLine(o, l), t.drawLine(l, u), t.drawLine(u, c);
2809
+ let r = t.x - F.x, s = t.y - F.y, o = new THREE.Vector3(D.x + r, C.y + s, 0), u = new THREE.Vector3(C.x + r, D.y + s, 0), l = new THREE.Vector3(o.x, u.y, 0), m = new THREE.Vector3(u.x, o.y, 0);
2810
+ e.drawLine(m, o), e.drawLine(o, l), e.drawLine(l, u), e.drawLine(u, m);
2824
2811
  }
2825
2812
  for (let r = 0; r < E.length && r < 10; r++) {
2826
2813
  let s = E[r].clone();
2827
- !s || (s.Move(F, e), t.drawMcDbEntity(s));
2814
+ !s || (s.Move(F, t), e.drawMcDbEntity(s));
2828
2815
  }
2829
2816
  });
2830
2817
  let A = await B.go();
2831
2818
  if (!!A)
2832
- for (let e = 0; e < E.length; e++) {
2833
- let t = E[e].getMcDbObject();
2834
- !t || t.Move(F, A);
2819
+ for (let t = 0; t < E.length; t++) {
2820
+ let e = E[t].getMcDbObject();
2821
+ !e || e.Move(F, A);
2835
2822
  }
2836
2823
  }
2837
- async function SC() {
2824
+ async function zC() {
2838
2825
  let E;
2839
2826
  for (; E = U.getCurrentSelect(), !(E.length > 0); ) {
2840
- let l = new Z();
2827
+ let l = new $();
2841
2828
  if (!await l.userSelect(`
2842
2829
  \u9009\u62E9\u65CB\u8F6C\u5BF9\u8C61`) || (E = l.getIds(), E.length == 0))
2843
2830
  return;
2844
2831
  break;
2845
2832
  }
2846
- let D, C, B = tD(E);
2833
+ let D, C, B = iD(E);
2847
2834
  B && (D = B.minPt, C = B.maxPt);
2848
2835
  let F = new z();
2849
2836
  F.setMessage("\u6307\u5B9A\u57FA\u70B9");
2850
2837
  let A = await F.go();
2851
2838
  if (A == null)
2852
2839
  return;
2853
- F.setMessage("\u6307\u5B9A\u65CB\u8F6C\u89D2\u5EA6"), F.setBasePt(A), F.setUseBasePt(!0), F.setUserDraw((l, c) => {
2854
- let n = l, m = A, b = n.sub(m).angleTo2(y.kXAxis, y.kNegateZAxis), p = new I();
2855
- if (p.setToRotation(b, y.kZAxis, m), D && C) {
2856
- let d = new a(D.x, C.y, 0), x = new a(C.x, D.y, 0), f = new a(d.x, x.y, 0), g = new a(x.x, d.y, 0);
2857
- d.transformBy(p), x.transformBy(p), f.transformBy(p), g.transformBy(p), c.drawLine(g.toVector3(), d.toVector3()), c.drawLine(d.toVector3(), f.toVector3()), c.drawLine(f.toVector3(), x.toVector3()), c.drawLine(x.toVector3(), g.toVector3());
2840
+ F.setMessage("\u6307\u5B9A\u65CB\u8F6C\u89D2\u5EA6"), F.setBasePt(A), F.setUseBasePt(!0), F.setUserDraw((l, m) => {
2841
+ let n = l, c = A, b = n.sub(c).angleTo2(y.kXAxis, y.kNegateZAxis), p = new j();
2842
+ if (p.setToRotation(b, y.kZAxis, c), D && C) {
2843
+ let d = new a(D.x, C.y, 0), f = new a(C.x, D.y, 0), x = new a(d.x, f.y, 0), w = new a(f.x, d.y, 0);
2844
+ d.transformBy(p), f.transformBy(p), x.transformBy(p), w.transformBy(p), m.drawLine(w.toVector3(), d.toVector3()), m.drawLine(d.toVector3(), x.toVector3()), m.drawLine(x.toVector3(), f.toVector3()), m.drawLine(f.toVector3(), w.toVector3());
2858
2845
  }
2859
- m = i.GetCurrentMxCAD().docCoord2Cad(m), p.setToRotation(b, y.kZAxis, m);
2846
+ c = i.GetCurrentMxCAD().docCoord2Cad(c), p.setToRotation(b, y.kZAxis, c);
2860
2847
  for (let d = 0; d < E.length && d < 10; d++) {
2861
- let x = E[d].clone();
2862
- !x || (x.TransformBy(p), c.drawMcDbEntity(x));
2848
+ let f = E[d].clone();
2849
+ !f || (f.TransformBy(p), m.drawMcDbEntity(f));
2863
2850
  }
2864
2851
  });
2865
- let e = await F.go();
2866
- if (!e)
2852
+ let t = await F.go();
2853
+ if (!t)
2867
2854
  return;
2868
- let t = e, r = A, o = t.sub(r).angleTo2(y.kXAxis, y.kNegateZAxis), u = new I();
2855
+ let e = t, r = A, o = e.sub(r).angleTo2(y.kXAxis, y.kNegateZAxis), u = new j();
2869
2856
  r = i.GetCurrentMxCAD().docCoord2Cad(r), u.setToRotation(o, y.kZAxis, r);
2870
2857
  for (let l = 0; l < E.length; l++) {
2871
- let c = E[l].getMcDbObject();
2872
- !c || c.TransformBy(u);
2858
+ let m = E[l].getMcDbObject();
2859
+ !m || m.TransformBy(u);
2873
2860
  }
2874
2861
  }
2875
- async function LC() {
2862
+ async function KC() {
2876
2863
  let E;
2877
2864
  for (; E = U.getCurrentSelect(), !(E.length > 0); ) {
2878
- let m = new Z();
2879
- if (!await m.userSelect(`
2880
- \u9009\u62E9\u7F29\u653E\u5BF9\u8C61`) || (E = m.getIds(), E.length == 0))
2865
+ let c = new $();
2866
+ if (!await c.userSelect(`
2867
+ \u9009\u62E9\u7F29\u653E\u5BF9\u8C61`) || (E = c.getIds(), E.length == 0))
2881
2868
  return;
2882
2869
  break;
2883
2870
  }
2884
- let D, C, B = tD(E);
2871
+ let D, C, B = iD(E);
2885
2872
  if (!B)
2886
2873
  return;
2887
2874
  D = B.minPt, C = B.maxPt;
2888
- let F = C.x - D.x, A = C.y - D.y, e = (F + A) / 3;
2889
- e < 1e-5 && (e = 1);
2890
- let t = new z();
2891
- t.setMessage("\u6307\u5B9A\u57FA\u70B9");
2892
- let r = await t.go();
2875
+ let F = C.x - D.x, A = C.y - D.y, t = (F + A) / 3;
2876
+ t < 1e-5 && (t = 1);
2877
+ let e = new z();
2878
+ e.setMessage("\u6307\u5B9A\u57FA\u70B9");
2879
+ let r = await e.go();
2893
2880
  if (r == null)
2894
2881
  return;
2895
- t.setMessage("\u6307\u5B9A\u6BD4\u4F8B\u56E0\u5B50"), t.setBasePt(r), t.setUseBasePt(!0), t.setUserDraw((m, w) => {
2896
- let b = new a(m), p = new a(r), d = b.distanceTo(p);
2882
+ e.setMessage("\u6307\u5B9A\u6BD4\u4F8B\u56E0\u5B50"), e.setBasePt(r), e.setUseBasePt(!0), e.setUserDraw((c, g) => {
2883
+ let b = new a(c), p = new a(r), d = b.distanceTo(p);
2897
2884
  if (d < 1e-5)
2898
2885
  return;
2899
- let x = d / e;
2900
- x > 1e5 && (x = 1e5);
2901
- let f = new I();
2902
- if (f.setToScaling(x, p), D && C) {
2903
- let g = new a(D.x, C.y, 0), M = new a(C.x, D.y, 0), L = new a(g.x, M.y, 0), $ = new a(M.x, g.y, 0);
2904
- g.transformBy(f), M.transformBy(f), L.transformBy(f), $.transformBy(f), w.drawLine($.toVector3(), g.toVector3()), w.drawLine(g.toVector3(), L.toVector3()), w.drawLine(L.toVector3(), M.toVector3()), w.drawLine(M.toVector3(), $.toVector3());
2886
+ let f = d / t;
2887
+ f > 1e5 && (f = 1e5);
2888
+ let x = new j();
2889
+ if (x.setToScaling(f, p), D && C) {
2890
+ let w = new a(D.x, C.y, 0), M = new a(C.x, D.y, 0), L = new a(w.x, M.y, 0), J = new a(M.x, w.y, 0);
2891
+ w.transformBy(x), M.transformBy(x), L.transformBy(x), J.transformBy(x), g.drawLine(J.toVector3(), w.toVector3()), g.drawLine(w.toVector3(), L.toVector3()), g.drawLine(L.toVector3(), M.toVector3()), g.drawLine(M.toVector3(), J.toVector3());
2905
2892
  }
2906
- p = i.GetCurrentMxCAD().docCoord2Cad(p), f.setToScaling(x, p);
2907
- for (let g = 0; g < E.length && g < 10; g++) {
2908
- let M = E[g].clone();
2909
- !M || (M.TransformBy(f), w.drawMcDbEntity(M));
2893
+ p = i.GetCurrentMxCAD().docCoord2Cad(p), x.setToScaling(f, p);
2894
+ for (let w = 0; w < E.length && w < 10; w++) {
2895
+ let M = E[w].clone();
2896
+ !M || (M.TransformBy(x), g.drawMcDbEntity(M));
2910
2897
  }
2911
2898
  });
2912
- let s = await t.go();
2899
+ let s = await e.go();
2913
2900
  if (!s)
2914
2901
  return;
2915
2902
  let o = s, u = r, l = o.distanceTo(u);
2916
2903
  if (l < 1e-5)
2917
2904
  return;
2918
- let c = l / e;
2919
- c > 1e5 && (c = 1e5);
2920
- let n = new I();
2921
- u = i.GetCurrentMxCAD().docCoord2Cad(u), n.setToScaling(c, u);
2922
- for (let m = 0; m < E.length; m++) {
2923
- let w = E[m].getMcDbObject();
2924
- !w || w.TransformBy(n);
2905
+ let m = l / t;
2906
+ m > 1e5 && (m = 1e5);
2907
+ let n = new j();
2908
+ u = i.GetCurrentMxCAD().docCoord2Cad(u), n.setToScaling(m, u);
2909
+ for (let c = 0; c < E.length; c++) {
2910
+ let g = E[c].getMcDbObject();
2911
+ !g || g.TransformBy(n);
2925
2912
  }
2926
2913
  }
2927
- async function vC() {
2914
+ async function HC() {
2928
2915
  let E = new z();
2929
- E.setDisableOsnap(!0), E.setMessage("\u70B9\u53D6\u7F29\u653E\u533A\u57DF"), E.setDynamicInputType(xD.kDynTip);
2916
+ E.setDisableOsnap(!0), E.setMessage("\u70B9\u53D6\u7F29\u653E\u533A\u57DF"), E.setDynamicInputType(MD.kDynTip);
2930
2917
  let D = await E.go();
2931
2918
  if (D == null)
2932
2919
  return;
@@ -2936,18 +2923,18 @@ async function vC() {
2936
2923
  let C = await E.go();
2937
2924
  C != null && h.getCurrentDraw().zoomW(D.toVector3(), C.toVector3());
2938
2925
  }
2939
- async function IC() {
2926
+ async function NC() {
2940
2927
  let E = i.GetCurrentDatabase().CurrentSpace().getBoundingBox();
2941
2928
  !E.ret || h.getCurrentDraw().zoomW(E.minPt.toVector3(), E.maxPt.toVector3());
2942
2929
  }
2943
- async function jC() {
2944
- const E = new zD();
2930
+ async function _C() {
2931
+ const E = new KD();
2945
2932
  E.setMessage(`
2946
2933
  \u6307\u5B9A\u504F\u79FB\u8DDD\u79BB\u6216:`);
2947
2934
  let D = await E.go();
2948
2935
  if (D == null)
2949
2936
  return;
2950
- let C = new AD();
2937
+ let C = new tD();
2951
2938
  C.AddMcDbEntityTypes("LINE,CIRCLE,LWPOLYLINE,ARC");
2952
2939
  let B = await U.selectEnt(`
2953
2940
  \u9009\u62E9\u504F\u79FB\u5BF9\u8C61`, C, !1);
@@ -2959,30 +2946,30 @@ async function jC() {
2959
2946
  let A = await F.go();
2960
2947
  if (A == null)
2961
2948
  return;
2962
- let e = B[0].getMcDbCurve();
2963
- if (!e)
2949
+ let t = B[0].getMcDbCurve();
2950
+ if (!t)
2964
2951
  return;
2965
- let t = e.offsetCurves(D, A);
2966
- t.empty() || t.forEach((r) => {
2952
+ let e = t.offsetCurves(D, A);
2953
+ e.empty() || e.forEach((r) => {
2967
2954
  i.GetCurrentMxCAD().DrawEntity(r);
2968
2955
  });
2969
2956
  }
2970
- function GC() {
2957
+ function qC() {
2971
2958
  i.GetCurrentMxCAD().getImp().regen();
2972
2959
  }
2973
2960
  h.on("init", () => {
2974
- h.addCommand("Mx_Erase", XD), h.addCommand("Mx_Copy", RC), h.addCommand("Mx_Move", OC), h.addCommand("Mx_Rotate", SC), h.addCommand("Mx_Scale", LC), h.addCommand("Mx_WindowZoom", vC), h.addCommand("Mx_ZoomE", IC), h.addCommand("Mx_Offset", jC), h.addCommand("Mx_Regen", GC);
2961
+ h.addCommand("Mx_Erase", DC), h.addCommand("Mx_Copy", WC), h.addCommand("Mx_Move", UC), h.addCommand("Mx_Rotate", zC), h.addCommand("Mx_Scale", KC), h.addCommand("Mx_WindowZoom", HC), h.addCommand("Mx_ZoomE", NC), h.addCommand("Mx_Offset", _C), h.addCommand("Mx_Regen", qC);
2975
2962
  });
2976
- const WC = async (E, D, C) => {
2963
+ const ZC = async (E, D, C) => {
2977
2964
  const { locateFile: B } = C, F = B(E + ".js");
2978
- return await ND(F), await globalThis[D](C);
2965
+ return await _D(F), await globalThis[D](C);
2979
2966
  };
2980
- function VC(E) {
2967
+ function $C(E) {
2981
2968
  return typeof ResizeObserver == "function" ? new ResizeObserver(E) : null;
2982
2969
  }
2983
- function UC(E, D) {
2970
+ function JC(E, D) {
2984
2971
  const C = () => requestAnimationFrame(D);
2985
- let B = VC(C);
2972
+ let B = $C(C);
2986
2973
  if (B) {
2987
2974
  B.observe(E);
2988
2975
  return;
@@ -2992,7 +2979,7 @@ function UC(E, D) {
2992
2979
  return;
2993
2980
  }
2994
2981
  }
2995
- function zC(E, D) {
2982
+ function YC(E, D) {
2996
2983
  let C = null;
2997
2984
  return function(...B) {
2998
2985
  C || (C = setTimeout(() => {
@@ -3000,21 +2987,21 @@ function zC(E, D) {
3000
2987
  }, D));
3001
2988
  };
3002
2989
  }
3003
- class q {
2990
+ class Z {
3004
2991
  static onloadWasmMxDraw3dModel;
3005
2992
  canvas;
3006
2993
  constructor(D) {
3007
2994
  const C = () => {
3008
2995
  const u = this.canvas.parentElement?.clientWidth || window.innerWidth, l = this.canvas.parentElement?.clientHeight || window.innerHeight;
3009
- let c = Math.min(u, window.screen.availWidth), n = Math.min(l, window.screen.availHeight);
3010
- c = Math.max(A, c), n = Math.max(e, n), this.canvas.style.width = c + 1 + "px", this.canvas.style.height = n + "px";
3011
- const m = window.devicePixelRatio || 1;
3012
- this.canvas.width = c * m, this.canvas.height = n * m;
3013
- }, B = zC(C, 50), {
2996
+ let m = Math.min(u, window.screen.availWidth), n = Math.min(l, window.screen.availHeight);
2997
+ m = Math.max(A, m), n = Math.max(t, n), this.canvas.style.width = m + 1 + "px", this.canvas.style.height = n + "px";
2998
+ const c = window.devicePixelRatio || 1;
2999
+ this.canvas.width = m * c, this.canvas.height = n * c;
3000
+ }, B = YC(C, 50), {
3014
3001
  canvas: F,
3015
3002
  minWidth: A = 300,
3016
- minHeight: e = 300,
3017
- updateCanvasSize: t = B,
3003
+ minHeight: t = 300,
3004
+ updateCanvasSize: e = B,
3018
3005
  ...r
3019
3006
  } = D;
3020
3007
  let s = typeof F == "string" ? document.querySelectorAll(F)[0] : F, o = s.getContext("webgl2", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 });
@@ -3023,29 +3010,29 @@ class q {
3023
3010
  this[u] = r[u];
3024
3011
  if (this.canvas instanceof HTMLCanvasElement) {
3025
3012
  const u = this.canvas.parentElement || document.body;
3026
- UC(u, t);
3013
+ JC(u, e);
3027
3014
  } else
3028
3015
  console.error("createMxDraw3d canvas \u53C2\u6570\u4E0D\u6B63\u786E \u65E0\u6CD5\u83B7\u53D6\u5230canvas\u5143\u7D20");
3029
- window.onresize = C, C(), WC("mxdraw3d_min", "mxdraw3d", this).then(() => {
3030
- q.onloadWasmMxDraw3dModel && q.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = t, this.open3DFile = (u) => {
3016
+ window.onresize = C, C(), ZC("mxdraw3d_min", "mxdraw3d", this).then(() => {
3017
+ Z.onloadWasmMxDraw3dModel && Z.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = e, this.open3DFile = (u) => {
3031
3018
  const l = new FileReader();
3032
3019
  l.onload = () => {
3033
3020
  if (!!l.result && l.result instanceof ArrayBuffer) {
3034
- var c = new Uint8Array(l.result);
3035
- const n = this._malloc(c.length);
3036
- this.HEAPU8.set(c, n), this.openFromMemory(u.name, n, c.length, !0), this.displayGround(!0), this.canvas.focus();
3021
+ var m = new Uint8Array(l.result);
3022
+ const n = this._malloc(m.length);
3023
+ this.HEAPU8.set(m, n), this.openFromMemory(u.name, n, m.length, !0), this.displayGround(!0), this.canvas.focus();
3037
3024
  }
3038
3025
  }, l.readAsArrayBuffer(u);
3039
3026
  };
3040
3027
  });
3041
3028
  }
3042
3029
  }
3043
- function KC(E, D) {
3030
+ function QC(E, D) {
3044
3031
  return new Promise(async (C, B) => {
3045
3032
  try {
3046
- E.locateFile || (E.locateFile = pC);
3047
- const F = new q(E);
3048
- q.onloadWasmMxDraw3dModel = () => {
3033
+ E.locateFile || (E.locateFile = MC);
3034
+ const F = new Z(E);
3035
+ Z.onloadWasmMxDraw3dModel = () => {
3049
3036
  C(F), D && D(F);
3050
3037
  };
3051
3038
  } catch (F) {
@@ -3053,145 +3040,155 @@ function KC(E, D) {
3053
3040
  }
3054
3041
  });
3055
3042
  }
3056
- const NC = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3043
+ const D9 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3057
3044
  __proto__: null,
3058
- b64Encode: TD,
3059
- b64Decode: kD,
3060
- saveAsFileDialog: RD,
3045
+ b64Encode: kD,
3046
+ b64Decode: RD,
3047
+ saveAsFileDialog: SD,
3061
3048
  downloadFile: OD,
3062
- downloadFileFromUrl: SD,
3063
- MxTools: J,
3049
+ downloadFileFromUrl: LD,
3050
+ MxTools: Y,
3064
3051
  McGePoint3d: a,
3065
3052
  McGeVector3d: y,
3066
- McGeMatrix3d: I,
3067
- McGeLongArray: sC,
3068
- McGeStringArray: LD,
3069
- McGePoint3dArray: nC,
3070
- getFilterImp: N,
3071
- MxCADResbuf: AD,
3072
- MxCADUtilityClass: UD,
3053
+ McGeMatrix3d: j,
3054
+ McGeLongArray: lC,
3055
+ McGeStringArray: vD,
3056
+ McGePoint3dArray: cC,
3057
+ getFilterImp: _,
3058
+ MxCADResbuf: tD,
3059
+ MxCADUtilityClass: zD,
3073
3060
  MxCADUtility: U,
3074
- MxCADSelectionSet: Z,
3061
+ MxCADSelectionSet: $,
3062
+ MxCADUiPrBase: N,
3075
3063
  MxCADUiPrPoint: z,
3076
- MxCADUiPrDist: zD,
3064
+ MxCADUiPrDist: KD,
3065
+ MxCADUiPrAngle: hC,
3066
+ MxCADUiPrInt: yC,
3067
+ MxCADUiPrKeyWord: gC,
3068
+ MxCADUiPrString: wC,
3077
3069
  McRxObject: K,
3078
3070
  McObjectIdType: k,
3079
3071
  McObjectId: R,
3080
- McDbObject: j,
3081
- McDbObjectArray: nD,
3072
+ McDbObject: I,
3073
+ McDbObjectArray: oD,
3082
3074
  get McDb() {
3083
- return oD;
3075
+ return aD;
3084
3076
  },
3085
3077
  McCmColor: H,
3086
- McDbLayerTableRecord: uC,
3087
- McDbLayerTable: vD,
3078
+ McDbLayerTableRecord: dC,
3079
+ McDbLayerTable: jD,
3088
3080
  McDbLinetypeTable: ID,
3089
- McDbTextStyleTable: jD,
3090
- McDbDatabase: mD,
3091
- McDbBlockTableRecordIterator: GD,
3092
- McDbBlockTableRecord: ED,
3081
+ McDbTextStyleTable: GD,
3082
+ McDbDatabase: pD,
3083
+ McDbBlockTableRecordIterator: VD,
3084
+ McDbBlockTableRecord: FD,
3093
3085
  McDbBlockTableIterator: WD,
3094
- McDbBlockTable: VD,
3086
+ McDbBlockTable: UD,
3095
3087
  McDbEntity: G,
3096
- McDbCurve: V,
3097
- McDbLine: X,
3098
- McDbText: aD,
3099
- McDbMText: DD,
3100
- McDbCircle: W,
3101
- McDbPolyline: CD,
3102
- McDbBlockReference: uD,
3103
- McDbDimension: pD,
3104
- McDbAlignedDimension: lD,
3105
- McDbRotatedDimension: cD,
3106
- McDbArc: BD,
3107
- McDbEllipse: FD,
3108
- McDbPoint: dD,
3109
- McObject: _,
3110
- McAppType: KD,
3111
- MxCppType: HD,
3088
+ McDbCurve: W,
3089
+ McDbLine: DD,
3090
+ McDbText: uD,
3091
+ McDbMText: CD,
3092
+ McDbCircle: V,
3093
+ McDbPolyline: BD,
3094
+ McDbBlockReference: lD,
3095
+ McDbDimension: dD,
3096
+ McDbAlignedDimension: cD,
3097
+ McDbRotatedDimension: mD,
3098
+ McDbArc: ED,
3099
+ McDbEllipse: AD,
3100
+ McDbPoint: hD,
3101
+ McObject: q,
3102
+ McAppType: HD,
3103
+ MxCppType: ND,
3112
3104
  get MxCpp() {
3113
3105
  return i;
3114
3106
  },
3115
- loadMxCADassembly: _D,
3116
- createMxCad: wC,
3117
- drawText: gC,
3118
- drawCircle: qD,
3119
- drawLine: ZD,
3120
- drawMText: xC,
3121
- drawPolyLine: $D,
3122
- drawPolygon: JD,
3123
- drawArc: YD,
3124
- drawEllipticalArc: QD,
3125
- Mx_Erase: XD,
3126
- MxDraw3d: q,
3127
- loadMxCADassembly3d: KC
3107
+ loadMxCADassembly: qD,
3108
+ createMxCad: RC,
3109
+ drawText: SC,
3110
+ drawCircle: ZD,
3111
+ drawLine: $D,
3112
+ drawMText: vC,
3113
+ drawPolyLine: JD,
3114
+ drawPolygon: YD,
3115
+ drawArc: QD,
3116
+ drawEllipticalArc: XD,
3117
+ Mx_Erase: DC,
3118
+ MxDraw3d: Z,
3119
+ loadMxCADassembly3d: QC
3128
3120
  }, Symbol.toStringTag, { value: "Module" }));
3129
3121
  export {
3130
- KD as McAppType,
3122
+ HD as McAppType,
3131
3123
  H as McCmColor,
3132
- oD as McDb,
3133
- lD as McDbAlignedDimension,
3134
- BD as McDbArc,
3135
- uD as McDbBlockReference,
3136
- VD as McDbBlockTable,
3124
+ aD as McDb,
3125
+ cD as McDbAlignedDimension,
3126
+ ED as McDbArc,
3127
+ lD as McDbBlockReference,
3128
+ UD as McDbBlockTable,
3137
3129
  WD as McDbBlockTableIterator,
3138
- ED as McDbBlockTableRecord,
3139
- GD as McDbBlockTableRecordIterator,
3140
- W as McDbCircle,
3141
- V as McDbCurve,
3142
- mD as McDbDatabase,
3143
- pD as McDbDimension,
3144
- FD as McDbEllipse,
3130
+ FD as McDbBlockTableRecord,
3131
+ VD as McDbBlockTableRecordIterator,
3132
+ V as McDbCircle,
3133
+ W as McDbCurve,
3134
+ pD as McDbDatabase,
3135
+ dD as McDbDimension,
3136
+ AD as McDbEllipse,
3145
3137
  G as McDbEntity,
3146
- vD as McDbLayerTable,
3147
- uC as McDbLayerTableRecord,
3148
- X as McDbLine,
3138
+ jD as McDbLayerTable,
3139
+ dC as McDbLayerTableRecord,
3140
+ DD as McDbLine,
3149
3141
  ID as McDbLinetypeTable,
3150
- DD as McDbMText,
3151
- j as McDbObject,
3152
- nD as McDbObjectArray,
3153
- dD as McDbPoint,
3154
- CD as McDbPolyline,
3155
- cD as McDbRotatedDimension,
3156
- aD as McDbText,
3157
- jD as McDbTextStyleTable,
3158
- sC as McGeLongArray,
3159
- I as McGeMatrix3d,
3142
+ CD as McDbMText,
3143
+ I as McDbObject,
3144
+ oD as McDbObjectArray,
3145
+ hD as McDbPoint,
3146
+ BD as McDbPolyline,
3147
+ mD as McDbRotatedDimension,
3148
+ uD as McDbText,
3149
+ GD as McDbTextStyleTable,
3150
+ lC as McGeLongArray,
3151
+ j as McGeMatrix3d,
3160
3152
  a as McGePoint3d,
3161
- nC as McGePoint3dArray,
3162
- LD as McGeStringArray,
3153
+ cC as McGePoint3dArray,
3154
+ vD as McGeStringArray,
3163
3155
  y as McGeVector3d,
3164
- _ as McObject,
3156
+ q as McObject,
3165
3157
  R as McObjectId,
3166
3158
  k as McObjectIdType,
3167
3159
  K as McRxObject,
3168
- AD as MxCADResbuf,
3169
- Z as MxCADSelectionSet,
3170
- zD as MxCADUiPrDist,
3160
+ tD as MxCADResbuf,
3161
+ $ as MxCADSelectionSet,
3162
+ hC as MxCADUiPrAngle,
3163
+ N as MxCADUiPrBase,
3164
+ KD as MxCADUiPrDist,
3165
+ yC as MxCADUiPrInt,
3166
+ gC as MxCADUiPrKeyWord,
3171
3167
  z as MxCADUiPrPoint,
3168
+ wC as MxCADUiPrString,
3172
3169
  U as MxCADUtility,
3173
- UD as MxCADUtilityClass,
3170
+ zD as MxCADUtilityClass,
3174
3171
  i as MxCpp,
3175
- HD as MxCppType,
3176
- q as MxDraw3d,
3177
- J as MxTools,
3178
- XD as Mx_Erase,
3179
- kD as b64Decode,
3180
- TD as b64Encode,
3181
- wC as createMxCad,
3182
- NC as default,
3172
+ ND as MxCppType,
3173
+ Z as MxDraw3d,
3174
+ Y as MxTools,
3175
+ DC as Mx_Erase,
3176
+ RD as b64Decode,
3177
+ kD as b64Encode,
3178
+ RC as createMxCad,
3179
+ D9 as default,
3183
3180
  OD as downloadFile,
3184
- SD as downloadFileFromUrl,
3185
- YD as drawArc,
3186
- qD as drawCircle,
3187
- QD as drawEllipticalArc,
3188
- ZD as drawLine,
3189
- xC as drawMText,
3190
- $D as drawPolyLine,
3191
- JD as drawPolygon,
3192
- gC as drawText,
3193
- N as getFilterImp,
3194
- _D as loadMxCADassembly,
3195
- KC as loadMxCADassembly3d,
3196
- RD as saveAsFileDialog
3181
+ LD as downloadFileFromUrl,
3182
+ QD as drawArc,
3183
+ ZD as drawCircle,
3184
+ XD as drawEllipticalArc,
3185
+ $D as drawLine,
3186
+ vC as drawMText,
3187
+ JD as drawPolyLine,
3188
+ YD as drawPolygon,
3189
+ SC as drawText,
3190
+ _ as getFilterImp,
3191
+ qD as loadMxCADassembly,
3192
+ QC as loadMxCADassembly3d,
3193
+ SD as saveAsFileDialog
3197
3194
  };