mxcad 1.0.80 → 1.0.81
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.d.ts +25 -1
- package/dist/mxcad.es.js +791 -723
- package/dist/mxcad.umd.js +40 -40
- package/dist/wasm/2d/mxdrawassembly_min.js +166 -165
- package/dist/wasm/2d/mxdrawassembly_min.wasm +0 -0
- package/dist/wasm/2d-st/mxdrawassembly_min.js +158 -157
- package/dist/wasm/2d-st/mxdrawassembly_minst.wasm +0 -0
- package/package.json +2 -2
package/dist/mxcad.es.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { MxFun as h, MrxDbgUiPrPoint as
|
|
1
|
+
import { MxFun as h, MrxDbgUiPrPoint as O, MxCursorType as MD, MrxDbgUtils as oD, DynamicInputType as dD, DetailedResult as Z, MrxDbgUiPrDist as AC, MrxDbgUiPrAngle as eC, MrxDbgUiPrInt as tC, MrxDbgUiPrKeyWord as iC, MrxDbgUiPrString as rC, store as PD, loadCoreCode as sC, MxPaintBrush as S, MrxDbgUiPrBaseReturn as T, MxDbCircleShape as TD, MxDbLine as DD, MxDbPolyline as nC, MxDbCircleArc as X, Mx3PointArc as oC, MxDbEllipseShape as aC, McEdGetPointWorldDrawObject as uC, MxDbEllipse as lC } from "mxdraw";
|
|
2
2
|
function kD(E) {
|
|
3
3
|
return btoa(unescape(encodeURIComponent(E)));
|
|
4
4
|
}
|
|
5
5
|
function RD(E) {
|
|
6
6
|
return decodeURIComponent(escape(atob(E)));
|
|
7
7
|
}
|
|
8
|
-
async function
|
|
8
|
+
async function OD({
|
|
9
9
|
blob: E,
|
|
10
10
|
filename: D = "",
|
|
11
11
|
types: C = [
|
|
@@ -45,24 +45,24 @@ async function SD({
|
|
|
45
45
|
console.error(B.name, B.message);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
-
function
|
|
48
|
+
function LD(E, D) {
|
|
49
49
|
const C = document.createElement("a");
|
|
50
50
|
C.href = window.URL.createObjectURL(E), C.download = D, C.click();
|
|
51
51
|
}
|
|
52
|
-
function
|
|
52
|
+
function vD(E, D) {
|
|
53
53
|
fetch(E).then((C) => C.blob()).then((C) => {
|
|
54
54
|
const B = document.createElement("a");
|
|
55
55
|
B.href = window.URL.createObjectURL(C), B.download = D, B.click();
|
|
56
56
|
});
|
|
57
57
|
}
|
|
58
|
-
const
|
|
58
|
+
const Q = {
|
|
59
59
|
b64Encode: kD,
|
|
60
60
|
b64Decode: RD,
|
|
61
|
-
saveAsFileDialog:
|
|
62
|
-
downloadFile:
|
|
63
|
-
downloadFileFromUrl:
|
|
61
|
+
saveAsFileDialog: OD,
|
|
62
|
+
downloadFile: LD,
|
|
63
|
+
downloadFileFromUrl: vD
|
|
64
64
|
};
|
|
65
|
-
class
|
|
65
|
+
class cC {
|
|
66
66
|
z = "D2BBB6A18140C6DF814181428143CDF2D5C9C8FDC9CFCFC2D8A2B2BBD3EB8144D8A4B3F38145D7A8C7D2D8A7CAC08146C7F0B1FBD2B5B4D4B6ABCBBFD8A9814781488149B6AA814AC1BDD1CF814BC9A5D8AD814CB8F6D1BEE3DCD6D0814D814EB7E1814FB4AE8150C1D98151D8BC8152CDE8B5A4CEAAD6F78153C0F6BED9D8AF815481558156C4CB8157BEC38158D8B1C3B4D2E58159D6AECEDAD5A7BAF5B7A6C0D6815AC6B9C5D2C7C7815BB9D4815CB3CBD2D2815D815ED8BFBEC5C6F2D2B2CFB0CFE7815F816081618162CAE981638164D8C081658166816781688169816AC2F2C2D2816BC8E9816C816D816E816F817081718172817381748175C7AC8176817781788179817A817B817CC1CB817DD3E8D5F9817ECAC2B6FED8A1D3DABFF78180D4C6BBA5D8C1CEE5BEAE81818182D8A88183D1C7D0A9818481858186D8BDD9EFCDF6BFBA8187BDBBBAA5D2E0B2FABAE0C4B68188CFEDBEA9CDA4C1C18189818A818BC7D7D9F1818CD9F4818D818E818F8190C8CBD8E9819181928193D2DACAB2C8CAD8ECD8EAD8C6BDF6C6CDB3F08194D8EBBDF1BDE98195C8D4B4D381968197C2D88198B2D6D7D0CACBCBFBD5CCB8B6CFC98199819A819BD9DAD8F0C7AA819CD8EE819DB4FAC1EED2D4819E819FD8ED81A0D2C7D8EFC3C781A181A281A3D1F681A4D6D9D8F281A5D8F5BCFEBCDB81A681A781A8C8CE81A9B7DD81AAB7C281ABC6F381AC81AD81AE81AF81B081B181B2D8F8D2C181B381B4CEE9BCBFB7FCB7A5D0DD81B581B681B781B881B9D6DAD3C5BBEFBBE1D8F181BA81BBC9A1CEB0B4AB81BCD8F381BDC9CBD8F6C2D7D8F781BE81BFCEB1D8F981C081C181C2B2AEB9C081C3D9A381C4B0E981C5C1E681C6C9EC81C7CBC581C8CBC6D9A481C981CA81CB81CC81CDB5E881CE81CFB5AB81D081D181D281D381D481D5CEBBB5CDD7A1D7F4D3D381D6CCE581D7BACE81D8D9A2D9DCD3E0D8FDB7F0D7F7D8FED8FAD9A1C4E381D981DAD3B6D8F4D9DD81DBD8FB81DCC5E581DD81DEC0D081DF81E0D1F0B0DB81E181E2BCD1D9A681E3D9A581E481E581E681E7D9ACD9AE81E8D9ABCAB981E981EA81EBD9A9D6B681EC81ED81EEB3DED9A881EFC0FD81F0CACC81F1D9AA81F2D9A781F381F4D9B081F581F6B6B181F781F881F9B9A981FAD2C081FB81FCCFC081FD81FEC2C28240BDC4D5ECB2E0C7C8BFEBD9AD8241D9AF8242CEEABAEE82438244824582468247C7D682488249824A824B824C824D824E824F8250B1E3825182528253B4D9B6EDD9B48254825582568257BFA182588259825AD9DEC7CEC0FED9B8825B825C825D825E825FCBD7B7FD8260D9B58261D9B7B1A3D3E1D9B98262D0C58263D9B682648265D9B18266D9B2C1A9D9B382678268BCF3D0DEB8A98269BEE3826AD9BD826B826C826D826ED9BA826FB0B3827082718272D9C28273827482758276827782788279827A827B827C827D827E8280D9C4B1B68281D9BF82828283B5B98284BEF3828582868287CCC8BAF2D2D08288D9C38289828ABDE8828BB3AB828C828D828ED9C5BEEB828FD9C6D9BBC4DF8290D9BED9C1D9C0829182928293829482958296829782988299829A829BD5AE829CD6B5829DC7E3829E829F82A082A1D9C882A282A382A4BCD9D9CA82A582A682A7D9BC82A8D9CBC6AB82A982AA82AB82AC82ADD9C982AE82AF82B082B1D7F682B2CDA382B382B482B582B682B782B882B982BABDA182BB82BC82BD82BE82BF82C0D9CC82C182C282C382C482C582C682C782C882C9C5BCCDB582CA82CB82CCD9CD82CD82CED9C7B3A5BFFE82CF82D082D182D2B8B582D382D4C0FC82D582D682D782D8B0F882D982DA82DB82DC82DD82DE82DF82E082E182E282E382E482E582E682E782E882E982EA82EB82EC82EDB4F682EED9CE82EFD9CFB4A2D9D082F082F1B4DF82F282F382F482F582F6B0C182F782F882F982FA82FB82FC82FDD9D1C9B582FE8340834183428343834483458346834783488349834A834B834C834D834E834F83508351CFF1835283538354835583568357D9D283588359835AC1C5835B835C835D835E835F836083618362836383648365D9D6C9AE8366836783688369D9D5D9D4D9D7836A836B836C836DCBDB836EBDA9836F8370837183728373C6A7837483758376837783788379837A837B837C837DD9D3D9D8837E83808381D9D9838283838384838583868387C8E583888389838A838B838C838D838E838F839083918392839383948395C0DC8396839783988399839A839B839C839D839E839F83A083A183A283A383A483A583A683A783A883A983AA83AB83AC83AD83AE83AF83B083B183B2B6F9D8A3D4CA83B3D4AAD0D6B3E4D5D783B4CFC8B9E283B5BFCB83B6C3E283B783B883B9B6D283BA83BBCDC3D9EED9F083BC83BD83BEB5B383BFB6B583C083C183C283C383C4BEA483C583C6C8EB83C783C8C8AB83C983CAB0CBB9ABC1F9D9E283CBC0BCB9B283CCB9D8D0CBB1F8C6E4BEDFB5E4D7C883CDD1F8BCE6CADE83CE83CFBCBDD9E6D8E783D083D1C4DA83D283D3B8D4C8BD83D483D5B2E1D4D983D683D783D883D9C3B083DA83DBC3E1DAA2C8DF83DCD0B483DDBEFCC5A983DE83DF83E0B9DA83E1DAA383E2D4A9DAA483E383E483E583E683E7D9FBB6AC83E883E9B7EBB1F9D9FCB3E5BEF683EABFF6D2B1C0E483EB83EC83EDB6B3D9FED9FD83EE83EFBEBB83F083F183F2C6E083F3D7BCDAA183F4C1B983F5B5F2C1E883F683F7BCF583F8B4D583F983FA83FB83FC83FD83FE844084418442C1DD8443C4FD84448445BCB8B7B284468447B7EF84488449844A844B844C844DD9EC844EC6BE844FBFADBBCB84508451B5CA8452DBC9D0D78453CDB9B0BCB3F6BBF7DBCABAAF8454D4E4B5B6B5F3D8D6C8D084558456B7D6C7D0D8D78457BFAF84588459DBBBD8D8845A845BD0CCBBAE845C845D845EEBBEC1D0C1F5D4F2B8D5B4B4845FB3F584608461C9BE846284638464C5D0846584668467C5D9C0FB8468B1F08469D8D9B9CE846AB5BD846B846CD8DA846D846ED6C6CBA2C8AFC9B2B4CCBFCC846FB9F48470D8DBD8DCB6E7BCC1CCEA847184728473847484758476CFF78477D8DDC7B084788479B9D0BDA3847A847BCCDE847CC6CA847D847E848084818482D8E08483D8DE84848485D8DF848684878488B0FE8489BEE7848ACAA3BCF4848B848C848D848EB8B1848F8490B8EE849184928493849484958496849784988499849AD8E2849BBDCB849CD8E4D8E3849D849E849F84A084A1C5FC84A284A384A484A584A684A784A8D8E584A984AAD8E684AB84AC84AD84AE84AF84B084B1C1A684B2C8B0B0ECB9A6BCD3CEF1DBBDC1D384B384B484B584B6B6AFD6FAC5ACBDD9DBBEDBBF84B784B884B9C0F8BEA2C0CD84BA84BB84BC84BD84BE84BF84C084C184C284C3DBC0CAC684C484C584C6B2AA84C784C884C9D3C284CAC3E384CBD1AB84CC84CD84CE84CFDBC284D0C0D584D184D284D3DBC384D4BFB184D584D684D784D884D984DAC4BC84DB84DC84DD84DEC7DA84DF84E084E184E284E384E484E584E684E784E884E9DBC484EA84EB84EC84ED84EE84EF84F084F1D9E8C9D784F284F384F4B9B4CEF0D4C884F584F684F784F8B0FCB4D284F9D0D984FA84FB84FC84FDD9E984FEDECBD9EB8540854185428543D8B0BBAFB1B18544B3D7D8CE85458546D4D185478548BDB3BFEF8549CFBB854A854BD8D0854C854D854EB7CB854F85508551D8D185528553855485558556855785588559855A855BC6A5C7F8D2BD855C855DD8D2C4E4855ECAAE855FC7A78560D8A68561C9FDCEE7BBDCB0EB856285638564BBAAD0AD8565B1B0D7E4D7BF8566B5A5C2F4C4CF85678568B2A98569B2B7856AB1E5DFB2D5BCBFA8C2ACD8D5C2B1856BD8D4CED4856CDAE0856DCEC0856E856FD8B4C3AED3A1CEA38570BCB4C8B4C2D18571BEEDD0B68572DAE18573857485758576C7E485778578B3A78579B6F2CCFCC0FA857A857BC0F7857CD1B9D1E1D8C7857D857E85808581858285838584B2DE85858586C0E58587BAF185888589D8C8858AD4AD858B858CCFE1D8C9858DD8CACFC3858EB3F8BEC7858F859085918592D8CB8593859485958596859785988599DBCC859A859B859C859DC8A5859E859F85A0CFD885A1C8FEB2CE85A285A385A485A585A6D3D6B2E6BCB0D3D1CBABB7B485A785A885A9B7A285AA85ABCAE585ACC8A1CADCB1E4D0F085ADC5D185AE85AF85B0DBC5B5FE85B185B2BFDAB9C5BEE4C1ED85B3DFB6DFB5D6BBBDD0D5D9B0C8B6A3BFC9CCA8DFB3CAB7D3D285B4D8CFD2B6BAC5CBBECCBE85B5DFB7B5F0DFB485B685B785B8D3F585B9B3D4B8F785BADFBA85BBBACFBCAAB5F585BCCDACC3FBBAF3C0F4CDC2CFF2DFB8CFC585BDC2C0DFB9C2F085BE85BF85C0BEFD85C1C1DFCDCCD2F7B7CDDFC185C2DFC485C385C4B7F1B0C9B6D6B7D485C5BAACCCFDBFD4CBB1C6F485C6D6A8DFC585C7CEE2B3B385C885C9CEFCB4B585CACEC7BAF085CBCEE185CCD1BD85CD85CEDFC085CF85D0B4F485D1B3CA85D2B8E6DFBB85D385D485D585D6C4C585D7DFBCDFBDDFBEC5BBDFBFDFC2D4B1DFC385D8C7BACED885D985DA85DB85DC85DDC4D885DEDFCA85DFDFCF85E0D6DC85E185E285E385E485E585E685E785E8DFC9DFDACEB685E9BAC7DFCEDFC8C5DE85EA85EBC9EBBAF4C3FC85EC85EDBED785EEDFC685EFDFCD85F0C5D885F185F285F385F4D5A6BACD85F5BECCD3BDB8C085F6D6E485F7DFC7B9BEBFA785F885F9C1FCDFCBDFCC85FADFD085FB85FC85FD85FE8640DFDBDFE58641DFD7DFD6D7C9DFE3DFE4E5EBD2A7DFD28642BFA98643D4DB8644BFC8DFD4864586468647CFCC86488649DFDD864AD1CA864BDFDEB0A7C6B7DFD3864CBAE5864DB6DFCDDBB9FED4D5864E864FDFDFCFECB0A5DFE7DFD1D1C6DFD5DFD8DFD9DFDC8650BBA98651DFE0DFE18652DFE2DFE6DFE8D3B486538654865586568657B8E7C5B6DFEAC9DAC1A8C4C486588659BFDECFF8865A865B865CD5DCDFEE865D865E865F866086618662B2B88663BADFDFEC8664DBC18665D1E48666866786688669CBF4B4BD866AB0A6866B866C866D866E866FDFF1CCC6DFF286708671DFED867286738674867586768677DFE986788679867A867BDFEB867CDFEFDFF0BBBD867D867EDFF386808681DFF48682BBA38683CADBCEA8E0A7B3AA8684E0A6868586868687E0A186888689868A868BDFFE868CCDD9DFFC868DDFFA868EBFD0D7C4868FC9CC86908691DFF8B0A186928693869486958696DFFD869786988699869ADFFBE0A2869B869C869D869E869FE0A886A086A186A286A3B7C886A486A5C6A1C9B6C0B2DFF586A686A7C5BE86A8D8C4DFF9C4F686A986AA86AB86AC86AD86AEE0A3E0A4E0A5D0A586AF86B0E0B4CCE486B1E0B186B2BFA6E0AFCEB9E0ABC9C686B386B4C0AEE0AEBAEDBAB0E0A986B586B686B7DFF686B8E0B386B986BAE0B886BB86BC86BDB4ADE0B986BE86BFCFB2BAC886C0E0B086C186C286C386C486C586C686C7D0FA86C886C986CA86CB86CC86CD86CE86CF86D0E0AC86D1D4FB86D2DFF786D3C5E786D4E0AD86D5D3F786D6E0B6E0B786D786D886D986DA86DBE0C4D0E186DC86DD86DEE0BC86DF86E0E0C9E0CA86E186E286E3E0BEE0AAC9A4E0C186E4E0B286E586E686E786E886E9CAC8E0C386EAE0B586EBCECB86ECCBC3E0CDE0C6E0C286EDE0CB86EEE0BAE0BFE0C086EF86F0E0C586F186F2E0C7E0C886F3E0CC86F4E0BB86F586F686F786F886F9CBD4E0D586FAE0D6E0D286FB86FC86FD86FE87408741E0D0BCCE87428743E0D18744B8C2D8C587458746874787488749874A874B874CD0EA874D874EC2EF874F8750E0CFE0BD875187528753E0D4E0D387548755E0D78756875787588759E0DCE0D8875A875B875CD6F6B3B0875DD7EC875ECBBB875F8760E0DA8761CEFB876287638764BAD987658766876787688769876A876B876C876D876E876F8770E0E1E0DDD2AD87718772877387748775E0E287768777E0DBE0D9E0DF87788779E0E0877A877B877C877D877EE0DE8780E0E4878187828783C6F7D8ACD4EBE0E6CAC98784878587868787E0E587888789878A878BB8C1878C878D878E878FE0E7E0E887908791879287938794879587968797E0E9E0E387988799879A879B879C879D879EBABFCCE7879F87A087A1E0EA87A287A387A487A587A687A787A887A987AA87AB87AC87AD87AE87AF87B0CFF987B187B287B387B487B587B687B787B887B987BA87BBE0EB87BC87BD87BE87BF87C087C187C2C8C287C387C487C587C6BDC087C787C887C987CA87CB87CC87CD87CE87CF87D087D187D287D3C4D287D487D587D687D787D887D987DA87DB87DCE0EC87DD87DEE0ED87DF87E0C7F4CBC487E1E0EEBBD8D8B6D2F2E0EFCDC587E2B6DA87E387E487E587E687E787E8E0F187E9D4B087EA87EBC0A7B4D187EC87EDCEA7E0F087EE87EF87F0E0F2B9CC87F187F2B9FACDBCE0F387F387F487F5C6D4E0F487F6D4B287F7C8A6E0F6E0F587F887F987FA87FB87FC87FD87FE8840884188428843884488458846884788488849E0F7884A884BCDC1884C884D884ECAA5884F885088518852D4DADBD7DBD98853DBD8B9E7DBDCDBDDB5D888548855DBDA8856885788588859885ADBDBB3A1DBDF885B885CBBF8885DD6B7885EDBE0885F886088618862BEF988638864B7BB8865DBD0CCAEBFB2BBB5D7F8BFD38866886788688869886ABFE9886B886CBCE1CCB3DBDEB0D3CEEBB7D8D7B9C6C2886D886EC0A4886FCCB98870DBE7DBE1C6BADBE38871DBE88872C5F7887388748875DBEA88768877DBE9BFC088788879887ADBE6DBE5887B887C887D887E8880B4B9C0ACC2A2DBE2DBE48881888288838884D0CDDBED88858886888788888889C0DDDBF2888A888B888C888D888E888F8890B6E28891889288938894DBF3DBD2B9B8D4ABDBEC8895BFD1DBF08896DBD18897B5E68898DBEBBFE58899889A889BDBEE889CDBF1889D889E889FDBF988A088A188A288A388A488A588A688A788A8B9A1B0A388A988AA88AB88AC88AD88AE88AFC2F188B088B1B3C7DBEF88B288B3DBF888B4C6D2DBF488B588B6DBF5DBF7DBF688B788B8DBFE88B9D3F2B2BA88BA88BB88BCDBFD88BD88BE88BF88C088C188C288C388C4DCA488C5DBFB88C688C788C888C9DBFA88CA88CB88CCDBFCC5E0BBF988CD88CEDCA388CF88D0DCA588D1CCC388D288D388D4B6D1DDC088D588D688D7DCA188D8DCA288D988DA88DBC7B588DC88DD88DEB6E988DF88E088E1DCA788E288E388E488E5DCA688E6DCA9B1A488E788E8B5CC88E988EA88EB88EC88EDBFB088EE88EF88F088F188F2D1DF88F388F488F588F6B6C288F788F888F988FA88FB88FC88FD88FE894089418942894389448945DCA88946894789488949894A894B894CCBFAEBF3894D894E894FCBDC89508951CBFE895289538954CCC189558956895789588959C8FB895A895B895C895D895E895FDCAA89608961896289638964CCEEDCAB89658966896789688969896A896B896C896D896E896F897089718972897389748975DBD38976DCAFDCAC8977BEB38978CAFB8979897A897BDCAD897C897D897E89808981898289838984C9CAC4B989858986898789888989C7BDDCAE898A898B898CD4F6D0E6898D898E898F89908991899289938994C4ABB6D589958996899789988999899A899B899C899D899E899F89A089A189A289A389A489A589A6DBD489A789A889A989AAB1DA89AB89AC89ADDBD589AE89AF89B089B189B289B389B489B589B689B789B8DBD689B989BA89BBBABE89BC89BD89BE89BF89C089C189C289C389C489C589C689C789C889C9C8C089CA89CB89CC89CD89CE89CFCABFC8C989D0D7B389D1C9F989D289D3BFC789D489D5BAF889D689D7D2BC89D889D989DA89DB89DC89DD89DE89DFE2BA89E0B4A689E189E2B1B889E389E489E589E689E7B8B489E8CFC489E989EA89EB89ECD9E7CFA6CDE289ED89EED9EDB6E089EFD2B989F089F1B9BB89F289F389F489F5E2B9E2B789F6B4F389F7CCECCCABB7F289F8D8B2D1EBBABB89F9CAA789FA89FBCDB789FC89FDD2C4BFE4BCD0B6E189FEDEC58A408A418A428A43DEC6DBBC8A44D1D98A458A46C6E6C4CEB7EE8A47B7DC8A488A49BFFCD7E08A4AC6F58A4B8A4CB1BCDEC8BDB1CCD7DECA8A4DDEC98A4E8A4F8A508A518A52B5EC8A53C9DD8A548A55B0C28A568A578A588A598A5A8A5B8A5C8A5D8A5E8A5F8A608A618A62C5AEC5AB8A63C4CC8A64BCE9CBFD8A658A668A67BAC38A688A698A6AE5F9C8E7E5FACDFD8A6BD7B1B8BEC2E88A6CC8D18A6D8A6EE5FB8A6F8A708A718A72B6CABCCB8A738A74D1FDE6A18A75C3EE8A768A778A788A79E6A48A7A8A7B8A7C8A7DE5FEE6A5CDD78A7E8A80B7C1E5FCE5FDE6A38A818A82C4DDE6A88A838A84E6A78A858A868A878A888A898A8AC3C38A8BC6DE8A8C8A8DE6AA8A8E8A8F8A908A918A928A938A94C4B78A958A968A97E6A2CABC8A988A998A9A8A9BBDE3B9C3E6A6D0D5CEAF8A9C8A9DE6A9E6B08A9ED2A68A9FBDAAE6AD8AA08AA18AA28AA38AA4E6AF8AA5C0D18AA68AA7D2CC8AA88AA98AAABCA78AAB8AAC8AAD8AAE8AAF8AB08AB18AB28AB38AB48AB58AB6E6B18AB7D2F68AB88AB98ABAD7CB8ABBCDFE8ABCCDDEC2A6E6ABE6ACBDBFE6AEE6B38ABD8ABEE6B28ABF8AC08AC18AC2E6B68AC3E6B88AC48AC58AC68AC7C4EF8AC88AC98ACAC4C88ACB8ACCBEEAC9EF8ACD8ACEE6B78ACFB6F08AD08AD18AD2C3E48AD38AD48AD58AD68AD78AD88AD9D3E9E6B48ADAE6B58ADBC8A28ADC8ADD8ADE8ADF8AE0E6BD8AE18AE28AE3E6B98AE48AE58AE68AE78AE8C6C58AE98AEACDF1E6BB8AEB8AEC8AED8AEE8AEF8AF08AF18AF28AF38AF4E6BC8AF58AF68AF78AF8BBE98AF98AFA8AFB8AFC8AFD8AFE8B40E6BE8B418B428B438B44E6BA8B458B46C0B78B478B488B498B4A8B4B8B4C8B4D8B4E8B4FD3A4E6BFC9F4E6C38B508B51E6C48B528B538B548B55D0F68B568B578B588B598B5A8B5B8B5C8B5D8B5E8B5F8B608B618B628B638B648B658B668B67C3BD8B688B698B6A8B6B8B6C8B6D8B6EC3C4E6C28B6F8B708B718B728B738B748B758B768B778B788B798B7A8B7B8B7CE6C18B7D8B7E8B808B818B828B838B84E6C7CFB18B85EBF48B868B87E6CA8B888B898B8A8B8B8B8CE6C58B8D8B8EBCDEC9A98B8F8B908B918B928B938B94BCB58B958B96CFD38B978B988B998B9A8B9BE6C88B9CE6C98B9DE6CE8B9EE6D08B9F8BA08BA1E6D18BA28BA38BA4E6CBB5D58BA5E6CC8BA68BA7E6CF8BA88BA9C4DB8BAAE6C68BAB8BAC8BAD8BAE8BAFE6CD8BB08BB18BB28BB38BB48BB58BB68BB78BB88BB98BBA8BBB8BBC8BBD8BBE8BBF8BC08BC18BC28BC38BC48BC58BC6E6D28BC78BC88BC98BCA8BCB8BCC8BCD8BCE8BCF8BD08BD18BD2E6D4E6D38BD38BD48BD58BD68BD78BD88BD98BDA8BDB8BDC8BDD8BDE8BDF8BE08BE18BE28BE38BE48BE58BE68BE78BE88BE98BEA8BEB8BECE6D58BEDD9F88BEE8BEFE6D68BF08BF18BF28BF38BF48BF58BF68BF7E6D78BF88BF98BFA8BFB8BFC8BFD8BFE8C408C418C428C438C448C458C468C47D7D3E6DD8C48E6DEBFD7D4D08C49D7D6B4E6CBEFE6DAD8C3D7CED0A28C4AC3CF8C4B8C4CE6DFBCBEB9C2E6DBD1A78C4D8C4EBAA2C2CF8C4FD8AB8C508C518C52CAEBE5EE8C53E6DC8C54B7F58C558C568C578C58C8E68C598C5AC4F58C5B8C5CE5B2C4FE8C5DCBFCE5B3D5AC8C5ED3EECAD8B0B28C5FCBCECDEA8C608C61BAEA8C628C638C64E5B58C65E5B48C66D7DAB9D9D6E6B6A8CDF0D2CBB1A6CAB58C67B3E8C9F3BFCDD0FBCAD2E5B6BBC28C688C698C6ACFDCB9AC8C6B8C6C8C6D8C6ED4D78C6F8C70BAA6D1E7CFFCBCD28C71E5B7C8DD8C728C738C74BFEDB1F6CBDE8C758C76BCC58C77BCC4D2FAC3DCBFDC8C788C798C7A8C7BB8BB8C7C8C7D8C7EC3C28C80BAAED4A28C818C828C838C848C858C868C878C888C89C7DEC4AFB2EC8C8AB9D18C8B8C8CE5BBC1C88C8D8C8ED5AF8C8F8C908C918C928C93E5BC8C94E5BE8C958C968C978C988C998C9A8C9BB4E7B6D4CBC2D1B0B5BC8C9C8C9DCAD98C9EB7E28C9F8CA0C9E48CA1BDAB8CA28CA3CEBED7F08CA48CA58CA68CA7D0A18CA8C9D98CA98CAAB6FBE6D8BCE28CABB3BE8CACC9D08CADE6D9B3A28CAE8CAF8CB08CB1DECC8CB2D3C8DECD8CB3D2A28CB48CB58CB68CB7DECE8CB88CB98CBA8CBBBECD8CBC8CBDDECF8CBE8CBF8CC0CAACD2FCB3DFE5EAC4E1BEA1CEB2C4F2BED6C6A8B2E38CC18CC2BED38CC38CC4C7FCCCEBBDECCEDD8CC58CC6CABAC6C1E5ECD0BC8CC78CC88CC9D5B98CCA8CCB8CCCE5ED8CCD8CCE8CCF8CD0CAF48CD1CDC0C2C58CD2E5EF8CD3C2C4E5F08CD48CD58CD68CD78CD88CD98CDAE5F8CDCD8CDBC9BD8CDC8CDD8CDE8CDF8CE08CE18CE2D2D9E1A88CE38CE48CE58CE6D3EC8CE7CBEAC6F18CE88CE98CEA8CEB8CECE1AC8CED8CEE8CEFE1A7E1A98CF08CF1E1AAE1AF8CF28CF3B2ED8CF4E1ABB8DAE1ADE1AEE1B0B5BAE1B18CF58CF68CF78CF88CF9E1B3E1B88CFA8CFB8CFC8CFD8CFED1D28D40E1B6E1B5C1EB8D418D428D43E1B78D44D4C08D45E1B28D46E1BAB0B68D478D488D498D4AE1B48D4BBFF98D4CE1B98D4D8D4EE1BB8D4F8D508D518D528D538D54E1BE8D558D568D578D588D598D5AE1BC8D5B8D5C8D5D8D5E8D5F8D60D6C58D618D628D638D648D658D668D67CFBF8D688D69E1BDE1BFC2CD8D6AB6EB8D6BD3F88D6C8D6DC7CD8D6E8D6FB7E58D708D718D728D738D748D758D768D778D788D79BEFE8D7A8D7B8D7C8D7D8D7E8D80E1C0E1C18D818D82E1C7B3E78D838D848D858D868D878D88C6E98D898D8A8D8B8D8C8D8DB4DE8D8ED1C28D8F8D908D918D92E1C88D938D94E1C68D958D968D978D988D99E1C58D9AE1C3E1C28D9BB1C08D9C8D9D8D9ED5B8E1C48D9F8DA08DA18DA28DA3E1CB8DA48DA58DA68DA78DA88DA98DAA8DABE1CCE1CA8DAC8DAD8DAE8DAF8DB08DB18DB28DB3EFFA8DB48DB5E1D3E1D2C7B68DB68DB78DB88DB98DBA8DBB8DBC8DBD8DBE8DBF8DC0E1C98DC18DC2E1CE8DC3E1D08DC48DC58DC68DC78DC88DC98DCA8DCB8DCC8DCD8DCEE1D48DCFE1D1E1CD8DD08DD1E1CF8DD28DD38DD48DD5E1D58DD68DD78DD88DD98DDA8DDB8DDC8DDD8DDE8DDF8DE08DE18DE2E1D68DE38DE48DE58DE68DE78DE88DE98DEA8DEB8DEC8DED8DEE8DEF8DF08DF18DF28DF38DF48DF58DF68DF78DF8E1D78DF98DFA8DFBE1D88DFC8DFD8DFE8E408E418E428E438E448E458E468E478E488E498E4A8E4B8E4C8E4D8E4E8E4F8E508E518E528E538E548E55E1DA8E568E578E588E598E5A8E5B8E5C8E5D8E5E8E5F8E608E618E62E1DB8E638E648E658E668E678E688E69CEA18E6A8E6B8E6C8E6D8E6E8E6F8E708E718E728E738E748E758E76E7DD8E77B4A8D6DD8E788E79D1B2B3B28E7A8E7BB9A4D7F3C7C9BEDEB9AE8E7CCED78E7D8E7EB2EEDBCF8E80BCBAD2D1CBC8B0CD8E818E82CFEF8E838E848E858E868E87D9E3BDED8E888E89B1D2CAD0B2BC8E8ACBA7B7AB8E8BCAA68E8C8E8D8E8ECFA38E8F8E90E0F8D5CAE0FB8E918E92E0FAC5C1CCFB8E93C1B1E0F9D6E3B2AFD6C4B5DB8E948E958E968E978E988E998E9A8E9BB4F8D6A18E9C8E9D8E9E8E9F8EA0CFAFB0EF8EA18EA2E0FC8EA38EA48EA58EA68EA7E1A1B3A38EA88EA9E0FDE0FEC3B18EAA8EAB8EAC8EADC3DD8EAEE1A2B7F98EAF8EB08EB18EB28EB38EB4BBCF8EB58EB68EB78EB88EB98EBA8EBBE1A3C4BB8EBC8EBD8EBE8EBF8EC0E1A48EC18EC2E1A58EC38EC4E1A6B4B18EC58EC68EC78EC88EC98ECA8ECB8ECC8ECD8ECE8ECF8ED08ED18ED28ED3B8C9C6BDC4EA8ED4B2A28ED5D0D28ED6E7DBBBC3D3D7D3C48ED7B9E3E2CF8ED88ED98EDAD7AF8EDBC7ECB1D38EDC8EDDB4B2E2D18EDE8EDF8EE0D0F2C2AEE2D08EE1BFE2D3A6B5D7E2D2B5EA8EE2C3EDB8FD8EE3B8AE8EE4C5D3B7CFE2D48EE58EE68EE78EE8E2D3B6C8D7F98EE98EEA8EEB8EEC8EEDCDA58EEE8EEF8EF08EF18EF2E2D88EF3E2D6CAFCBFB5D3B9E2D58EF48EF58EF68EF7E2D78EF88EF98EFA8EFB8EFC8EFD8EFE8F408F418F42C1AEC0C88F438F448F458F468F478F48E2DBE2DAC0AA8F498F4AC1CE8F4B8F4C8F4D8F4EE2DC8F4F8F508F518F528F538F548F558F568F578F588F598F5AE2DD8F5BE2DE8F5C8F5D8F5E8F5F8F608F618F628F638F64DBC88F65D1D3CDA28F668F67BDA88F688F698F6ADEC3D8A5BFAADBCDD2ECC6FAC5AA8F6B8F6C8F6DDEC48F6EB1D7DFAE8F6F8F708F71CABD8F72DFB18F73B9AD8F74D2FD8F75B8A5BAEB8F768F77B3DA8F788F798F7AB5DCD5C58F7B8F7C8F7D8F7EC3D6CFD2BBA18F80E5F3E5F28F818F82E5F48F83CDE48F84C8F58F858F868F878F888F898F8A8F8BB5AFC7BF8F8CE5F68F8D8F8E8F8FECB08F908F918F928F938F948F958F968F978F988F998F9A8F9B8F9C8F9D8F9EE5E68F9FB9E9B5B18FA0C2BCE5E8E5E7E5E98FA18FA28FA38FA4D2CD8FA58FA68FA7E1EAD0CE8FA8CDAE8FA9D1E58FAA8FABB2CAB1EB8FACB1F2C5ED8FAD8FAED5C3D3B08FAFE1DC8FB08FB18FB2E1DD8FB3D2DB8FB4B3B9B1CB8FB58FB68FB7CDF9D5F7E1DE8FB8BEB6B4FD8FB9E1DFBADCE1E0BBB2C2C9E1E18FBA8FBB8FBCD0EC8FBDCDBD8FBE8FBFE1E28FC0B5C3C5C7E1E38FC18FC2E1E48FC38FC48FC58FC6D3F98FC78FC88FC98FCA8FCB8FCCE1E58FCDD1AD8FCE8FCFE1E6CEA28FD08FD18FD28FD38FD48FD5E1E78FD6B5C28FD78FD88FD98FDAE1E8BBD58FDB8FDC8FDD8FDE8FDFD0C4E2E0B1D8D2E48FE08FE1E2E18FE28FE3BCC9C8CC8FE4E2E3ECFEECFDDFAF8FE58FE68FE7E2E2D6BECDFCC3A68FE88FE98FEAE3C38FEB8FECD6D2E2E78FED8FEEE2E88FEF8FF0D3C78FF18FF2E2ECBFEC8FF3E2EDE2E58FF48FF5B3C08FF68FF78FF8C4EE8FF98FFAE2EE8FFB8FFCD0C38FFDBAF6E2E9B7DEBBB3CCACCBCBE2E4E2E6E2EAE2EB8FFE90409041E2F790429043E2F4D4F5E2F390449045C5AD9046D5FAC5C2B2C090479048E2EF9049E2F2C1AFCBBC904A904BB5A1E2F9904C904D904EBCB1E2F1D0D4D4B9E2F5B9D6E2F6904F90509051C7D390529053905490559056E2F0905790589059905A905BD7DCEDA1905C905DE2F8905EEDA5E2FECAD1905F906090619062906390649065C1B59066BBD090679068BFD69069BAE3906A906BCBA1906C906D906EEDA6EDA3906F9070EDA29071907290739074BBD6EDA7D0F490759076EDA4BADEB6F7E3A1B6B2CCF1B9A79077CFA2C7A190789079BFD2907A907BB6F1907CE2FAE2FBE2FDE2FCC4D5E3A2907DD3C1907E90809081E3A7C7C49082908390849085CFA490869087E3A9BAB790889089908A908BE3A8908CBBDA908DE3A3908E908F9090E3A4E3AA9091E3A69092CEF2D3C690939094BBBC90959096D4C39097C4FA90989099EDA8D0FCE3A5909AC3F5909BE3ADB1AF909CE3B2909D909E909FBCC290A090A1E3ACB5BF90A290A390A490A590A690A790A890A9C7E9E3B090AA90AB90ACBEAACDEF90AD90AE90AF90B090B1BBF390B290B390B4CCE890B590B6E3AF90B7E3B190B8CFA7E3AE90B9CEA9BBDD90BA90BB90BC90BD90BEB5EBBEE5B2D2B3CD90BFB1B9E3ABB2D1B5ACB9DFB6E890C090C1CFEBE3B790C2BBCC90C390C4C8C7D0CA90C590C690C790C890C9E3B8B3EE90CA90CB90CC90CDEDA990CED3FAD3E490CF90D090D1EDAAE3B9D2E290D290D390D490D590D6E3B590D790D890D990DAD3DE90DB90DC90DD90DEB8D0E3B390DF90E0E3B6B7DF90E1E3B4C0A290E290E390E4E3BA90E590E690E790E890E990EA90EB90EC90ED90EE90EF90F090F190F290F390F490F590F690F7D4B890F890F990FA90FB90FC90FD90FE9140B4C89141E3BB9142BBC59143C9F791449145C9E5914691479148C4BD9149914A914B914C914D914E914FEDAB9150915191529153C2FD9154915591569157BBDBBFAE91589159915A915B915C915D915ECEBF915F916091619162E3BC9163BFB6916491659166916791689169916A916B916C916D916E916F9170917191729173917491759176B1EF91779178D4F79179917A917B917C917DE3BE917E9180918191829183918491859186EDAD918791889189918A918B918C918D918E918FE3BFBAA9EDAC91909191E3BD91929193919491959196919791989199919A919BE3C0919C919D919E919F91A091A1BAB691A291A391A4B6AE91A591A691A791A891A9D0B891AAB0C3EDAE91AB91AC91AD91AE91AFEDAFC0C191B0E3C191B191B291B391B491B591B691B791B891B991BA91BB91BC91BD91BE91BF91C091C1C5B391C291C391C491C591C691C791C891C991CA91CB91CC91CD91CE91CFE3C291D091D191D291D391D491D591D691D791D8DCB291D991DA91DB91DC91DD91DEEDB091DFB8EA91E0CEECEAA7D0E7CAF9C8D6CFB7B3C9CED2BDE491E191E2E3DEBBF2EAA8D5BD91E3C6DDEAA991E491E591E6EAAA91E7EAACEAAB91E8EAAEEAAD91E991EA91EB91ECBDD891EDEAAF91EEC2BE91EF91F091F191F2B4C1B4F791F391F4BBA791F591F691F791F891F9ECE6ECE5B7BFCBF9B1E291FAECE791FB91FC91FDC9C8ECE8ECE991FECAD6DED0B2C5D4FA92409241C6CBB0C7B4F2C8D3924292439244CDD092459246BFB8924792489249924A924B924C924DBFDB924E924FC7A4D6B49250C0A9DED1C9A8D1EFC5A4B0E7B3B6C8C592519252B0E292539254B7F692559256C5FA92579258B6F39259D5D2B3D0BCBC925A925B925CB3AD925D925E925F9260BEF1B0D1926192629263926492659266D2D6CAE3D7A59267CDB6B6B6BFB9D5DB9268B8A7C5D79269926A926BDED2BFD9C2D5C7C0926CBBA4B1A8926D926EC5EA926F9270C5FBCCA79271927292739274B1A7927592769277B5D692789279927AC4A8927BDED3D1BAB3E9927CC3F2927D927EB7F79280D6F4B5A3B2F0C4B4C4E9C0ADDED49281B0E8C5C4C1E09282B9D59283BEDCCDD8B0CE9284CDCFDED6BED0D7BEDED5D5D0B0DD92859286C4E292879288C2A3BCF09289D3B5C0B9C5A1B2A6D4F1928A928BC0A8CAC3DED7D5FC928CB9B0928DC8ADCBA9928EDED9BFBD928F929092919292C6B4D7A7CAB0C4C39293B3D6B9D29294929592969297D6B8EAFCB0B492989299929A929BBFE6929C929DCCF4929E929F92A092A1CDDA92A292A392A4D6BFC2CE92A5CECECCA2D0AEC4D3B5B2DED8D5F5BCB7BBD392A692A7B0A492A8C5B2B4EC92A992AA92ABD5F192AC92ADEAFD92AE92AF92B092B192B292B3DEDACDA692B492B5CDEC92B692B792B892B9CEE6DEDC92BACDB1C0A692BB92BCD7BD92BDDEDBB0C6BAB4C9D3C4F3BEE892BE92BF92C092C1B2B692C292C392C492C592C692C792C892C9C0CCCBF092CABCF1BBBBB5B792CB92CC92CDC5F592CEDEE692CF92D092D1DEE3BEDD92D292D3DEDF92D492D592D692D7B4B7BDDD92D892D9DEE0C4ED92DA92DB92DC92DDCFC692DEB5E092DF92E092E192E2B6DECADAB5F4DEE592E3D5C692E4DEE1CCCDC6FE92E5C5C592E692E792E8D2B492E9BEF292EA92EB92EC92ED92EE92EF92F0C2D392F1CCBDB3B892F2BDD392F3BFD8CDC6D1DAB4EB92F4DEE4DEDDDEE792F5EAFE92F692F7C2B0DEE292F892F9D6C0B5A792FAB2F492FBDEE892FCDEF292FD92FE934093419342DEED9343DEF193449345C8E0934693479348D7E1DEEFC3E8CCE19349B2E5934A934B934CD2BE934D934E934F9350935193529353DEEE9354DEEBCED59355B4A79356935793589359935ABFABBEBE935B935CBDD2935D935E935F9360DEE99361D4AE9362DEDE9363DEEA9364936593669367C0BF9368DEECB2F3B8E9C2A79369936ABDC1936B936C936D936E936FDEF5DEF893709371B2ABB4A493729373B4EAC9A6937493759376937793789379DEF6CBD1937AB8E3937BDEF7DEFA937C937D937E9380DEF9938193829383CCC29384B0E1B4EE93859386938793889389938AE5BA938B938C938D938E938FD0AF93909391B2EB9392EBA19393DEF493949395C9E3DEF3B0DAD2A1B1F79396CCAF939793989399939A939B939C939DDEF0939ECBA4939F93A093A1D5AA93A293A393A493A593A6DEFB93A793A893A993AA93AB93AC93AD93AEB4DD93AFC4A693B093B193B2DEFD93B393B493B593B693B793B893B993BA93BB93BCC3FEC4A1DFA193BD93BE93BF93C093C193C293C3C1CC93C4DEFCBEEF93C5C6B293C693C793C893C993CA93CB93CC93CD93CEB3C5C8F693CF93D0CBBADEFE93D193D2DFA493D393D493D593D6D7B293D793D893D993DA93DBB3B793DC93DD93DE93DFC1C393E093E1C7CBB2A5B4E993E2D7AB93E393E493E593E6C4EC93E7DFA2DFA393E8DFA593E9BAB393EA93EB93ECDFA693EDC0DE93EE93EFC9C393F093F193F293F393F493F593F6B2D9C7E693F7DFA793F8C7DC93F993FA93FB93FCDFA8EBA293FD93FE944094419442CBD3944394449445DFAA9446DFA99447B2C194489449944A944B944C944D944E944F9450945194529453945494559456945794589459945A945B945C945D945E945F9460C5CA94619462946394649465946694679468DFAB9469946A946B946C946D946E946F9470D4DC94719472947394749475C8C19476947794789479947A947B947C947D947E948094819482DFAC94839484948594869487BEF094889489DFADD6A7948A948B948C948DEAB7EBB6CAD5948ED8FCB8C4948FB9A594909491B7C5D5FE94929493949494959496B9CA94979498D0A7F4CD9499949AB5D0949B949CC3F4949DBEC8949E949F94A0EBB7B0BD94A194A2BDCC94A3C1B294A4B1D6B3A894A594A694A7B8D2C9A294A894A9B6D894AA94AB94AC94ADEBB8BEB494AE94AF94B0CAFD94B1C7C394B2D5FB94B394B4B7F394B594B694B794B894B994BA94BB94BC94BD94BE94BF94C094C194C294C3CEC494C494C594C6D5ABB1F394C794C894C9ECB3B0DF94CAECB594CB94CC94CDB6B794CEC1CF94CFF5FAD0B194D094D1D5E594D2CED394D394D4BDEFB3E294D5B8AB94D6D5B694D7EDBD94D8B6CF94D9CBB9D0C294DA94DB94DC94DD94DE94DF94E094E1B7BD94E294E3ECB6CAA994E494E594E6C5D494E7ECB9ECB8C2C3ECB794E894E994EA94EBD0FDECBA94ECECBBD7E594ED94EEECBC94EF94F094F1ECBDC6EC94F294F394F494F594F694F794F894F9CEDE94FABCC894FB94FCC8D5B5A9BEC9D6BCD4E794FD94FED1AED0F1EAB8EAB9EABABAB59540954195429543CAB1BFF595449545CDFA9546954795489549954AEAC0954BB0BAEABE954C954DC0A5954E954F9550EABB9551B2FD9552C3F7BBE8955395549555D2D7CEF4EABF955695579558EABC9559955A955BEAC3955CD0C7D3B3955D955E955F9560B4BA9561C3C1D7F29562956395649565D5D19566CAC79567EAC595689569EAC4EAC7EAC6956A956B956C956D956ED6E7956FCFD495709571EACB9572BBCE9573957495759576957795789579BDFAC9CE957A957BEACC957C957DC9B9CFFEEACAD4CEEACDEACF957E9580CDED9581958295839584EAC99585EACE95869587CEEE9588BBDE9589B3BF958A958B958C958D958EC6D5BEB0CEFA958F95909591C7E79592BEA7EAD095939594D6C7959595969597C1C095989599959AD4DD959BEAD1959C959DCFBE959E959F95A095A1EAD295A295A395A495A5CAEE95A695A795A895A9C5AFB0B595AA95AB95AC95AD95AEEAD495AF95B095B195B295B395B495B595B695B7EAD3F4DF95B895B995BA95BB95BCC4BA95BD95BE95BF95C095C1B1A995C295C395C495C5E5DF95C695C795C895C9EAD595CA95CB95CC95CD95CE95CF95D095D195D295D395D495D595D695D795D895D995DA95DB95DC95DD95DE95DF95E095E195E295E3CAEF95E4EAD6EAD7C6D895E595E695E795E895E995EA95EB95ECEAD895ED95EEEAD995EF95F095F195F295F395F4D4BB95F5C7FAD2B7B8FC95F695F7EAC295F8B2DC95F995FAC2FC95FBD4F8CCE6D7EE95FC95FD95FE9640964196429643D4C2D3D0EBC3C5F39644B7FE96459646EBD4964796489649CBB7EBDE964AC0CA964B964C964DCDFB964EB3AF964FC6DA965096519652965396549655EBFC9656C4BE9657CEB4C4A9B1BED4FD9658CAF59659D6EC965A965BC6D3B6E4965C965D965E965FBBFA96609661D0E096629663C9B19664D4D3C8A896659666B8CB9667E8BEC9BC96689669E8BB966AC0EED0D3B2C4B4E5966BE8BC966C966DD5C8966E966F967096719672B6C59673E8BDCAF8B8DCCCF5967496759676C0B496779678D1EEE8BFE8C29679967ABABC967BB1ADBDDC967CEABDE8C3967DE8C6967EE8CB9680968196829683E8CC9684CBC9B0E59685BCAB96869687B9B996889689E8C1968ACDF7968BE8CA968C968D968E968FCEF69690969196929693D5ED9694C1D6E8C49695C3B69696B9FBD6A6E8C8969796989699CAE0D4E6969AE8C0969BE8C5E8C7969CC7B9B7E3969DE8C9969EBFDDE8D2969F96A0E8D796A1E8D5BCDCBCCFE8DB96A296A396A496A596A696A796A896A9E8DE96AAE8DAB1FA96AB96AC96AD96AE96AF96B096B196B296B396B4B0D8C4B3B8CCC6E2C8BEC8E196B596B696B7E8CFE8D4E8D696B8B9F1E8D8D7F596B9C4FB96BAE8DC96BB96BCB2E996BD96BE96BFE8D196C096C1BCED96C296C3BFC2E8CDD6F996C4C1F8B2F196C596C696C796C896C996CA96CB96CCE8DF96CDCAC1E8D996CE96CF96D096D1D5A496D2B1EAD5BBE8CEE8D0B6B0E8D396D3E8DDC0B896D4CAF796D5CBA896D696D7C6DCC0F596D896D996DA96DB96DCE8E996DD96DE96DFD0A396E096E196E296E396E496E596E6E8F2D6EA96E796E896E996EA96EB96EC96EDE8E0E8E196EE96EF96F0D1F9BACBB8F996F196F2B8F1D4D4E8EF96F3E8EEE8ECB9F0CCD2E8E6CEA6BFF296F4B0B8E8F1E8F096F5D7C096F6E8E496F7CDA9C9A396F8BBB8BDDBE8EA96F996FA96FB96FC96FD96FE9740974197429743E8E2E8E3E8E5B5B5E8E7C7C5E8EBE8EDBDB0D7AE9744E8F897459746974797489749974A974B974CE8F5974DCDB0E8F6974E974F9750975197529753975497559756C1BA9757E8E89758C3B7B0F09759975A975B975C975D975E975F9760E8F4976197629763E8F7976497659766B9A3976797689769976A976B976C976D976E976F9770C9D2977197729773C3CECEE0C0E69774977597769777CBF39778CCDDD0B59779977ACAE1977BE8F3977C977D977E9780978197829783978497859786BCEC9787E8F997889789978A978B978C978DC3DE978EC6E5978FB9F79790979197929793B0F497949795D7D897969797BCAC9798C5EF9799979A979B979C979DCCC4979E979FE9A697A097A197A297A397A497A597A697A797A897A9C9AD97AAE9A2C0E297AB97AC97ADBFC397AE97AF97B0E8FEB9D797B1E8FB97B297B397B497B5E9A497B697B797B8D2CE97B997BA97BB97BC97BDE9A397BED6B2D7B597BFE9A797C0BDB797C197C297C397C497C597C697C797C897C997CA97CB97CCE8FCE8FD97CD97CE97CFE9A197D097D197D297D397D497D597D697D7CDD697D897D9D2AC97DA97DB97DCE9B297DD97DE97DF97E0E9A997E197E297E3B4AA97E4B4BB97E597E6E9AB97E797E897E997EA97EB97EC97ED97EE97EF97F097F197F297F397F497F597F697F7D0A897F897F9E9A597FA97FBB3FE97FC97FDE9ACC0E397FEE9AA98409841E9B998429843E9B89844984598469847E9AE98489849E8FA984A984BE9A8984C984D984E984F9850BFACE9B1E9BA98519852C2A5985398549855E9AF9856B8C59857E9AD9858D3DCE9B4E9B5E9B79859985A985BE9C7985C985D985E985F98609861C0C6E9C598629863E9B098649865E9BBB0F19866986798689869986A986B986C986D986E986FE9BCD5A598709871E9BE9872E9BF987398749875E9C198769877C1F198789879C8B6987A987B987CE9BD987D987E988098819882E9C29883988498859886988798889889988AE9C3988BE9B3988CE9B6988DBBB1988E988F9890E9C0989198929893989498959896BCF7989798989899E9C4E9C6989A989B989C989D989E989F98A098A198A298A398A498A5E9CA98A698A798A898A9E9CE98AA98AB98AC98AD98AE98AF98B098B198B298B3B2DB98B4E9C898B598B698B798B898B998BA98BB98BC98BD98BEB7AE98BF98C098C198C298C398C498C598C698C798C898C998CAE9CBE9CC98CB98CC98CD98CE98CF98D0D5C198D1C4A398D298D398D498D598D698D7E9D898D8BAE198D998DA98DB98DCE9C998DDD3A398DE98DF98E0E9D498E198E298E398E498E598E698E7E9D7E9D098E898E998EA98EB98ECE9CF98ED98EEC7C198EF98F098F198F298F398F498F598F6E9D298F798F898F998FA98FB98FC98FDE9D9B3C898FEE9D399409941994299439944CFF0994599469947E9CD99489949994A994B994C994D994E994F995099519952B3F79953995499559956995799589959E9D6995A995BE9DA995C995D995ECCB4995F99609961CFAD99629963996499659966996799689969996AE9D5996BE9DCE9DB996C996D996E996F9970E9DE99719972997399749975997699779978E9D19979997A997B997C997D997E99809981E9DD9982E9DFC3CA9983998499859986998799889989998A998B998C998D998E998F9990999199929993999499959996999799989999999A999B999C999D999E999F99A099A199A299A399A499A599A699A799A899A999AA99AB99AC99AD99AE99AF99B099B199B299B399B499B599B699B799B899B999BA99BB99BC99BD99BE99BF99C099C199C299C399C499C599C699C799C899C999CA99CB99CC99CD99CE99CF99D099D199D299D399D499D599D699D799D899D999DA99DB99DC99DD99DE99DF99E099E199E299E399E499E599E699E799E899E999EA99EB99EC99ED99EE99EF99F099F199F299F399F499F5C7B7B4CEBBB6D0C0ECA399F699F7C5B799F899F999FA99FB99FC99FD99FE9A409A419A42D3FB9A439A449A459A46ECA49A47ECA5C6DB9A489A499A4ABFEE9A4B9A4C9A4D9A4EECA69A4F9A50ECA7D0AA9A51C7B89A529A53B8E89A549A559A569A579A589A599A5A9A5B9A5C9A5D9A5E9A5FECA89A609A619A629A639A649A659A669A67D6B9D5FDB4CBB2BDCEE4C6E79A689A69CDE19A6A9A6B9A6C9A6D9A6E9A6F9A709A719A729A739A749A759A769A77B4F59A78CBC0BCDF9A799A7A9A7B9A7CE9E2E9E3D1EAE9E59A7DB4F9E9E49A7ED1B3CAE2B2D09A80E9E89A819A829A839A84E9E6E9E79A859A86D6B39A879A889A89E9E9E9EA9A8A9A8B9A8C9A8D9A8EE9EB9A8F9A909A919A929A939A949A959A96E9EC9A979A989A999A9A9A9B9A9C9A9D9A9EECAFC5B9B6CE9A9FD2F39AA09AA19AA29AA39AA49AA59AA6B5EE9AA7BBD9ECB19AA89AA9D2E39AAA9AAB9AAC9AAD9AAECEE39AAFC4B89AB0C3BF9AB19AB2B6BED8B9B1C8B1CFB1D1C5FE9AB3B1D09AB4C3AB9AB59AB69AB79AB89AB9D5B19ABA9ABB9ABC9ABD9ABE9ABF9AC09AC1EBA4BAC19AC29AC39AC4CCBA9AC59AC69AC7EBA59AC8EBA79AC99ACA9ACBEBA89ACC9ACD9ACEEBA69ACF9AD09AD19AD29AD39AD49AD5EBA9EBABEBAA9AD69AD79AD89AD99ADAEBAC9ADBCACFD8B5C3F19ADCC3A5C6F8EBADC4CA9ADDEBAEEBAFEBB0B7D59ADE9ADF9AE0B7FA9AE1EBB1C7E29AE2EBB39AE3BAA4D1F5B0B1EBB2EBB49AE49AE59AE6B5AAC2C8C7E89AE7EBB59AE8CBAEE3DF9AE99AEAD3C09AEB9AEC9AED9AEED9DB9AEF9AF0CDA1D6ADC7F39AF19AF29AF3D9E0BBE39AF4BABAE3E29AF59AF69AF79AF89AF9CFAB9AFA9AFB9AFCE3E0C9C79AFDBAB99AFE9B409B41D1B4E3E1C8EAB9AFBDADB3D8CEDB9B429B43CCC09B449B459B46E3E8E3E9CDF49B479B489B499B4A9B4BCCAD9B4CBCB39B4DE3EA9B4EE3EB9B4F9B50D0DA9B519B529B53C6FBB7DA9B549B55C7DFD2CACED69B56E3E4E3EC9B57C9F2B3C19B589B59E3E79B5A9B5BC6E3E3E59B5C9B5DEDB3E3E69B5E9B5F9B609B61C9B39B62C5E69B639B649B65B9B59B66C3BB9B67E3E3C5BDC1A4C2D9B2D79B68E3EDBBA6C4AD9B69E3F0BEDA9B6A9B6BE3FBE3F5BAD39B6C9B6D9B6E9B6FB7D0D3CD9B70D6CED5D3B9C1D5B4D1D89B719B729B739B74D0B9C7F69B759B769B77C8AAB2B49B78C3DA9B799B7A9B7BE3EE9B7C9B7DE3FCE3EFB7A8E3F7E3F49B7E9B809B81B7BA9B829B83C5A29B84E3F6C5DDB2A8C6FC9B85C4E09B869B87D7A29B88C0E1E3F99B899B8AE3FAE3FDCCA9E3F39B8BD3BE9B8CB1C3EDB4E3F1E3F29B8DE3F8D0BAC6C3D4F3E3FE9B8E9B8FBDE09B909B91E4A79B929B93E4A69B949B959B96D1F3E4A39B97E4A99B989B999B9AC8F79B9B9B9C9B9D9B9ECFB49B9FE4A8E4AEC2E59BA09BA1B6B49BA29BA39BA49BA59BA69BA7BDF29BA8E4A29BA99BAABAE9E4AA9BAB9BACE4AC9BAD9BAEB6FDD6DEE4B29BAFE4AD9BB09BB19BB2E4A19BB3BBEECDDDC7A2C5C99BB49BB5C1F79BB6E4A49BB7C7B3BDACBDBDE4A59BB8D7C7B2E29BB9E4ABBCC3E4AF9BBABBEBE4B0C5A8E4B19BBB9BBC9BBD9BBED5E3BFA39BBFE4BA9BC0E4B79BC1E4BB9BC29BC3E4BD9BC49BC5C6D69BC69BC7BAC6C0CB9BC89BC99BCAB8A1E4B49BCB9BCC9BCD9BCED4A19BCF9BD0BAA3BDFE9BD19BD29BD3E4BC9BD49BD59BD69BD79BD8CDBF9BD99BDAC4F99BDB9BDCCFFBC9E69BDD9BDED3BF9BDFCFD19BE09BE1E4B39BE2E4B8E4B9CCE99BE39BE49BE59BE69BE7CCCE9BE8C0D4E4B5C1B0E4B6CED09BE9BBC1B5D39BEAC8F3BDA7D5C7C9ACB8A2E4CA9BEB9BECE4CCD1C49BED9BEED2BA9BEF9BF0BAAD9BF19BF2BAD49BF39BF49BF59BF69BF79BF8E4C3B5ED9BF99BFA9BFBD7CDE4C0CFFDE4BF9BFC9BFD9BFEC1DCCCCA9C409C419C429C43CAE79C449C459C469C47C4D79C48CCD4E4C89C499C4A9C4BE4C7E4C19C4CE4C4B5AD9C4D9C4ED3D99C4FE4C69C509C519C529C53D2F9B4E39C54BBB49C559C56C9EE9C57B4BE9C589C599C5ABBEC9C5BD1CD9C5CCCEDEDB59C5D9C5E9C5F9C609C619C629C639C64C7E59C659C669C679C68D4A89C69E4CBD7D5E4C29C6ABDA5E4C59C6B9C6CD3E69C6DE4C9C9F89C6E9C6FE4BE9C709C71D3E59C729C73C7FEB6C99C74D4FCB2B3E4D79C759C769C77CEC29C78E4CD9C79CEBC9C7AB8DB9C7B9C7CE4D69C7DBFCA9C7E9C809C81D3CE9C82C3EC9C839C849C859C869C879C889C899C8AC5C8E4D89C8B9C8C9C8D9C8E9C8F9C909C919C92CDC4E4CF9C939C949C959C96E4D4E4D59C97BAFE9C98CFE69C999C9AD5BF9C9B9C9C9C9DE4D29C9E9C9F9CA09CA19CA29CA39CA49CA59CA69CA79CA8E4D09CA99CAAE4CE9CAB9CAC9CAD9CAE9CAF9CB09CB19CB29CB39CB49CB59CB69CB79CB89CB9CDE5CAAA9CBA9CBB9CBCC0A39CBDBDA6E4D39CBE9CBFB8C89CC09CC19CC29CC39CC4E4E7D4B49CC59CC69CC79CC89CC99CCA9CCBE4DB9CCC9CCD9CCEC1EF9CCF9CD0E4E99CD19CD2D2E79CD39CD4E4DF9CD5E4E09CD69CD7CFAA9CD89CD99CDA9CDBCBDD9CDCE4DAE4D19CDDE4E59CDEC8DCE4E39CDF9CE0C4E7E4E29CE1E4E19CE29CE39CE4B3FCE4E89CE59CE69CE79CE8B5E19CE99CEA9CEBD7CC9CEC9CED9CEEE4E69CEFBBAC9CF0D7D2CCCFEBF89CF1E4E49CF29CF3B9F69CF49CF59CF6D6CDE4D9E4DCC2FAE4DE9CF7C2CBC0C4C2D09CF8B1F5CCB29CF99CFA9CFB9CFC9CFD9CFE9D409D419D429D43B5CE9D449D459D469D47E4EF9D489D499D4A9D4B9D4C9D4D9D4E9D4FC6AF9D509D519D52C6E19D539D54E4F59D559D569D579D589D59C2A99D5A9D5B9D5CC0ECD1DDE4EE9D5D9D5E9D5F9D609D619D629D639D649D659D66C4AE9D679D689D69E4ED9D6A9D6B9D6C9D6DE4F6E4F4C2FE9D6EE4DD9D6FE4F09D70CAFE9D71D5C49D729D73E4F19D749D759D769D779D789D799D7AD1FA9D7B9D7C9D7D9D7E9D809D819D82E4EBE4EC9D839D849D85E4F29D86CEAB9D879D889D899D8A9D8B9D8C9D8D9D8E9D8F9D90C5CB9D919D929D93C7B19D94C2BA9D959D969D97E4EA9D989D999D9AC1CA9D9B9D9C9D9D9D9E9D9F9DA0CCB6B3B19DA19DA29DA3E4FB9DA4E4F39DA59DA69DA7E4FA9DA8E4FD9DA9E4FC9DAA9DAB9DAC9DAD9DAE9DAF9DB0B3CE9DB19DB29DB3B3BAE4F79DB49DB5E4F9E4F8C5EC9DB69DB79DB89DB99DBA9DBB9DBC9DBD9DBE9DBF9DC09DC19DC2C0BD9DC39DC49DC59DC6D4E89DC79DC89DC99DCA9DCBE5A29DCC9DCD9DCE9DCF9DD09DD19DD29DD39DD49DD59DD6B0C49DD79DD8E5A49DD99DDAE5A39DDB9DDC9DDD9DDE9DDF9DE0BCA49DE1E5A59DE29DE39DE49DE59DE69DE7E5A19DE89DE99DEA9DEB9DEC9DED9DEEE4FEB1F49DEF9DF09DF19DF29DF39DF49DF59DF69DF79DF89DF9E5A89DFAE5A9E5A69DFB9DFC9DFD9DFE9E409E419E429E439E449E459E469E47E5A7E5AA9E489E499E4A9E4B9E4C9E4D9E4E9E4F9E509E519E529E539E549E559E569E579E589E599E5A9E5B9E5C9E5D9E5E9E5F9E609E619E629E639E649E659E669E679E68C6D99E699E6A9E6B9E6C9E6D9E6E9E6F9E70E5ABE5AD9E719E729E739E749E759E769E77E5AC9E789E799E7A9E7B9E7C9E7D9E7E9E809E819E829E839E849E859E869E879E889E89E5AF9E8A9E8B9E8CE5AE9E8D9E8E9E8F9E909E919E929E939E949E959E969E979E989E999E9A9E9B9E9C9E9D9E9EB9E09E9F9EA0E5B09EA19EA29EA39EA49EA59EA69EA79EA89EA99EAA9EAB9EAC9EAD9EAEE5B19EAF9EB09EB19EB29EB39EB49EB59EB69EB79EB89EB99EBABBF0ECE1C3F09EBBB5C6BBD29EBC9EBD9EBE9EBFC1E9D4EE9EC0BEC49EC19EC29EC3D7C69EC4D4D6B2D3ECBE9EC59EC69EC79EC8EAC19EC99ECA9ECBC2AFB4B69ECC9ECD9ECED1D79ECF9ED09ED1B3B49ED2C8B2BFBBECC09ED39ED4D6CB9ED59ED6ECBFECC19ED79ED89ED99EDA9EDB9EDC9EDD9EDE9EDF9EE09EE19EE29EE3ECC5BEE6CCBFC5DABEBC9EE4ECC69EE5B1FE9EE69EE79EE8ECC4D5A8B5E39EE9ECC2C1B6B3E39EEA9EEBECC3CBB8C0C3CCFE9EEC9EED9EEE9EEFC1D29EF0ECC89EF19EF29EF39EF49EF59EF69EF79EF89EF99EFA9EFB9EFC9EFDBAE6C0D39EFED6F29F409F419F42D1CC9F439F449F459F46BFBE9F47B7B3C9D5ECC7BBE29F48CCCCBDFDC8C89F49CFA99F4A9F4B9F4C9F4D9F4E9F4F9F50CDE99F51C5EB9F529F539F54B7E99F559F569F579F589F599F5A9F5B9F5C9F5D9F5E9F5FD1C9BAB89F609F619F629F639F64ECC99F659F66ECCA9F67BBC0ECCB9F68ECE2B1BAB7D99F699F6A9F6B9F6C9F6D9F6E9F6F9F709F719F729F73BDB99F749F759F769F779F789F799F7A9F7BECCCD1E6ECCD9F7C9F7D9F7E9F80C8BB9F819F829F839F849F859F869F879F889F899F8A9F8B9F8C9F8D9F8EECD19F8F9F909F919F92ECD39F93BBCD9F94BCE59F959F969F979F989F999F9A9F9B9F9C9F9D9F9E9F9F9FA09FA1ECCF9FA2C9B79FA39FA49FA59FA69FA7C3BA9FA8ECE3D5D5ECD09FA99FAA9FAB9FAC9FADD6F39FAE9FAF9FB0ECD2ECCE9FB19FB29FB39FB4ECD49FB5ECD59FB69FB7C9BF9FB89FB99FBA9FBB9FBC9FBDCFA89FBE9FBF9FC09FC19FC2D0DC9FC39FC49FC59FC6D1AC9FC79FC89FC99FCAC8DB9FCB9FCC9FCDECD6CEF59FCE9FCF9FD09FD19FD2CAECECDA9FD39FD49FD59FD69FD79FD89FD9ECD99FDA9FDB9FDCB0BE9FDD9FDE9FDF9FE09FE19FE2ECD79FE3ECD89FE49FE59FE6ECE49FE79FE89FE99FEA9FEB9FEC9FED9FEE9FEFC8BC9FF09FF19FF29FF39FF49FF59FF69FF79FF89FF9C1C79FFA9FFB9FFC9FFD9FFEECDCD1E0A040A041A042A043A044A045A046A047A048A049ECDBA04AA04BA04CA04DD4EFA04EECDDA04FA050A051A052A053A054DBC6A055A056A057A058A059A05AA05BA05CA05DA05EECDEA05FA060A061A062A063A064A065A066A067A068A069A06AB1ACA06BA06CA06DA06EA06FA070A071A072A073A074A075A076A077A078A079A07AA07BA07CA07DA07EA080A081ECDFA082A083A084A085A086A087A088A089A08AA08BECE0A08CD7A6A08DC5C0A08EA08FA090EBBCB0AEA091A092A093BEF4B8B8D2AFB0D6B5F9A094D8B3A095CBACA096E3DDA097A098A099A09AA09BA09CA09DC6ACB0E6A09EA09FA0A0C5C6EBB9A0A1A0A2A0A3A0A4EBBAA0A5A0A6A0A7EBBBA0A8A0A9D1C0A0AAC5A3A0ABEAF2A0ACC4B2A0ADC4B5C0CEA0AEA0AFA0B0EAF3C4C1A0B1CEEFA0B2A0B3A0B4A0B5EAF0EAF4A0B6A0B7C9FCA0B8A0B9C7A3A0BAA0BBA0BCCCD8CEFEA0BDA0BEA0BFEAF5EAF6CFACC0E7A0C0A0C1EAF7A0C2A0C3A0C4A0C5A0C6B6BFEAF8A0C7EAF9A0C8EAFAA0C9A0CAEAFBA0CBA0CCA0CDA0CEA0CFA0D0A0D1A0D2A0D3A0D4A0D5A0D6EAF1A0D7A0D8A0D9A0DAA0DBA0DCA0DDA0DEA0DFA0E0A0E1A0E2C8AEE1EBA0E3B7B8E1ECA0E4A0E5A0E6E1EDA0E7D7B4E1EEE1EFD3CCA0E8A0E9A0EAA0EBA0ECA0EDA0EEE1F1BFF1E1F0B5D2A0EFA0F0A0F1B1B7A0F2A0F3A0F4A0F5E1F3E1F2A0F6BAFCA0F7E1F4A0F8A0F9A0FAA0FBB9B7A0FCBED1A0FDA0FEAA40AA41C4FCAA42BADDBDC6AA43AA44AA45AA46AA47AA48E1F5E1F7AA49AA4AB6C0CFC1CAA8E1F6D5F8D3FCE1F8E1FCE1F9AA4BAA4CE1FAC0EAAA4DE1FEE2A1C0C7AA4EAA4FAA50AA51E1FBAA52E1FDAA53AA54AA55AA56AA57AA58E2A5AA59AA5AAA5BC1D4AA5CAA5DAA5EAA5FE2A3AA60E2A8B2FEE2A2AA61AA62AA63C3CDB2C2E2A7E2A6AA64AA65E2A4E2A9AA66AA67E2ABAA68AA69AA6AD0C9D6EDC3A8E2ACAA6BCFD7AA6CAA6DE2AEAA6EAA6FBAEFAA70AA71E9E0E2ADE2AAAA72AA73AA74AA75BBABD4B3AA76AA77AA78AA79AA7AAA7BAA7CAA7DAA7EAA80AA81AA82AA83E2B0AA84AA85E2AFAA86E9E1AA87AA88AA89AA8AE2B1AA8BAA8CAA8DAA8EAA8FAA90AA91AA92E2B2AA93AA94AA95AA96AA97AA98AA99AA9AAA9BAA9CAA9DE2B3CCA1AA9EE2B4AA9FAAA0AB40AB41AB42AB43AB44AB45AB46AB47AB48AB49AB4AAB4BE2B5AB4CAB4DAB4EAB4FAB50D0FEAB51AB52C2CAAB53D3F1AB54CDF5AB55AB56E7E0AB57AB58E7E1AB59AB5AAB5BAB5CBEC1AB5DAB5EAB5FAB60C2EAAB61AB62AB63E7E4AB64AB65E7E3AB66AB67AB68AB69AB6AAB6BCDE6AB6CC3B5AB6DAB6EE7E2BBB7CFD6AB6FC1E1E7E9AB70AB71AB72E7E8AB73AB74E7F4B2A3AB75AB76AB77AB78E7EAAB79E7E6AB7AAB7BAB7CAB7DAB7EE7ECE7EBC9BAAB80AB81D5E4AB82E7E5B7A9E7E7AB83AB84AB85AB86AB87AB88AB89E7EEAB8AAB8BAB8CAB8DE7F3AB8ED6E9AB8FAB90AB91AB92E7EDAB93E7F2AB94E7F1AB95AB96AB97B0E0AB98AB99AB9AAB9BE7F5AB9CAB9DAB9EAB9FABA0AC40AC41AC42AC43AC44AC45AC46AC47AC48AC49AC4AC7F2AC4BC0C5C0EDAC4CAC4DC1F0E7F0AC4EAC4FAC50AC51E7F6CBF6AC52AC53AC54AC55AC56AC57AC58AC59AC5AE8A2E8A1AC5BAC5CAC5DAC5EAC5FAC60D7C1AC61AC62E7FAE7F9AC63E7FBAC64E7F7AC65E7FEAC66E7FDAC67E7FCAC68AC69C1D5C7D9C5FDC5C3AC6AAC6BAC6CAC6DAC6EC7EDAC6FAC70AC71AC72E8A3AC73AC74AC75AC76AC77AC78AC79AC7AAC7BAC7CAC7DAC7EAC80AC81AC82AC83AC84AC85AC86E8A6AC87E8A5AC88E8A7BAF7E7F8E8A4AC89C8F0C9AAAC8AAC8BAC8CAC8DAC8EAC8FAC90AC91AC92AC93AC94AC95AC96E8A9AC97AC98B9E5AC99AC9AAC9BAC9CAC9DD1FEE8A8AC9EAC9FACA0AD40AD41AD42E8AAAD43E8ADE8AEAD44C1A7AD45AD46AD47E8AFAD48AD49AD4AE8B0AD4BAD4CE8ACAD4DE8B4AD4EAD4FAD50AD51AD52AD53AD54AD55AD56AD57AD58E8ABAD59E8B1AD5AAD5BAD5CAD5DAD5EAD5FAD60AD61E8B5E8B2E8B3AD62AD63AD64AD65AD66AD67AD68AD69AD6AAD6BAD6CAD6DAD6EAD6FAD70AD71E8B7AD72AD73AD74AD75AD76AD77AD78AD79AD7AAD7BAD7CAD7DAD7EAD80AD81AD82AD83AD84AD85AD86AD87AD88AD89E8B6AD8AAD8BAD8CAD8DAD8EAD8FAD90AD91AD92B9CFAD93F0ACAD94F0ADAD95C6B0B0EAC8BFAD96CDDFAD97AD98AD99AD9AAD9BAD9CAD9DCECDEAB1AD9EAD9FADA0AE40EAB2AE41C6BFB4C9AE42AE43AE44AE45AE46AE47AE48EAB3AE49AE4AAE4BAE4CD5E7AE4DAE4EAE4FAE50AE51AE52AE53AE54DDF9AE55EAB4AE56EAB5AE57EAB6AE58AE59AE5AAE5BB8CADFB0C9F5AE5CCCF0AE5DAE5EC9FAAE5FAE60AE61AE62AE63C9FBAE64AE65D3C3CBA6AE66B8A6F0AEB1C2AE67E5B8CCEFD3C9BCD7C9EAAE68B5E7AE69C4D0B5E9AE6AEEAEBBADAE6BAE6CE7DEAE6DEEAFAE6EAE6FAE70AE71B3A9AE72AE73EEB2AE74AE75EEB1BDE7AE76EEB0CEB7AE77AE78AE79AE7AC5CFAE7BAE7CAE7DAE7EC1F4DBCEEEB3D0F3AE80AE81AE82AE83AE84AE85AE86AE87C2D4C6E8AE88AE89AE8AB7ACAE8BAE8CAE8DAE8EAE8FAE90AE91EEB4AE92B3EBAE93AE94AE95BBFBEEB5AE96AE97AE98AE99AE9AE7DCAE9BAE9CAE9DEEB6AE9EAE9FBDAEAEA0AF40AF41AF42F1E2AF43AF44AF45CAE8AF46D2C9F0DAAF47F0DBAF48F0DCC1C6AF49B8EDBECEAF4AAF4BF0DEAF4CC5B1F0DDD1F1AF4DF0E0B0CCBDEAAF4EAF4FAF50AF51AF52D2DFF0DFAF53B4AFB7E8F0E6F0E5C6A3F0E1F0E2B4C3AF54AF55F0E3D5EEAF56AF57CCDBBED2BCB2AF58AF59AF5AF0E8F0E7F0E4B2A1AF5BD6A2D3B8BEB7C8ACAF5CAF5DF0EAAF5EAF5FAF60AF61D1F7AF62D6CCBADBF0E9AF63B6BBAF64AF65CDB4AF66AF67C6A6AF68AF69AF6AC1A1F0EBF0EEAF6BF0EDF0F0F0ECAF6CBBBEF0EFAF6DAF6EAF6FAF70CCB5F0F2AF71AF72B3D5AF73AF74AF75AF76B1D4AF77AF78F0F3AF79AF7AF0F4F0F6B4E1AF7BF0F1AF7CF0F7AF7DAF7EAF80AF81F0FAAF82F0F8AF83AF84AF85F0F5AF86AF87AF88AF89F0FDAF8AF0F9F0FCF0FEAF8BF1A1AF8CAF8DAF8ECEC1F1A4AF8FF1A3AF90C1F6F0FBCADDAF91AF92B4F1B1F1CCB1AF93F1A6AF94AF95F1A7AF96AF97F1ACD5CEF1A9AF98AF99C8B3AF9AAF9BAF9CF1A2AF9DF1ABF1A8F1A5AF9EAF9FF1AAAFA0B040B041B042B043B044B045B046B0A9F1ADB047B048B049B04AB04BB04CF1AFB04DF1B1B04EB04FB050B051B052F1B0B053F1AEB054B055B056B057D1A2B058B059B05AB05BB05CB05DB05EF1B2B05FB060B061F1B3B062B063B064B065B066B067B068B069B9EFB06AB06BB5C7B06CB0D7B0D9B06DB06EB06FD4EDB070B5C4B071BDD4BBCAF0A7B072B073B8DEB074B075F0A8B076B077B0A8B078F0A9B079B07ACDEEB07BB07CF0AAB07DB07EB080B081B082B083B084B085B086B087F0ABB088B089B08AB08BB08CB08DB08EB08FB090C6A4B091B092D6E5F1E4B093F1E5B094B095B096B097B098B099B09AB09BB09CB09DC3F3B09EB09FD3DBB0A0B140D6D1C5E8B141D3AFB142D2E6B143B144EEC1B0BBD5B5D1CEBCE0BAD0B145BFF8B146B8C7B5C1C5CCB147B148CAA2B149B14AB14BC3CBB14CB14DB14EB14FB150EEC2B151B152B153B154B155B156B157B158C4BFB6A2B159EDECC3A4B15AD6B1B15BB15CB15DCFE0EDEFB15EB15FC5CEB160B6DCB161B162CAA1B163B164EDEDB165B166EDF0EDF1C3BCB167BFB4B168EDEEB169B16AB16BB16CB16DB16EB16FB170B171B172B173EDF4EDF2B174B175B176B177D5E6C3DFB178EDF3B179B17AB17BEDF6B17CD5A3D1A3B17DB17EB180EDF5B181C3D0B182B183B184B185B186EDF7BFF4BEECEDF8B187CCF7B188D1DBB189B18AB18BD7C5D5F6B18CEDFCB18DB18EB18FEDFBB190B191B192B193B194B195B196B197EDF9EDFAB198B199B19AB19BB19CB19DB19EB19FEDFDBEA6B1A0B240B241B242B243CBAFEEA1B6BDB244EEA2C4C0B245EDFEB246B247BDDEB2C7B248B249B24AB24BB24CB24DB24EB24FB250B251B252B253B6C3B254B255B256EEA5D8BAEEA3EEA6B257B258B259C3E9B3F2B25AB25BB25CB25DB25EB25FEEA7EEA4CFB9B260B261EEA8C2F7B262B263B264B265B266B267B268B269B26AB26BB26CB26DEEA9EEAAB26EDEABB26FB270C6B3B271C7C6B272D6F5B5C9B273CBB2B274B275B276EEABB277B278CDABB279EEACB27AB27BB27CB27DB27ED5B0B280EEADB281F6C4B282B283B284B285B286B287B288B289B28AB28BB28CB28DB28EDBC7B28FB290B291B292B293B294B295B296B297B4A3B298B299B29AC3ACF1E6B29BB29CB29DB29EB29FCAB8D2D3B2A0D6AAB340EFF2B341BED8B342BDC3EFF3B6CCB0ABB343B344B345B346CAAFB347B348EDB6B349EDB7B34AB34BB34CB34DCEF9B7AFBFF3EDB8C2EBC9B0B34EB34FB350B351B352B353EDB9B354B355C6F6BFB3B356B357B358EDBCC5F8B359D1D0B35AD7A9EDBAEDBBB35BD1E2B35CEDBFEDC0B35DEDC4B35EB35FB360EDC8B361EDC6EDCED5E8B362EDC9B363B364EDC7EDBEB365B366C5E9B367B368B369C6C6B36AB36BC9E9D4D2EDC1EDC2EDC3EDC5B36CC0F9B36DB4A1B36EB36FB370B371B9E8B372EDD0B373B374B375B376EDD1B377EDCAB378EDCFB379CEF8B37AB37BCBB6EDCCEDCDB37CB37DB37EB380B381CFF5B382B383B384B385B386B387B388B389B38AB38BB38CB38DEDD2C1F2D3B2EDCBC8B7B38EB38FB390B391B392B393B394B395BCEFB396B397B398B399C5F0B39AB39BB39CB39DB39EB39FB3A0B440B441B442EDD6B443B5EFB444B445C2B5B0ADCBE9B446B447B1AEB448EDD4B449B44AB44BCDEBB5E2B44CEDD5EDD3EDD7B44DB44EB5FAB44FEDD8B450EDD9B451EDDCB452B1CCB453B454B455B456B457B458B459B45AC5F6BCEEEDDACCBCB2EAB45BB45CB45DB45EEDDBB45FB460B461B462C4EBB463B464B4C5B465B466B467B0F5B468B469B46AEDDFC0DAB4E8B46BB46CB46DB46EC5CDB46FB470B471EDDDBFC4B472B473B474EDDEB475B476B477B478B479B47AB47BB47CB47DB47EB480B481B482B483C4A5B484B485B486EDE0B487B488B489B48AB48BEDE1B48CEDE3B48DB48EC1D7B48FB490BBC7B491B492B493B494B495B496BDB8B497B498B499EDE2B49AB49BB49CB49DB49EB49FB4A0B540B541B542B543B544B545EDE4B546B547B548B549B54AB54BB54CB54DB54EB54FEDE6B550B551B552B553B554EDE5B555B556B557B558B559B55AB55BB55CB55DB55EB55FB560B561B562B563EDE7B564B565B566B567B568CABEECEAC0F1B569C9E7B56AECEBC6EEB56BB56CB56DB56EECECB56FC6EDECEDB570B571B572B573B574B575B576B577B578ECF0B579B57AD7E6ECF3B57BB57CECF1ECEEECEFD7A3C9F1CBEEECF4B57DECF2B57EB580CFE9B581ECF6C6B1B582B583B584B585BCC0B586ECF5B587B588B589B58AB58BB58CB58DB5BBBBF6B58EECF7B58FB590B591B592B593D9F7BDFBB594B595C2BBECF8B596B597B598B599ECF9B59AB59BB59CB59DB8A3B59EB59FB5A0B640B641B642B643B644B645B646ECFAB647B648B649B64AB64BB64CB64DB64EB64FB650B651B652ECFBB653B654B655B656B657B658B659B65AB65BB65CB65DECFCB65EB65FB660B661B662D3EDD8AEC0EBB663C7DDBACCB664D0E3CBBDB665CDBAB666B667B8D1B668B669B1FCB66AC7EFB66BD6D6B66CB66DB66EBFC6C3EBB66FB670EFF5B671B672C3D8B673B674B675B676B677B678D7E2B679B67AB67BEFF7B3D3B67CC7D8D1EDB67DD6C8B67EEFF8B680EFF6B681BBFDB3C6B682B683B684B685B686B687B688BDD5B689B68AD2C6B68BBBE0B68CB68DCFA1B68EEFFCEFFBB68FB690EFF9B691B692B693B694B3CCB695C9D4CBB0B696B697B698B699B69AEFFEB69BB69CB0DEB69DB69ED6C9B69FB6A0B740EFFDB741B3EDB742B743F6D5B744B745B746B747B748B749B74AB74BB74CB74DB74EB74FB750B751B752CEC8B753B754B755F0A2B756F0A1B757B5BEBCDABBFCB758B8E5B759B75AB75BB75CB75DB75EC4C2B75FB760B761B762B763B764B765B766B767B768F0A3B769B76AB76BB76CB76DCBEBB76EB76FB770B771B772B773B774B775B776B777B778B779B77AB77BB77CB77DB77EB780B781B782B783B784B785B786F0A6B787B788B789D1A8B78ABEBFC7EEF1B6F1B7BFD5B78BB78CB78DB78EB4A9F1B8CDBBB78FC7D4D5ADB790F1B9B791F1BAB792B793B794B795C7CFB796B797B798D2A4D6CFB799B79AF1BBBDD1B4B0BEBDB79BB79CB79DB4DCCED1B79EBFDFF1BDB79FB7A0B840B841BFFAF1BCB842F1BFB843B844B845F1BEF1C0B846B847B848B849B84AF1C1B84BB84CB84DB84EB84FB850B851B852B853B854B855C1FEB856B857B858B859B85AB85BB85CB85DB85EB85FB860C1A2B861B862B863B864B865B866B867B868B869B86ACAFAB86BB86CD5BEB86DB86EB86FB870BEBABEB9D5C2B871B872BFA2B873CDAFF1B5B874B875B876B877B878B879BDDFB87AB6CBB87BB87CB87DB87EB880B881B882B883B884D6F1F3C3B885B886F3C4B887B8CDB888B889B88AF3C6F3C7B88BB0CAB88CF3C5B88DF3C9CBF1B88EB88FB890F3CBB891D0A6B892B893B1CAF3C8B894B895B896F3CFB897B5D1B898B899F3D7B89AF3D2B89BB89CB89DF3D4F3D3B7FBB89EB1BFB89FF3CEF3CAB5DAB8A0F3D0B940B941F3D1B942F3D5B943B944B945B946F3CDB947BCE3B948C1FDB949F3D6B94AB94BB94CB94DB94EB94FF3DAB950F3CCB951B5C8B952BDEEF3DCB953B954B7A4BFF0D6FECDB2B955B4F0B956B2DFB957F3D8B958F3D9C9B8B959F3DDB95AB95BF3DEB95CF3E1B95DB95EB95FB960B961B962B963B964B965B966B967F3DFB968B969F3E3F3E2B96AB96BF3DBB96CBFEAB96DB3EFB96EF3E0B96FB970C7A9B971BCF2B972B973B974B975F3EBB976B977B978B979B97AB97BB97CB9BFB97DB97EF3E4B980B981B982B2ADBBFEB983CBE3B984B985B986B987F3EDF3E9B988B989B98AB9DCF3EEB98BB98CB98DF3E5F3E6F3EAC2E1F3ECF3EFF3E8BCFDB98EB98FB990CFE4B991B992F3F0B993B994B995F3E7B996B997B998B999B99AB99BB99CB99DF3F2B99EB99FB9A0BA40D7ADC6AABA41BA42BA43BA44F3F3BA45BA46BA47BA48F3F1BA49C2A8BA4ABA4BBA4CBA4DBA4EB8DDF3F5BA4FBA50F3F4BA51BA52BA53B4DBBA54BA55BA56F3F6F3F7BA57BA58BA59F3F8BA5ABA5BBA5CC0BABA5DBA5EC0E9BA5FBA60BA61BA62BA63C5F1BA64BA65BA66BA67F3FBBA68F3FABA69BA6ABA6BBA6CBA6DBA6EBA6FBA70B4D8BA71BA72BA73F3FEF3F9BA74BA75F3FCBA76BA77BA78BA79BA7ABA7BF3FDBA7CBA7DBA7EBA80BA81BA82BA83BA84F4A1BA85BA86BA87BA88BA89BA8AF4A3BBC9BA8BBA8CF4A2BA8DBA8EBA8FBA90BA91BA92BA93BA94BA95BA96BA97BA98BA99F4A4BA9ABA9BBA9CBA9DBA9EBA9FB2BEF4A6F4A5BAA0BB40BB41BB42BB43BB44BB45BB46BB47BB48BB49BCAEBB4ABB4BBB4CBB4DBB4EBB4FBB50BB51BB52BB53BB54BB55BB56BB57BB58BB59BB5ABB5BBB5CBB5DBB5EBB5FBB60BB61BB62BB63BB64BB65BB66BB67BB68BB69BB6ABB6BBB6CBB6DBB6EC3D7D9E1BB6FBB70BB71BB72BB73BB74C0E0F4CCD7D1BB75BB76BB77BB78BB79BB7ABB7BBB7CBB7DBB7EBB80B7DBBB81BB82BB83BB84BB85BB86BB87F4CEC1A3BB88BB89C6C9BB8AB4D6D5B3BB8BBB8CBB8DF4D0F4CFF4D1CBDABB8EBB8FF4D2BB90D4C1D6E0BB91BB92BB93BB94B7E0BB95BB96BB97C1B8BB98BB99C1BBF4D3BEACBB9ABB9BBB9CBB9DBB9EB4E2BB9FBBA0F4D4F4D5BEABBC40BC41F4D6BC42BC43BC44F4DBBC45F4D7F4DABC46BAFDBC47F4D8F4D9BC48BC49BC4ABC4BBC4CBC4DBC4EB8E2CCC7F4DCBC4FB2DABC50BC51C3D3BC52BC53D4E3BFB7BC54BC55BC56BC57BC58BC59BC5AF4DDBC5BBC5CBC5DBC5EBC5FBC60C5B4BC61BC62BC63BC64BC65BC66BC67BC68F4E9BC69BC6ACFB5BC6BBC6CBC6DBC6EBC6FBC70BC71BC72BC73BC74BC75BC76BC77BC78CEC9BC79BC7ABC7BBC7CBC7DBC7EBC80BC81BC82BC83BC84BC85BC86BC87BC88BC89BC8ABC8BBC8CBC8DBC8ECBD8BC8FCBF7BC90BC91BC92BC93BDF4BC94BC95BC96D7CFBC97BC98BC99C0DBBC9ABC9BBC9CBC9DBC9EBC9FBCA0BD40BD41BD42BD43BD44BD45BD46BD47BD48BD49BD4ABD4BBD4CBD4DBD4EBD4FBD50BD51BD52BD53BD54BD55BD56BD57BD58BD59BD5ABD5BBD5CBD5DBD5EBD5FBD60BD61BD62BD63BD64BD65BD66BD67BD68BD69BD6ABD6BBD6CBD6DBD6EBD6FBD70BD71BD72BD73BD74BD75BD76D0F5BD77BD78BD79BD7ABD7BBD7CBD7DBD7EF4EABD80BD81BD82BD83BD84BD85BD86BD87BD88BD89BD8ABD8BBD8CBD8DBD8EBD8FBD90BD91BD92BD93BD94BD95BD96BD97BD98BD99BD9ABD9BBD9CBD9DBD9EBD9FBDA0BE40BE41BE42BE43BE44BE45BE46BE47BE48BE49BE4ABE4BBE4CF4EBBE4DBE4EBE4FBE50BE51BE52BE53F4ECBE54BE55BE56BE57BE58BE59BE5ABE5BBE5CBE5DBE5EBE5FBE60BE61BE62BE63BE64BE65BE66BE67BE68BE69BE6ABE6BBE6CBE6DBE6EBE6FBE70BE71BE72BE73BE74BE75BE76BE77BE78BE79BE7ABE7BBE7CBE7DBE7EBE80BE81BE82BE83BE84BE85BE86BE87BE88BE89BE8ABE8BBE8CBE8DBE8EBE8FBE90BE91BE92BE93BE94BE95BE96BE97BE98BE99BE9ABE9BBE9CBE9DBE9EBE9FBEA0BF40BF41BF42BF43BF44BF45BF46BF47BF48BF49BF4ABF4BBF4CBF4DBF4EBF4FBF50BF51BF52BF53BF54BF55BF56BF57BF58BF59BF5ABF5BBF5CBF5DBF5EBF5FBF60BF61BF62BF63BF64BF65BF66BF67BF68BF69BF6ABF6BBF6CBF6DBF6EBF6FBF70BF71BF72BF73BF74BF75BF76BF77BF78BF79BF7ABF7BBF7CBF7DBF7EBF80F7E3BF81BF82BF83BF84BF85B7B1BF86BF87BF88BF89BF8AF4EDBF8BBF8CBF8DBF8EBF8FBF90BF91BF92BF93BF94BF95BF96BF97BF98BF99BF9ABF9BBF9CBF9DBF9EBF9FBFA0C040C041C042C043C044C045C046C047C048C049C04AC04BC04CC04DC04EC04FC050C051C052C053C054C055C056C057C058C059C05AC05BC05CC05DC05EC05FC060C061C062C063D7EBC064C065C066C067C068C069C06AC06BC06CC06DC06EC06FC070C071C072C073C074C075C076C077C078C079C07AC07BF4EEC07CC07DC07EE6F9BEC0E6FABAECE6FBCFCBE6FCD4BCBCB6E6FDE6FEBCCDC8D2CEB3E7A1C080B4BFE7A2C9B4B8D9C4C9C081D7DDC2DAB7D7D6BDCEC6B7C4C082C083C5A6E7A3CFDFE7A4E7A5E7A6C1B7D7E9C9F0CFB8D6AFD6D5E7A7B0EDE7A8E7A9C9DCD2EFBEADE7AAB0F3C8DEBDE1E7ABC8C6C084E7ACBBE6B8F8D1A4E7ADC2E7BEF8BDCACDB3E7AEE7AFBEEED0E5C085CBE7CCD0BCCCE7B0BCA8D0F7E7B1C086D0F8E7B2E7B3B4C2E7B4E7B5C9FECEACC3E0E7B7B1C1B3F1C087E7B8E7B9D7DBD5C0E7BAC2CCD7BAE7BBE7BCE7BDBCEAC3E5C0C2E7BEE7BFBCA9C088E7C0E7C1E7B6B6D0E7C2C089E7C3E7C4BBBAB5DEC2C6B1E0E7C5D4B5E7C6B8BFE7C8E7C7B7ECC08AE7C9B2F8E7CAE7CBE7CCE7CDE7CEE7CFE7D0D3A7CBF5E7D1E7D2E7D3E7D4C9C9E7D5E7D6E7D7E7D8E7D9BDC9E7DAF3BEC08BB8D7C08CC8B1C08DC08EC08FC090C091C092C093F3BFC094F3C0F3C1C095C096C097C098C099C09AC09BC09CC09DC09EB9DECDF8C09FC0A0D8E8BAB1C140C2DEEEB7C141B7A3C142C143C144C145EEB9C146EEB8B0D5C147C148C149C14AC14BEEBBD5D6D7EFC14CC14DC14ED6C3C14FC150EEBDCAF0C151EEBCC152C153C154C155EEBEC156C157C158C159EEC0C15AC15BEEBFC15CC15DC15EC15FC160C161C162C163D1F2C164C7BCC165C3C0C166C167C168C169C16AB8E1C16BC16CC16DC16EC16FC1E7C170C171F4C6D0DFF4C7C172CFDBC173C174C8BAC175C176F4C8C177C178C179C17AC17BC17CC17DF4C9F4CAC17EF4CBC180C181C182C183C184D9FAB8FEC185C186E5F1D3F0C187F4E0C188CECCC189C18AC18BB3E1C18CC18DC18EC18FF1B4C190D2EEC191F4E1C192C193C194C195C196CFE8F4E2C197C198C7CCC199C19AC19BC19CC19DC19EB5D4B4E4F4E4C19FC1A0C240F4E3F4E5C241C242F4E6C243C244C245C246F4E7C247BAB2B0BFC248F4E8C249C24AC24BC24CC24DC24EC24FB7ADD2EDC250C251C252D2ABC0CFC253BFBCEBA3D5DFEAC8C254C255C256C257F1F3B6F8CBA3C258C259C4CDC25AF1E7C25BF1E8B8FBF1E9BAC4D4C5B0D2C25CC25DF1EAC25EC25FC260F1EBC261F1ECC262C263F1EDF1EEF1EFF1F1F1F0C5D5C264C265C266C267C268C269F1F2C26AB6FAC26BF1F4D2AEDEC7CBCAC26CC26DB3DCC26EB5A2C26FB9A2C270C271C4F4F1F5C272C273F1F6C274C275C276C1C4C1FBD6B0F1F7C277C278C279C27AF1F8C27BC1AAC27CC27DC27EC6B8C280BEDBC281C282C283C284C285C286C287C288C289C28AC28BC28CC28DC28EF1F9B4CFC28FC290C291C292C293C294F1FAC295C296C297C298C299C29AC29BC29CC29DC29EC29FC2A0C340EDB2EDB1C341C342CBE0D2DEC343CBC1D5D8C344C8E2C345C0DFBCA1C346C347C348C349C34AC34BEBC1C34CC34DD0A4C34ED6E2C34FB6C7B8D8EBC0B8CEC350EBBFB3A6B9C9D6ABC351B7F4B7CAC352C353C354BCE7B7BEEBC6C355EBC7B0B9BFCFC356EBC5D3FDC357EBC8C358C359EBC9C35AC35BB7CEC35CEBC2EBC4C9F6D6D7D5CDD0B2EBCFCEB8EBD0C35DB5A8C35EC35FC360C361C362B1B3EBD2CCA5C363C364C365C366C367C368C369C5D6EBD3C36AEBD1C5DFEBCECAA4EBD5B0FBC36BC36CBAFAC36DC36ED8B7F1E3C36FEBCAEBCBEBCCEBCDEBD6E6C0EBD9C370BFE8D2C8EBD7EBDCB8ECEBD8C371BDBAC372D0D8C373B0B7C374EBDDC4DCC375C376C377C378D6ACC379C37AC37BB4E0C37CC37DC2F6BCB9C37EC380EBDAEBDBD4E0C6EAC4D4EBDFC5A7D9F5C381B2B1C382EBE4C383BDC5C384C385C386EBE2C387C388C389C38AC38BC38CC38DC38EC38FC390C391C392C393EBE3C394C395B8ACC396CDD1EBE5C397C398C399EBE1C39AC1B3C39BC39CC39DC39EC39FC6A2C3A0C440C441C442C443C444C445CCF3C446EBE6C447C0B0D2B8EBE7C448C449C44AB8AFB8ADC44BEBE8C7BBCDF3C44CC44DC44EEBEAEBEBC44FC450C451C452C453EBEDC454C455C456C457D0C8C458EBF2C459EBEEC45AC45BC45CEBF1C8F9C45DD1FCEBECC45EC45FEBE9C460C461C462C463B8B9CFD9C4E5EBEFEBF0CCDACDC8B0F2C464EBF6C465C466C467C468C469EBF5C46AB2B2C46BC46CC46DC46EB8E0C46FEBF7C470C471C472C473C474C475B1ECC476C477CCC5C4A4CFA5C478C479C47AC47BC47CEBF9C47DC47EECA2C480C5F2C481EBFAC482C483C484C485C486C487C488C489C9C5C48AC48BC48CC48DC48EC48FE2DFEBFEC490C491C492C493CDCEECA1B1DBD3B7C494C495D2DCC496C497C498EBFDC499EBFBC49AC49BC49CC49DC49EC49FC4A0C540C541C542C543C544C545C546C547C548C549C54AC54BC54CC54DC54EB3BCC54FC550C551EAB0C552C553D7D4C554F4ABB3F4C555C556C557C558C559D6C1D6C2C55AC55BC55CC55DC55EC55FD5E9BECAC560F4A7C561D2A8F4A8F4A9C562F4AABECBD3DFC563C564C565C566C567C9E0C9E1C568C569F3C2C56ACAE6C56BCCF2C56CC56DC56EC56FC570C571E2B6CBB4C572CEE8D6DBC573F4ADF4AEF4AFC574C575C576C577F4B2C578BABDF4B3B0E3F4B0C579F4B1BDA2B2D5C57AF4B6F4B7B6E6B2B0CFCFF4B4B4ACC57BF4B5C57CC57DF4B8C57EC580C581C582C583F4B9C584C585CDA7C586F4BAC587F4BBC588C589C58AF4BCC58BC58CC58DC58EC58FC590C591C592CBD2C593F4BDC594C595C596C597F4BEC598C599C59AC59BC59CC59DC59EC59FF4BFC5A0C640C641C642C643F4DEC1BCBCE8C644C9ABD1DEE5F5C645C646C647C648DCB3D2D5C649C64ADCB4B0ACDCB5C64BC64CBDDAC64DDCB9C64EC64FC650D8C2C651DCB7D3F3C652C9D6DCBADCB6C653DCBBC3A2C654C655C656C657DCBCDCC5DCBDC658C659CEDFD6A5C65ADCCFC65BDCCDC65CC65DDCD2BDE6C2ABC65EDCB8DCCBDCCEDCBEB7D2B0C5DCC7D0BEDCC1BBA8C65FB7BCDCCCC660C661DCC6DCBFC7DBC662C663C664D1BFDCC0C665C666DCCAC667C668DCD0C669C66ACEADDCC2C66BDCC3DCC8DCC9B2D4DCD1CBD5C66CD4B7DCDBDCDFCCA6DCE6C66DC3E7DCDCC66EC66FBFC1DCD9C670B0FAB9B6DCE5DCD3C671DCC4DCD6C8F4BFE0C672C673C674C675C9BBC676C677C678B1BDC679D3A2C67AC67BDCDAC67CC67DDCD5C67EC6BBC680DCDEC681C682C683C684C685D7C2C3AFB7B6C7D1C3A9DCE2DCD8DCEBDCD4C686C687DCDDC688BEA5DCD7C689DCE0C68AC68BDCE3DCE4C68CDCF8C68DC68EDCE1DDA2DCE7C68FC690C691C692C693C694C695C696C697C698BCEBB4C4C699C69AC3A3B2E7DCFAC69BDCF2C69CDCEFC69DDCFCDCEED2F0B2E8C69EC8D7C8E3DCFBC69FDCEDC6A0C740C741DCF7C742C743DCF5C744C745BEA3DCF4C746B2DDC747C748C749C74AC74BDCF3BCF6DCE8BBC4C74CC0F3C74DC74EC74FC750C751BCD4DCE9DCEAC752DCF1DCF6DCF9B5B4C753C8D9BBE7DCFEDCFDD3ABDDA1DDA3DDA5D2F1DDA4DDA6DDA7D2A9C754C755C756C757C758C759C75ABAC9DDA9C75BC75CDDB6DDB1DDB4C75DC75EC75FC760C761C762C763DDB0C6CEC764C765C0F2C766C767C768C769C9AFC76AC76BC76CDCECDDAEC76DC76EC76FC770DDB7C771C772DCF0DDAFC773DDB8C774DDACC775C776C777C778C779C77AC77BDDB9DDB3DDADC4AAC77CC77DC77EC780DDA8C0B3C1ABDDAADDABC781DDB2BBF1DDB5D3A8DDBAC782DDBBC3A7C783C784DDD2DDBCC785C786C787DDD1C788B9BDC789C78ABED5C78BBEFAC78CC78DBACAC78EC78FC790C791DDCAC792DDC5C793DDBFC794C795C796B2CBDDC3C797DDCBB2A4DDD5C798C799C79ADDBEC79BC79CC79DC6D0DDD0C79EC79FC7A0C840C841DDD4C1E2B7C6C842C843C844C845C846DDCEDDCFC847C848C849DDC4C84AC84BC84CDDBDC84DDDCDCCD1C84EDDC9C84FC850C851C852DDC2C3C8C6BCCEAEDDCCC853DDC8C854C855C856C857C858C859DDC1C85AC85BC85CDDC6C2DCC85DC85EC85FC860C861C862D3A9D3AADDD3CFF4C8F8C863C864C865C866C867C868C869C86ADDE6C86BC86CC86DC86EC86FC870DDC7C871C872C873DDE0C2E4C874C875C876C877C878C879C87AC87BDDE1C87CC87DC87EC880C881C882C883C884C885C886DDD7C887C888C889C88AC88BD6F8C88CDDD9DDD8B8F0DDD6C88DC88EC88FC890C6CFC891B6ADC892C893C894C895C896DDE2C897BAF9D4E1DDE7C898C899C89AB4D0C89BDDDAC89CBFFBDDE3C89DDDDFC89EDDDDC89FC8A0C940C941C942C943C944B5D9C945C946C947C948DDDBDDDCDDDEC949BDAFDDE4C94ADDE5C94BC94CC94DC94EC94FC950C951C952DDF5C953C3C9C954C955CBE2C956C957C958C959DDF2C95AC95BC95CC95DC95EC95FC960C961C962C963C964C965C966D8E1C967C968C6D1C969DDF4C96AC96BC96CD5F4DDF3DDF0C96DC96EDDECC96FDDEFC970DDE8C971C972D0EEC973C974C975C976C8D8DDEEC977C978DDE9C979C97ADDEACBF2C97BDDEDC97CC97DB1CDC97EC980C981C982C983C984C0B6C985BCBBDDF1C986C987DDF7C988DDF6DDEBC989C98AC98BC98CC98DC5EEC98EC98FC990DDFBC991C992C993C994C995C996C997C998C999C99AC99BDEA4C99CC99DDEA3C99EC99FC9A0CA40CA41CA42CA43CA44CA45CA46CA47CA48DDF8CA49CA4ACA4BCA4CC3EFCA4DC2FBCA4ECA4FCA50D5E1CA51CA52CEB5CA53CA54CA55CA56DDFDCA57B2CCCA58CA59CA5ACA5BCA5CCA5DCA5ECA5FCA60C4E8CADFCA61CA62CA63CA64CA65CA66CA67CA68CA69CA6AC7BEDDFADDFCDDFEDEA2B0AAB1CECA6BCA6CCA6DCA6ECA6FDEACCA70CA71CA72CA73DEA6BDB6C8EFCA74CA75CA76CA77CA78CA79CA7ACA7BCA7CCA7DCA7EDEA1CA80CA81DEA5CA82CA83CA84CA85DEA9CA86CA87CA88CA89CA8ADEA8CA8BCA8CCA8DDEA7CA8ECA8FCA90CA91CA92CA93CA94CA95CA96DEADCA97D4CCCA98CA99CA9ACA9BDEB3DEAADEAECA9CCA9DC0D9CA9ECA9FCAA0CB40CB41B1A1DEB6CB42DEB1CB43CB44CB45CB46CB47CB48CB49DEB2CB4ACB4BCB4CCB4DCB4ECB4FCB50CB51CB52CB53CB54D1A6DEB5CB55CB56CB57CB58CB59CB5ACB5BDEAFCB5CCB5DCB5EDEB0CB5FD0BDCB60CB61CB62DEB4CAEDDEB9CB63CB64CB65CB66CB67CB68DEB8CB69DEB7CB6ACB6BCB6CCB6DCB6ECB6FCB70DEBBCB71CB72CB73CB74CB75CB76CB77BDE5CB78CB79CB7ACB7BCB7CB2D8C3EACB7DCB7EDEBACB80C5BACB81CB82CB83CB84CB85CB86DEBCCB87CB88CB89CB8ACB8BCB8CCB8DCCD9CB8ECB8FCB90CB91B7AACB92CB93CB94CB95CB96CB97CB98CB99CB9ACB9BCB9CCB9DCB9ECB9FCBA0CC40CC41D4E5CC42CC43CC44DEBDCC45CC46CC47CC48CC49DEBFCC4ACC4BCC4CCC4DCC4ECC4FCC50CC51CC52CC53CC54C4A2CC55CC56CC57CC58DEC1CC59CC5ACC5BCC5CCC5DCC5ECC5FCC60CC61CC62CC63CC64CC65CC66CC67CC68DEBECC69DEC0CC6ACC6BCC6CCC6DCC6ECC6FCC70CC71CC72CC73CC74CC75CC76CC77D5BACC78CC79CC7ADEC2CC7BCC7CCC7DCC7ECC80CC81CC82CC83CC84CC85CC86CC87CC88CC89CC8ACC8BF2AEBBA2C2B2C5B0C2C7CC8CCC8DF2AFCC8ECC8FCC90CC91CC92D0E9CC93CC94CC95D3DDCC96CC97CC98EBBDCC99CC9ACC9BCC9CCC9DCC9ECC9FCCA0B3E6F2B0CD40F2B1CD41CD42CAADCD43CD44CD45CD46CD47CD48CD49BAE7F2B3F2B5F2B4CBE4CFBAF2B2CAB4D2CFC2ECCD4ACD4BCD4CCD4DCD4ECD4FCD50CEC3F2B8B0F6F2B7CD51CD52CD53CD54CD55F2BECD56B2CFCD57CD58CD59CD5ACD5BCD5CD1C1F2BACD5DCD5ECD5FCD60CD61F2BCD4E9CD62CD63F2BBF2B6F2BFF2BDCD64F2B9CD65CD66F2C7F2C4F2C6CD67CD68F2CAF2C2F2C0CD69CD6ACD6BF2C5CD6CCD6DCD6ECD6FCD70D6FBCD71CD72CD73F2C1CD74C7F9C9DFCD75F2C8B9C6B5B0CD76CD77F2C3F2C9F2D0F2D6CD78CD79BBD7CD7ACD7BCD7CF2D5CDDCCD7DD6EBCD7ECD80F2D2F2D4CD81CD82CD83CD84B8F2CD85CD86CD87CD88F2CBCD89CD8ACD8BF2CEC2F9CD8CD5DDF2CCF2CDF2CFF2D3CD8DCD8ECD8FF2D9D3BCCD90CD91CD92CD93B6EACD94CAF1CD95B7E4F2D7CD96CD97CD98F2D8F2DAF2DDF2DBCD99CD9AF2DCCD9BCD9CCD9DCD9ED1D1F2D1CD9FCDC9CDA0CECFD6A9CE40F2E3CE41C3DBCE42F2E0CE43CE44C0AFF2ECF2DECE45F2E1CE46CE47CE48F2E8CE49CE4ACE4BCE4CF2E2CE4DCE4EF2E7CE4FCE50F2E6CE51CE52F2E9CE53CE54CE55F2DFCE56CE57F2E4F2EACE58CE59CE5ACE5BCE5CCE5DCE5ED3ACF2E5B2F5CE5FCE60F2F2CE61D0ABCE62CE63CE64CE65F2F5CE66CE67CE68BBC8CE69F2F9CE6ACE6BCE6CCE6DCE6ECE6FF2F0CE70CE71F2F6F2F8F2FACE72CE73CE74CE75CE76CE77CE78CE79F2F3CE7AF2F1CE7BCE7CCE7DBAFBCE7EB5FBCE80CE81CE82CE83F2EFF2F7F2EDF2EECE84CE85CE86F2EBF3A6CE87F3A3CE88CE89F3A2CE8ACE8BF2F4CE8CC8DACE8DCE8ECE8FCE90CE91F2FBCE92CE93CE94F3A5CE95CE96CE97CE98CE99CE9ACE9BC3F8CE9CCE9DCE9ECE9FCEA0CF40CF41CF42F2FDCF43CF44F3A7F3A9F3A4CF45F2FCCF46CF47CF48F3ABCF49F3AACF4ACF4BCF4CCF4DC2DDCF4ECF4FF3AECF50CF51F3B0CF52CF53CF54CF55CF56F3A1CF57CF58CF59F3B1F3ACCF5ACF5BCF5CCF5DCF5EF3AFF2FEF3ADCF5FCF60CF61CF62CF63CF64CF65F3B2CF66CF67CF68CF69F3B4CF6ACF6BCF6CCF6DF3A8CF6ECF6FCF70CF71F3B3CF72CF73CF74F3B5CF75CF76CF77CF78CF79CF7ACF7BCF7CCF7DCF7ED0B7CF80CF81CF82CF83F3B8CF84CF85CF86CF87D9F9CF88CF89CF8ACF8BCF8CCF8DF3B9CF8ECF8FCF90CF91CF92CF93CF94CF95F3B7CF96C8E4F3B6CF97CF98CF99CF9AF3BACF9BCF9CCF9DCF9ECF9FF3BBB4C0CFA0D040D041D042D043D044D045D046D047D048D049D04AD04BD04CD04DEEC3D04ED04FD050D051D052D053F3BCD054D055F3BDD056D057D058D1AAD059D05AD05BF4ACD0C6D05CD05DD05ED05FD060D061D0D0D1DCD062D063D064D065D066D067CFCED068D069BDD6D06AD1C3D06BD06CD06DD06ED06FD070D071BAE2E1E9D2C2F1C2B2B9D072D073B1EDF1C3D074C9C0B3C4D075D9F2D076CBA5D077F1C4D078D079D07AD07BD6D4D07CD07DD07ED080D081F1C5F4C0F1C6D082D4ACF1C7D083B0C0F4C1D084D085F4C2D086D087B4FCD088C5DBD089D08AD08BD08CCCBBD08DD08ED08FD0E4D090D091D092D093D094CDE0D095D096D097D098D099F1C8D09AD9F3D09BD09CD09DD09ED09FD0A0B1BBD140CFAED141D142D143B8A4D144D145D146D147D148F1CAD149D14AD14BD14CF1CBD14DD14ED14FD150B2C3C1D1D151D152D7B0F1C9D153D154F1CCD155D156D157D158F1CED159D15AD15BD9F6D15CD2E1D4A3D15DD15EF4C3C8B9D15FD160D161D162D163F4C4D164D165F1CDF1CFBFE3F1D0D166D167F1D4D168D169D16AD16BD16CD16DD16EF1D6F1D1D16FC9D1C5E1D170D171D172C2E3B9FCD173D174F1D3D175F1D5D176D177D178B9D3D179D17AD17BD17CD17DD17ED180F1DBD181D182D183D184D185BAD6D186B0FDF1D9D187D188D189D18AD18BF1D8F1D2F1DAD18CD18DD18ED18FD190F1D7D191D192D193C8ECD194D195D196D197CDCAF1DDD198D199D19AD19BE5BDD19CD19DD19EF1DCD19FF1DED1A0D240D241D242D243D244D245D246D247D248F1DFD249D24ACFE5D24BD24CD24DD24ED24FD250D251D252D253D254D255D256D257D258D259D25AD25BD25CD25DD25ED25FD260D261D262D263F4C5BDF3D264D265D266D267D268D269F1E0D26AD26BD26CD26DD26ED26FD270D271D272D273D274D275D276D277D278D279D27AD27BD27CD27DF1E1D27ED280D281CEF7D282D2AAD283F1FBD284D285B8B2D286D287D288D289D28AD28BD28CD28DD28ED28FD290D291D292D293D294D295D296D297D298D299D29AD29BD29CD29DD29ED29FD2A0D340D341D342D343D344D345D346D347D348D349D34AD34BD34CD34DD34ED34FD350D351D352D353D354D355D356D357D358D359D35AD35BD35CD35DD35EBCFBB9DBD35FB9E6C3D9CAD3EAE8C0C0BEF5EAE9EAEAEAEBD360EAECEAEDEAEEEAEFBDC7D361D362D363F5FBD364D365D366F5FDD367F5FED368F5FCD369D36AD36BD36CBDE2D36DF6A1B4A5D36ED36FD370D371F6A2D372D373D374F6A3D375D376D377ECB2D378D379D37AD37BD37CD37DD37ED380D381D382D383D384D1D4D385D386D387D388D389D38AD9EAD38BD38CD38DD38ED38FD390D391D392D393D394D395D396D397D398D399D39AD39BD39CD39DD39ED39FD3A0D440D441D442D443D444D445D446D447D448D449D44AD44BD44CD44DD44ED44FD450D451D452D453D454D455D456D457D458D459D45AD45BD45CD45DD45ED45FF6A4D460D461D462D463D464D465D466D467D468EEBAD469D46AD46BD46CD46DD46ED46FD470D471D472D473D474D475D476D477D478D479D47AD47BD47CD47DD47ED480D481D482D483D484D485D486D487D488D489D48AD48BD48CD48DD48ED48FD490D491D492D493D494D495D496D497D498D499D5B2D49AD49BD49CD49DD49ED49FD4A0D540D541D542D543D544D545D546D547D3FECCDCD548D549D54AD54BD54CD54DD54ED54FCAC4D550D551D552D553D554D555D556D557D558D559D55AD55BD55CD55DD55ED55FD560D561D562D563D564D565D566D567D568D569D56AD56BD56CD56DD56ED56FD570D571D572D573D574D575D576D577D578D579D57AD57BD57CD57DD57ED580D581D582D583D584D585D586D587D588D589D58AD58BD58CD58DD58ED58FD590D591D592D593D594D595D596D597D598D599D59AD59BD59CD59DD59ED59FD5A0D640D641D642D643D644D645D646D647D648D649D64AD64BD64CD64DD64ED64FD650D651D652D653D654D655D656D657D658D659D65AD65BD65CD65DD65ED65FD660D661D662E5C0D663D664D665D666D667D668D669D66AD66BD66CD66DD66ED66FD670D671D672D673D674D675D676D677D678D679D67AD67BD67CD67DD67ED680D681F6A5D682D683D684D685D686D687D688D689D68AD68BD68CD68DD68ED68FD690D691D692D693D694D695D696D697D698D699D69AD69BD69CD69DD69ED69FD6A0D740D741D742D743D744D745D746D747D748D749D74AD74BD74CD74DD74ED74FD750D751D752D753D754D755D756D757D758D759D75AD75BD75CD75DD75ED75FBEAFD760D761D762D763D764C6A9D765D766D767D768D769D76AD76BD76CD76DD76ED76FD770D771D772D773D774D775D776D777D778D779D77AD77BD77CD77DD77ED780D781D782D783D784D785D786D787D788D789D78AD78BD78CD78DD78ED78FD790D791D792D793D794D795D796D797D798DAA5BCC6B6A9B8BCC8CFBCA5DAA6DAA7CCD6C8C3DAA8C6FDD799D1B5D2E9D1B6BCC7D79ABDB2BBE4DAA9DAAAD1C8DAABD0EDB6EFC2DBD79BCBCFB7EDC9E8B7C3BEF7D6A4DAACDAADC6C0D7E7CAB6D79CD5A9CBDFD5EFDAAED6DFB4CADAB0DAAFD79DD2EBDAB1DAB2DAB3CAD4DAB4CAABDAB5DAB6B3CFD6EFDAB7BBB0B5AEDAB8DAB9B9EED1AFD2E8DABAB8C3CFEAB2EFDABBDABCD79EBDEBCEDCD3EFDABDCEF3DABED3D5BBE5DABFCBB5CBD0DAC0C7EBD6EEDAC1C5B5B6C1DAC2B7CCBFCEDAC3DAC4CBADDAC5B5F7DAC6C1C2D7BBDAC7CCB8D79FD2EAC4B1DAC8B5FDBBD1DAC9D0B3DACADACBCEBDDACCDACDDACEB2F7DAD1DACFD1E8DAD0C3D5DAD2D7A0DAD3DAD4DAD5D0BBD2A5B0F9DAD6C7ABDAD7BDF7C3A1DAD8DAD9C3FDCCB7DADADADBC0BEC6D7DADCDADDC7B4DADEDADFB9C8D840D841D842D843D844D845D846D847D848BBEDD849D84AD84BD84CB6B9F4F8D84DF4F9D84ED84FCDE3D850D851D852D853D854D855D856D857F5B9D858D859D85AD85BEBE0D85CD85DD85ED85FD860D861CFF3BBBFD862D863D864D865D866D867D868BAC0D4A5D869D86AD86BD86CD86DD86ED86FE1D9D870D871D872D873F5F4B1AAB2F2D874D875D876D877D878D879D87AF5F5D87BD87CF5F7D87DD87ED880BAD1F5F6D881C3B2D882D883D884D885D886D887D888F5F9D889D88AD88BF5F8D88CD88DD88ED88FD890D891D892D893D894D895D896D897D898D899D89AD89BD89CD89DD89ED89FD8A0D940D941D942D943D944D945D946D947D948D949D94AD94BD94CD94DD94ED94FD950D951D952D953D954D955D956D957D958D959D95AD95BD95CD95DD95ED95FD960D961D962D963D964D965D966D967D968D969D96AD96BD96CD96DD96ED96FD970D971D972D973D974D975D976D977D978D979D97AD97BD97CD97DD97ED980D981D982D983D984D985D986D987D988D989D98AD98BD98CD98DD98ED98FD990D991D992D993D994D995D996D997D998D999D99AD99BD99CD99DD99ED99FD9A0DA40DA41DA42DA43DA44DA45DA46DA47DA48DA49DA4ADA4BDA4CDA4DDA4EB1B4D5EAB8BADA4FB9B1B2C6D4F0CFCDB0DCD5CBBBF5D6CAB7B7CCB0C6B6B1E1B9BAD6FCB9E1B7A1BCFAEADAEADBCCF9B9F3EADCB4FBC3B3B7D1BAD8EADDD4F4EADEBCD6BBDFEADFC1DEC2B8D4DFD7CAEAE0EAE1EAE4EAE2EAE3C9DEB8B3B6C4EAE5CAEAC9CDB4CDDA50DA51E2D9C5E2EAE6C0B5DA52D7B8EAE7D7ACC8FCD8D3D8CDD4DEDA53D4F9C9C4D3AEB8D3B3E0DA54C9E2F4F6DA55DA56DA57BAD5DA58F4F7DA59DA5AD7DFDA5BDA5CF4F1B8B0D5D4B8CFC6F0DA5DDA5EDA5FDA60DA61DA62DA63DA64DA65B3C3DA66DA67F4F2B3ACDA68DA69DA6ADA6BD4BDC7F7DA6CDA6DDA6EDA6FDA70F4F4DA71DA72F4F3DA73DA74DA75DA76DA77DA78DA79DA7ADA7BDA7CCCCBDA7DDA7EDA80C8A4DA81DA82DA83DA84DA85DA86DA87DA88DA89DA8ADA8BDA8CDA8DF4F5DA8ED7E3C5BFF5C0DA8FDA90F5BBDA91F5C3DA92F5C2DA93D6BAF5C1DA94DA95DA96D4BEF5C4DA97F5CCDA98DA99DA9ADA9BB0CFB5F8DA9CF5C9F5CADA9DC5DCDA9EDA9FDAA0DB40F5C5F5C6DB41DB42F5C7F5CBDB43BEE0F5C8B8FADB44DB45DB46F5D0F5D3DB47DB48DB49BFE7DB4AB9F2F5BCF5CDDB4BDB4CC2B7DB4DDB4EDB4FCCF8DB50BCF9DB51F5CEF5CFF5D1B6E5F5D2DB52F5D5DB53DB54DB55DB56DB57DB58DB59F5BDDB5ADB5BDB5CF5D4D3BBDB5DB3ECDB5EDB5FCCA4DB60DB61DB62DB63F5D6DB64DB65DB66DB67DB68DB69DB6ADB6BF5D7BEE1F5D8DB6CDB6DCCDFF5DBDB6EDB6FDB70DB71DB72B2C8D7D9DB73F5D9DB74F5DAF5DCDB75F5E2DB76DB77DB78F5E0DB79DB7ADB7BF5DFF5DDDB7CDB7DF5E1DB7EDB80F5DEF5E4F5E5DB81CCE3DB82DB83E5BFB5B8F5E3F5E8CCA3DB84DB85DB86DB87DB88F5E6F5E7DB89DB8ADB8BDB8CDB8DDB8EF5BEDB8FDB90DB91DB92DB93DB94DB95DB96DB97DB98DB99DB9AB1C4DB9BDB9CF5BFDB9DDB9EB5C5B2E4DB9FF5ECF5E9DBA0B6D7DC40F5EDDC41F5EADC42DC43DC44DC45DC46F5EBDC47DC48B4DADC49D4EADC4ADC4BDC4CF5EEDC4DB3F9DC4EDC4FDC50DC51DC52DC53DC54F5EFF5F1DC55DC56DC57F5F0DC58DC59DC5ADC5BDC5CDC5DDC5EF5F2DC5FF5F3DC60DC61DC62DC63DC64DC65DC66DC67DC68DC69DC6ADC6BC9EDB9AADC6CDC6DC7FBDC6EDC6FB6E3DC70DC71DC72DC73DC74DC75DC76CCC9DC77DC78DC79DC7ADC7BDC7CDC7DDC7EDC80DC81DC82DC83DC84DC85DC86DC87DC88DC89DC8AEAA6DC8BDC8CDC8DDC8EDC8FDC90DC91DC92DC93DC94DC95DC96DC97DC98DC99DC9ADC9BDC9CDC9DDC9EDC9FDCA0DD40DD41DD42DD43DD44DD45DD46DD47DD48DD49DD4ADD4BDD4CDD4DDD4EDD4FDD50DD51DD52DD53DD54DD55DD56DD57DD58DD59DD5ADD5BDD5CDD5DDD5EDD5FDD60DD61DD62DD63DD64DD65DD66DD67DD68DD69DD6ADD6BDD6CDD6DDD6EDD6FDD70DD71DD72DD73DD74DD75DD76DD77DD78DD79DD7ADD7BDD7CDD7DDD7EDD80DD81DD82DD83DD84DD85DD86DD87DD88DD89DD8ADD8BDD8CDD8DDD8EDD8FDD90DD91DD92DD93DD94DD95DD96DD97DD98DD99DD9ADD9BDD9CDD9DDD9EDD9FDDA0DE40DE41DE42DE43DE44DE45DE46DE47DE48DE49DE4ADE4BDE4CDE4DDE4EDE4FDE50DE51DE52DE53DE54DE55DE56DE57DE58DE59DE5ADE5BDE5CDE5DDE5EDE5FDE60B3B5D4FEB9ECD0F9DE61E9EDD7AAE9EEC2D6C8EDBAE4E9EFE9F0E9F1D6E1E9F2E9F3E9F5E9F4E9F6E9F7C7E1E9F8D4D8E9F9BDCEDE62E9FAE9FBBDCFE9FCB8A8C1BEE9FDB1B2BBD4B9F5E9FEDE63EAA1EAA2EAA3B7F8BCADDE64CAE4E0CED4AFCFBDD5B7EAA4D5DEEAA5D0C1B9BCDE65B4C7B1D9DE66DE67DE68C0B1DE69DE6ADE6BDE6CB1E6B1E7DE6DB1E8DE6EDE6FDE70DE71B3BDC8E8DE72DE73DE74DE75E5C1DE76DE77B1DFDE78DE79DE7AC1C9B4EFDE7BDE7CC7A8D3D8DE7DC6F9D1B8DE7EB9FDC2F5DE80DE81DE82DE83DE84D3ADDE85D4CBBDFCDE86E5C2B7B5E5C3DE87DE88BBB9D5E2DE89BDF8D4B6CEA5C1ACB3D9DE8ADE8BCCF6DE8CE5C6E5C4E5C8DE8DE5CAE5C7B5CFC6C8DE8EB5FCE5C5DE8FCAF6DE90DE91E5C9DE92DE93DE94C3D4B1C5BCA3DE95DE96DE97D7B7DE98DE99CDCBCBCDCACACCD3E5CCE5CBC4E6DE9ADE9BD1A1D1B7E5CDDE9CE5D0DE9DCDB8D6F0E5CFB5DDDE9ECDBEDE9FE5D1B6BADEA0DF40CDA8B9E4DF41CAC5B3D1CBD9D4ECE5D2B7EADF42DF43DF44E5CEDF45DF46DF47DF48DF49DF4AE5D5B4FEE5D6DF4BDF4CDF4DDF4EDF4FE5D3E5D4DF50D2DDDF51DF52C2DFB1C6DF53D3E2DF54DF55B6DDCBECDF56E5D7DF57DF58D3F6DF59DF5ADF5BDF5CDF5DB1E9DF5EB6F4E5DAE5D8E5D9B5C0DF5FDF60DF61D2C5E5DCDF62DF63E5DEDF64DF65DF66DF67DF68DF69E5DDC7B2DF6AD2A3DF6BDF6CE5DBDF6DDF6EDF6FDF70D4E2D5DADF71DF72DF73DF74DF75E5E0D7F1DF76DF77DF78DF79DF7ADF7BDF7CE5E1DF7DB1DCD1FBDF7EE5E2E5E4DF80DF81DF82DF83E5E3DF84DF85E5E5DF86DF87DF88DF89DF8AD2D8DF8BB5CBDF8CE7DFDF8DDAF5DF8EDAF8DF8FDAF6DF90DAF7DF91DF92DF93DAFAD0CFC4C7DF94DF95B0EEDF96DF97DF98D0B0DF99DAF9DF9AD3CABAAADBA2C7F1DF9BDAFCDAFBC9DBDAFDDF9CDBA1D7DEDAFEC1DADF9DDF9EDBA5DF9FDFA0D3F4E040E041DBA7DBA4E042DBA8E043E044BDBCE045E046E047C0C9DBA3DBA6D6A3E048DBA9E049E04AE04BDBADE04CE04DE04EDBAEDBACBAC2E04FE050E051BFA4DBABE052E053E054DBAAD4C7B2BFE055E056DBAFE057B9F9E058DBB0E059E05AE05BE05CB3BBE05DE05EE05FB5A6E060E061E062E063B6BCDBB1E064E065E066B6F5E067DBB2E068E069E06AE06BE06CE06DE06EE06FE070E071E072E073E074E075E076E077E078E079E07AE07BB1C9E07CE07DE07EE080DBB4E081E082E083DBB3DBB5E084E085E086E087E088E089E08AE08BE08CE08DE08EDBB7E08FDBB6E090E091E092E093E094E095E096DBB8E097E098E099E09AE09BE09CE09DE09EE09FDBB9E0A0E140DBBAE141E142D3CFF4FAC7F5D7C3C5E4F4FCF4FDF4FBE143BEC6E144E145E146E147D0EFE148E149B7D3E14AE14BD4CDCCAAE14CE14DF5A2F5A1BAA8F4FECBD6E14EE14FE150F5A4C0D2E151B3EAE152CDAAF5A5F5A3BDB4F5A8E153F5A9BDCDC3B8BFE1CBE1F5AAE154E155E156F5A6F5A7C4F0E157E158E159E15AE15BF5ACE15CB4BCE15DD7EDE15EB4D7F5ABF5AEE15FE160F5ADF5AFD0D1E161E162E163E164E165E166E167C3D1C8A9E168E169E16AE16BE16CE16DF5B0F5B1E16EE16FE170E171E172E173F5B2E174E175F5B3F5B4F5B5E176E177E178E179F5B7F5B6E17AE17BE17CE17DF5B8E17EE180E181E182E183E184E185E186E187E188E189E18AB2C9E18BD3D4CACDE18CC0EFD6D8D2B0C1BFE18DBDF0E18EE18FE190E191E192E193E194E195E196E197B8AAE198E199E19AE19BE19CE19DE19EE19FE1A0E240E241E242E243E244E245E246E247E248E249E24AE24BE24CE24DE24EE24FE250E251E252E253E254E255E256E257E258E259E25AE25BE25CE25DE25EE25FE260E261E262E263E264E265E266E267E268E269E26AE26BE26CE26DE26EE26FE270E271E272E273E274E275E276E277E278E279E27AE27BE27CE27DE27EE280E281E282E283E284E285E286E287E288E289E28AE28BE28CE28DE28EE28FE290E291E292E293E294E295E296E297E298E299E29AE29BE29CE29DE29EE29FE2A0E340E341E342E343E344E345E346E347E348E349E34AE34BE34CE34DE34EE34FE350E351E352E353E354E355E356E357E358E359E35AE35BE35CE35DE35EE35FE360E361E362E363E364E365E366E367E368E369E36AE36BE36CE36DBCF8E36EE36FE370E371E372E373E374E375E376E377E378E379E37AE37BE37CE37DE37EE380E381E382E383E384E385E386E387F6C6E388E389E38AE38BE38CE38DE38EE38FE390E391E392E393E394E395E396E397E398E399E39AE39BE39CE39DE39EE39FE3A0E440E441E442E443E444E445F6C7E446E447E448E449E44AE44BE44CE44DE44EE44FE450E451E452E453E454E455E456E457E458E459E45AE45BE45CE45DE45EF6C8E45FE460E461E462E463E464E465E466E467E468E469E46AE46BE46CE46DE46EE46FE470E471E472E473E474E475E476E477E478E479E47AE47BE47CE47DE47EE480E481E482E483E484E485E486E487E488E489E48AE48BE48CE48DE48EE48FE490E491E492E493E494E495E496E497E498E499E49AE49BE49CE49DE49EE49FE4A0E540E541E542E543E544E545E546E547E548E549E54AE54BE54CE54DE54EE54FE550E551E552E553E554E555E556E557E558E559E55AE55BE55CE55DE55EE55FE560E561E562E563E564E565E566E567E568E569E56AE56BE56CE56DE56EE56FE570E571E572E573F6C9E574E575E576E577E578E579E57AE57BE57CE57DE57EE580E581E582E583E584E585E586E587E588E589E58AE58BE58CE58DE58EE58FE590E591E592E593E594E595E596E597E598E599E59AE59BE59CE59DE59EE59FF6CAE5A0E640E641E642E643E644E645E646E647E648E649E64AE64BE64CE64DE64EE64FE650E651E652E653E654E655E656E657E658E659E65AE65BE65CE65DE65EE65FE660E661E662F6CCE663E664E665E666E667E668E669E66AE66BE66CE66DE66EE66FE670E671E672E673E674E675E676E677E678E679E67AE67BE67CE67DE67EE680E681E682E683E684E685E686E687E688E689E68AE68BE68CE68DE68EE68FE690E691E692E693E694E695E696E697E698E699E69AE69BE69CE69DF6CBE69EE69FE6A0E740E741E742E743E744E745E746E747F7E9E748E749E74AE74BE74CE74DE74EE74FE750E751E752E753E754E755E756E757E758E759E75AE75BE75CE75DE75EE75FE760E761E762E763E764E765E766E767E768E769E76AE76BE76CE76DE76EE76FE770E771E772E773E774E775E776E777E778E779E77AE77BE77CE77DE77EE780E781E782E783E784E785E786E787E788E789E78AE78BE78CE78DE78EE78FE790E791E792E793E794E795E796E797E798E799E79AE79BE79CE79DE79EE79FE7A0E840E841E842E843E844E845E846E847E848E849E84AE84BE84CE84DE84EF6CDE84FE850E851E852E853E854E855E856E857E858E859E85AE85BE85CE85DE85EE85FE860E861E862E863E864E865E866E867E868E869E86AE86BE86CE86DE86EE86FE870E871E872E873E874E875E876E877E878E879E87AF6CEE87BE87CE87DE87EE880E881E882E883E884E885E886E887E888E889E88AE88BE88CE88DE88EE88FE890E891E892E893E894EEC4EEC5EEC6D5EBB6A4EEC8EEC7EEC9EECAC7A5EECBEECCE895B7B0B5F6EECDEECFE896EECEE897B8C6EED0EED1EED2B6DBB3AED6D3C4C6B1B5B8D6EED3EED4D4BFC7D5BEFBCED9B9B3EED6EED5EED8EED7C5A5EED9EEDAC7AEEEDBC7AFEEDCB2A7EEDDEEDEEEDFEEE0EEE1D7EAEEE2EEE3BCD8EEE4D3CBCCFAB2ACC1E5EEE5C7A6C3ADE898EEE6EEE7EEE8EEE9EEEAEEEBEEECE899EEEDEEEEEEEFE89AE89BEEF0EEF1EEF2EEF4EEF3E89CEEF5CDADC2C1EEF6EEF7EEF8D5A1EEF9CFB3EEFAEEFBE89DEEFCEEFDEFA1EEFEEFA2B8F5C3FAEFA3EFA4BDC2D2BFB2F9EFA5EFA6EFA7D2F8EFA8D6FDEFA9C6CCE89EEFAAEFABC1B4EFACCFFACBF8EFAEEFADB3FAB9F8EFAFEFB0D0E2EFB1EFB2B7E6D0BFEFB3EFB4EFB5C8F1CCE0EFB6EFB7EFB8EFB9EFBAD5E0EFBBB4EDC3AAEFBCE89FEFBDEFBEEFBFE8A0CEFDEFC0C2E0B4B8D7B6BDF5E940CFC7EFC3EFC1EFC2EFC4B6A7BCFCBEE2C3CCEFC5EFC6E941EFC7EFCFEFC8EFC9EFCAC7C2EFF1B6CDEFCBE942EFCCEFCDB6C6C3BEEFCEE943EFD0EFD1EFD2D5F2E944EFD3C4F7E945EFD4C4F8EFD5EFD6B8E4B0F7EFD7EFD8EFD9E946EFDAEFDBEFDCEFDDE947EFDEBEB5EFE1EFDFEFE0E948EFE2EFE3C1CDEFE4EFE5EFE6EFE7EFE8EFE9EFEAEFEBEFECC0D8E949EFEDC1ADEFEEEFEFEFF0E94AE94BCFE2E94CE94DE94EE94FE950E951E952E953B3A4E954E955E956E957E958E959E95AE95BE95CE95DE95EE95FE960E961E962E963E964E965E966E967E968E969E96AE96BE96CE96DE96EE96FE970E971E972E973E974E975E976E977E978E979E97AE97BE97CE97DE97EE980E981E982E983E984E985E986E987E988E989E98AE98BE98CE98DE98EE98FE990E991E992E993E994E995E996E997E998E999E99AE99BE99CE99DE99EE99FE9A0EA40EA41EA42EA43EA44EA45EA46EA47EA48EA49EA4AEA4BEA4CEA4DEA4EEA4FEA50EA51EA52EA53EA54EA55EA56EA57EA58EA59EA5AEA5BC3C5E3C5C9C1E3C6EA5CB1D5CECAB4B3C8F2E3C7CFD0E3C8BCE4E3C9E3CAC3C6D5A2C4D6B9EBCEC5E3CBC3F6E3CCEA5DB7A7B8F3BAD2E3CDE3CED4C4E3CFEA5EE3D0D1CBE3D1E3D2E3D3E3D4D1D6E3D5B2FBC0BBE3D6EA5FC0ABE3D7E3D8E3D9EA60E3DAE3DBEA61B8B7DAE2EA62B6D3EA63DAE4DAE3EA64EA65EA66EA67EA68EA69EA6ADAE6EA6BEA6CEA6DC8EEEA6EEA6FDAE5B7C0D1F4D2F5D5F3BDD7EA70EA71EA72EA73D7E8DAE8DAE7EA74B0A2CDD3EA75DAE9EA76B8BDBCCAC2BDC2A4B3C2DAEAEA77C2AAC4B0BDB5EA78EA79CFDEEA7AEA7BEA7CDAEBC9C2EA7DEA7EEA80EA81EA82B1DDEA83EA84EA85DAECEA86B6B8D4BAEA87B3FDEA88EA89DAEDD4C9CFD5C5E3EA8ADAEEEA8BEA8CEA8DEA8EEA8FDAEFEA90DAF0C1EACCD5CFDDEA91EA92EA93EA94EA95EA96EA97EA98EA99EA9AEA9BEA9CEA9DD3E7C2A1EA9EDAF1EA9FEAA0CBE5EB40DAF2EB41CBE6D2FEEB42EB43EB44B8F4EB45EB46DAF3B0AFCFB6EB47EB48D5CFEB49EB4AEB4BEB4CEB4DEB4EEB4FEB50EB51EB52CBEDEB53EB54EB55EB56EB57EB58EB59EB5ADAF4EB5BEB5CE3C4EB5DEB5EC1A5EB5FEB60F6BFEB61EB62F6C0F6C1C4D1EB63C8B8D1E3EB64EB65D0DBD1C5BCAFB9CDEB66EFF4EB67EB68B4C6D3BAF6C2B3FBEB69EB6AF6C3EB6BEB6CB5F1EB6DEB6EEB6FEB70EB71EB72EB73EB74EB75EB76F6C5EB77EB78EB79EB7AEB7BEB7CEB7DD3EAF6A7D1A9EB7EEB80EB81EB82F6A9EB83EB84EB85F6A8EB86EB87C1E3C0D7EB88B1A2EB89EB8AEB8BEB8CCEEDEB8DD0E8F6ABEB8EEB8FCFF6EB90F6AAD5F0F6ACC3B9EB91EB92EB93BBF4F6AEF6ADEB94EB95EB96C4DEEB97EB98C1D8EB99EB9AEB9BEB9CEB9DCBAAEB9ECFBCEB9FEBA0EC40EC41EC42EC43EC44EC45EC46EC47EC48F6AFEC49EC4AF6B0EC4BEC4CF6B1EC4DC2B6EC4EEC4FEC50EC51EC52B0D4C5F9EC53EC54EC55EC56F6B2EC57EC58EC59EC5AEC5BEC5CEC5DEC5EEC5FEC60EC61EC62EC63EC64EC65EC66EC67EC68EC69C7E0F6A6EC6AEC6BBEB8EC6CEC6DBEB2EC6EB5E5EC6FEC70B7C7EC71BFBFC3D2C3E6EC72EC73D8CCEC74EC75EC76B8EFEC77EC78EC79EC7AEC7BEC7CEC7DEC7EEC80BDF9D1A5EC81B0D0EC82EC83EC84EC85EC86F7B0EC87EC88EC89EC8AEC8BEC8CEC8DEC8EF7B1EC8FEC90EC91EC92EC93D0ACEC94B0B0EC95EC96EC97F7B2F7B3EC98F7B4EC99EC9AEC9BC7CAEC9CEC9DEC9EEC9FECA0ED40ED41BECFED42ED43F7B7ED44ED45ED46ED47ED48ED49ED4AF7B6ED4BB1DEED4CF7B5ED4DED4EF7B8ED4FF7B9ED50ED51ED52ED53ED54ED55ED56ED57ED58ED59ED5AED5BED5CED5DED5EED5FED60ED61ED62ED63ED64ED65ED66ED67ED68ED69ED6AED6BED6CED6DED6EED6FED70ED71ED72ED73ED74ED75ED76ED77ED78ED79ED7AED7BED7CED7DED7EED80ED81CEA4C8CDED82BAABE8B8E8B9E8BABEC2ED83ED84ED85ED86ED87D2F4ED88D4CFC9D8ED89ED8AED8BED8CED8DED8EED8FED90ED91ED92ED93ED94ED95ED96ED97ED98ED99ED9AED9BED9CED9DED9EED9FEDA0EE40EE41EE42EE43EE44EE45EE46EE47EE48EE49EE4AEE4BEE4CEE4DEE4EEE4FEE50EE51EE52EE53EE54EE55EE56EE57EE58EE59EE5AEE5BEE5CEE5DEE5EEE5FEE60EE61EE62EE63EE64EE65EE66EE67EE68EE69EE6AEE6BEE6CEE6DEE6EEE6FEE70EE71EE72EE73EE74EE75EE76EE77EE78EE79EE7AEE7BEE7CEE7DEE7EEE80EE81EE82EE83EE84EE85EE86EE87EE88EE89EE8AEE8BEE8CEE8DEE8EEE8FEE90EE91EE92EE93EE94EE95EE96EE97EE98EE99EE9AEE9BEE9CEE9DEE9EEE9FEEA0EF40EF41EF42EF43EF44EF45D2B3B6A5C7EAF1FCCFEECBB3D0EBE7EFCDE7B9CBB6D9F1FDB0E4CBCCF1FED4A4C2ADC1ECC6C4BEB1F2A1BCD5EF46F2A2F2A3EF47F2A4D2C3C6B5EF48CDC7F2A5EF49D3B1BFC5CCE2EF4AF2A6F2A7D1D5B6EEF2A8F2A9B5DFF2AAF2ABEF4BB2FCF2ACF2ADC8A7EF4CEF4DEF4EEF4FEF50EF51EF52EF53EF54EF55EF56EF57EF58EF59EF5AEF5BEF5CEF5DEF5EEF5FEF60EF61EF62EF63EF64EF65EF66EF67EF68EF69EF6AEF6BEF6CEF6DEF6EEF6FEF70EF71B7E7EF72EF73ECA9ECAAECABEF74ECACEF75EF76C6AEECADECAEEF77EF78EF79B7C9CAB3EF7AEF7BEF7CEF7DEF7EEF80EF81E2B8F7CFEF82EF83EF84EF85EF86EF87EF88EF89EF8AEF8BEF8CEF8DEF8EEF8FEF90EF91EF92EF93EF94EF95EF96EF97EF98EF99EF9AEF9BEF9CEF9DEF9EEF9FEFA0F040F041F042F043F044F7D0F045F046B2CDF047F048F049F04AF04BF04CF04DF04EF04FF050F051F052F053F054F055F056F057F058F059F05AF05BF05CF05DF05EF05FF060F061F062F063F7D1F064F065F066F067F068F069F06AF06BF06CF06DF06EF06FF070F071F072F073F074F075F076F077F078F079F07AF07BF07CF07DF07EF080F081F082F083F084F085F086F087F088F089F7D3F7D2F08AF08BF08CF08DF08EF08FF090F091F092F093F094F095F096E2BBF097BCA2F098E2BCE2BDE2BEE2BFE2C0E2C1B7B9D2FBBDA4CACEB1A5CBC7F099E2C2B6FCC8C4E2C3F09AF09BBDC8F09CB1FDE2C4F09DB6F6E2C5C4D9F09EF09FE2C6CFDAB9DDE2C7C0A1F0A0E2C8B2F6F140E2C9F141C1F3E2CAE2CBC2F8E2CCE2CDE2CECAD7D8B8D9E5CFE3F142F143F144F145F146F147F148F149F14AF14BF14CF0A5F14DF14EDCB0F14FF150F151F152F153F154F155F156F157F158F159F15AF15BF15CF15DF15EF15FF160F161F162F163F164F165F166F167F168F169F16AF16BF16CF16DF16EF16FF170F171F172F173F174F175F176F177F178F179F17AF17BF17CF17DF17EF180F181F182F183F184F185F186F187F188F189F18AF18BF18CF18DF18EF18FF190F191F192F193F194F195F196F197F198F199F19AF19BF19CF19DF19EF19FF1A0F240F241F242F243F244F245F246F247F248F249F24AF24BF24CF24DF24EF24FF250F251F252F253F254F255F256F257F258F259F25AF25BF25CF25DF25EF25FF260F261F262F263F264F265F266F267F268F269F26AF26BF26CF26DF26EF26FF270F271F272F273F274F275F276F277F278F279F27AF27BF27CF27DF27EF280F281F282F283F284F285F286F287F288F289F28AF28BF28CF28DF28EF28FF290F291F292F293F294F295F296F297F298F299F29AF29BF29CF29DF29EF29FF2A0F340F341F342F343F344F345F346F347F348F349F34AF34BF34CF34DF34EF34FF350F351C2EDD4A6CDD4D1B1B3DBC7FDF352B2B5C2BFE6E0CABBE6E1E6E2BED4E6E3D7A4CDD5E6E5BCDDE6E4E6E6E6E7C2EEF353BDBEE6E8C2E6BAA7E6E9F354E6EAB3D2D1E9F355F356BFA5E6EBC6EFE6ECE6EDF357F358E6EEC6ADE6EFF359C9A7E6F0E6F1E6F2E5B9E6F3E6F4C2E2E6F5E6F6D6E8E6F7F35AE6F8B9C7F35BF35CF35DF35EF35FF360F361F7BBF7BAF362F363F364F365F7BEF7BCBAA1F366F7BFF367F7C0F368F369F36AF7C2F7C1F7C4F36BF36CF7C3F36DF36EF36FF370F371F7C5F7C6F372F373F374F375F7C7F376CBE8F377F378F379F37AB8DFF37BF37CF37DF37EF380F381F7D4F382F7D5F383F384F385F386F7D6F387F388F389F38AF7D8F38BF7DAF38CF7D7F38DF38EF38FF390F391F392F393F394F395F7DBF396F7D9F397F398F399F39AF39BF39CF39DD7D7F39EF39FF3A0F440F7DCF441F442F443F444F445F446F7DDF447F448F449F7DEF44AF44BF44CF44DF44EF44FF450F451F452F453F454F7DFF455F456F457F7E0F458F459F45AF45BF45CF45DF45EF45FF460F461F462DBCBF463F464D8AAF465F466F467F468F469F46AF46BF46CE5F7B9EDF46DF46EF46FF470BFFDBBEAF7C9C6C7F7C8F471F7CAF7CCF7CBF472F473F474F7CDF475CEBAF476F7CEF477F478C4A7F479F47AF47BF47CF47DF47EF480F481F482F483F484F485F486F487F488F489F48AF48BF48CF48DF48EF48FF490F491F492F493F494F495F496F497F498F499F49AF49BF49CF49DF49EF49FF4A0F540F541F542F543F544F545F546F547F548F549F54AF54BF54CF54DF54EF54FF550F551F552F553F554F555F556F557F558F559F55AF55BF55CF55DF55EF55FF560F561F562F563F564F565F566F567F568F569F56AF56BF56CF56DF56EF56FF570F571F572F573F574F575F576F577F578F579F57AF57BF57CF57DF57EF580F581F582F583F584F585F586F587F588F589F58AF58BF58CF58DF58EF58FF590F591F592F593F594F595F596F597F598F599F59AF59BF59CF59DF59EF59FF5A0F640F641F642F643F644F645F646F647F648F649F64AF64BF64CF64DF64EF64FF650F651F652F653F654F655F656F657F658F659F65AF65BF65CF65DF65EF65FF660F661F662F663F664F665F666F667F668F669F66AF66BF66CF66DF66EF66FF670F671F672F673F674F675F676F677F678F679F67AF67BF67CF67DF67EF680F681F682F683F684F685F686F687F688F689F68AF68BF68CF68DF68EF68FF690F691F692F693F694F695F696F697F698F699F69AF69BF69CF69DF69EF69FF6A0F740F741F742F743F744F745F746F747F748F749F74AF74BF74CF74DF74EF74FF750F751F752F753F754F755F756F757F758F759F75AF75BF75CF75DF75EF75FF760F761F762F763F764F765F766F767F768F769F76AF76BF76CF76DF76EF76FF770F771F772F773F774F775F776F777F778F779F77AF77BF77CF77DF77EF780D3E3F781F782F6CFF783C2B3F6D0F784F785F6D1F6D2F6D3F6D4F786F787F6D6F788B1ABF6D7F789F6D8F6D9F6DAF78AF6DBF6DCF78BF78CF78DF78EF6DDF6DECFCAF78FF6DFF6E0F6E1F6E2F6E3F6E4C0F0F6E5F6E6F6E7F6E8F6E9F790F6EAF791F6EBF6ECF792F6EDF6EEF6EFF6F0F6F1F6F2F6F3F6F4BEA8F793F6F5F6F6F6F7F6F8F794F795F796F797F798C8FAF6F9F6FAF6FBF6FCF799F79AF6FDF6FEF7A1F7A2F7A3F7A4F7A5F79BF79CF7A6F7A7F7A8B1EEF7A9F7AAF7ABF79DF79EF7ACF7ADC1DBF7AEF79FF7A0F7AFF840F841F842F843F844F845F846F847F848F849F84AF84BF84CF84DF84EF84FF850F851F852F853F854F855F856F857F858F859F85AF85BF85CF85DF85EF85FF860F861F862F863F864F865F866F867F868F869F86AF86BF86CF86DF86EF86FF870F871F872F873F874F875F876F877F878F879F87AF87BF87CF87DF87EF880F881F882F883F884F885F886F887F888F889F88AF88BF88CF88DF88EF88FF890F891F892F893F894F895F896F897F898F899F89AF89BF89CF89DF89EF89FF8A0F940F941F942F943F944F945F946F947F948F949F94AF94BF94CF94DF94EF94FF950F951F952F953F954F955F956F957F958F959F95AF95BF95CF95DF95EF95FF960F961F962F963F964F965F966F967F968F969F96AF96BF96CF96DF96EF96FF970F971F972F973F974F975F976F977F978F979F97AF97BF97CF97DF97EF980F981F982F983F984F985F986F987F988F989F98AF98BF98CF98DF98EF98FF990F991F992F993F994F995F996F997F998F999F99AF99BF99CF99DF99EF99FF9A0FA40FA41FA42FA43FA44FA45FA46FA47FA48FA49FA4AFA4BFA4CFA4DFA4EFA4FFA50FA51FA52FA53FA54FA55FA56FA57FA58FA59FA5AFA5BFA5CFA5DFA5EFA5FFA60FA61FA62FA63FA64FA65FA66FA67FA68FA69FA6AFA6BFA6CFA6DFA6EFA6FFA70FA71FA72FA73FA74FA75FA76FA77FA78FA79FA7AFA7BFA7CFA7DFA7EFA80FA81FA82FA83FA84FA85FA86FA87FA88FA89FA8AFA8BFA8CFA8DFA8EFA8FFA90FA91FA92FA93FA94FA95FA96FA97FA98FA99FA9AFA9BFA9CFA9DFA9EFA9FFAA0FB40FB41FB42FB43FB44FB45FB46FB47FB48FB49FB4AFB4BFB4CFB4DFB4EFB4FFB50FB51FB52FB53FB54FB55FB56FB57FB58FB59FB5AFB5BC4F1F0AFBCA6F0B0C3F9FB5CC5B8D1BBFB5DF0B1F0B2F0B3F0B4F0B5D1BCFB5ED1ECFB5FF0B7F0B6D4A7FB60CDD2F0B8F0BAF0B9F0BBF0BCFB61FB62B8EBF0BDBAE8FB63F0BEF0BFBEE9F0C0B6ECF0C1F0C2F0C3F0C4C8B5F0C5F0C6FB64F0C7C5F4FB65F0C8FB66FB67FB68F0C9FB69F0CAF7BDFB6AF0CBF0CCF0CDFB6BF0CEFB6CFB6DFB6EFB6FF0CFBAD7FB70F0D0F0D1F0D2F0D3F0D4F0D5F0D6F0D8FB71FB72D3A5F0D7FB73F0D9FB74FB75FB76FB77FB78FB79FB7AFB7BFB7CFB7DF5BAC2B9FB7EFB80F7E4FB81FB82FB83FB84F7E5F7E6FB85FB86F7E7FB87FB88FB89FB8AFB8BFB8CF7E8C2B4FB8DFB8EFB8FFB90FB91FB92FB93FB94FB95F7EAFB96F7EBFB97FB98FB99FB9AFB9BFB9CC2F3FB9DFB9EFB9FFBA0FC40FC41FC42FC43FC44FC45FC46FC47FC48F4F0FC49FC4AFC4BF4EFFC4CFC4DC2E9FC4EF7E1F7E2FC4FFC50FC51FC52FC53BBC6FC54FC55FC56FC57D9E4FC58FC59FC5ACAF2C0E8F0A4FC5BBADAFC5CFC5DC7ADFC5EFC5FFC60C4ACFC61FC62F7ECF7EDF7EEFC63F7F0F7EFFC64F7F1FC65FC66F7F4FC67F7F3FC68F7F2F7F5FC69FC6AFC6BFC6CF7F6FC6DFC6EFC6FFC70FC71FC72FC73FC74FC75EDE9FC76EDEAEDEBFC77F6BCFC78FC79FC7AFC7BFC7CFC7DFC7EFC80FC81FC82FC83FC84F6BDFC85F6BEB6A6FC86D8BEFC87FC88B9C4FC89FC8AFC8BD8BBFC8CDCB1FC8DFC8EFC8FFC90FC91FC92CAF3FC93F7F7FC94FC95FC96FC97FC98FC99FC9AFC9BFC9CF7F8FC9DFC9EF7F9FC9FFCA0FD40FD41FD42FD43FD44F7FBFD45F7FAFD46B1C7FD47F7FCF7FDFD48FD49FD4AFD4BFD4CF7FEFD4DFD4EFD4FFD50FD51FD52FD53FD54FD55FD56FD57C6EBECB4FD58FD59FD5AFD5BFD5CFD5DFD5EFD5FFD60FD61FD62FD63FD64FD65FD66FD67FD68FD69FD6AFD6BFD6CFD6DFD6EFD6FFD70FD71FD72FD73FD74FD75FD76FD77FD78FD79FD7AFD7BFD7CFD7DFD7EFD80FD81FD82FD83FD84FD85B3DDF6B3FD86FD87F6B4C1E4F6B5F6B6F6B7F6B8F6B9F6BAC8A3F6BBFD88FD89FD8AFD8BFD8CFD8DFD8EFD8FFD90FD91FD92FD93C1FAB9A8EDE8FD94FD95FD96B9EAD9DFFD97FD98FD99FD9AFD9";
|
|
67
67
|
encodeToGb2312(D) {
|
|
68
68
|
for (var C = "", B = 0; B < D.length; B++) {
|
|
@@ -70,8 +70,8 @@ class uC {
|
|
|
70
70
|
if (F == " ")
|
|
71
71
|
C += "+";
|
|
72
72
|
else if (A >= 19968 && A <= 40869) {
|
|
73
|
-
let
|
|
74
|
-
C += "%" + this.z.substr(
|
|
73
|
+
let e = A - 19968;
|
|
74
|
+
C += "%" + this.z.substr(e * 4, 2) + "%" + this.z.substr(e * 4 + 2, 2);
|
|
75
75
|
} else
|
|
76
76
|
C += "%" + D.charCodeAt(B).toString(16);
|
|
77
77
|
}
|
|
@@ -89,11 +89,11 @@ class uC {
|
|
|
89
89
|
var A = D.charAt(B);
|
|
90
90
|
if (isNaN(parseInt(A)))
|
|
91
91
|
try {
|
|
92
|
-
var
|
|
92
|
+
var e = D.substr(B, 2) + D.substr(B + 3, 2);
|
|
93
93
|
B = B + 4;
|
|
94
|
-
for (var
|
|
95
|
-
if (
|
|
96
|
-
C += String.fromCharCode(
|
|
94
|
+
for (var t = -1; (t = this.z.indexOf(e, t + 1)) != -1; )
|
|
95
|
+
if (t % 4 == 0) {
|
|
96
|
+
C += String.fromCharCode(t / 4 + 19968);
|
|
97
97
|
break;
|
|
98
98
|
}
|
|
99
99
|
} catch {
|
|
@@ -111,12 +111,12 @@ class uC {
|
|
|
111
111
|
return C;
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
|
-
let P = new
|
|
115
|
-
class
|
|
114
|
+
let P = new cC();
|
|
115
|
+
class o {
|
|
116
116
|
static kOrigin;
|
|
117
117
|
imp;
|
|
118
118
|
constructor(D, C, B) {
|
|
119
|
-
this.imp = new
|
|
119
|
+
this.imp = new r.mxcadassemblyimp.MdGePoint3d(), D instanceof Object ? (this.imp.x = D.x, this.imp.y = D.y, this.imp.z = D.z) : (this.imp.x = D || 0, this.imp.y = C || 0, this.imp.z = B || 0);
|
|
120
120
|
}
|
|
121
121
|
toVector3() {
|
|
122
122
|
return new THREE.Vector3(this.imp.x, this.imp.y, this.imp.z);
|
|
@@ -143,7 +143,7 @@ class a {
|
|
|
143
143
|
return this.imp.isEqualTo(D.imp);
|
|
144
144
|
}
|
|
145
145
|
clone() {
|
|
146
|
-
return new
|
|
146
|
+
return new o(this.imp);
|
|
147
147
|
}
|
|
148
148
|
get x() {
|
|
149
149
|
return this.imp.x;
|
|
@@ -171,7 +171,7 @@ class y {
|
|
|
171
171
|
static kNegateZAxis;
|
|
172
172
|
imp;
|
|
173
173
|
constructor(D, C, B) {
|
|
174
|
-
this.imp = new
|
|
174
|
+
this.imp = new r.mxcadassemblyimp.MdGeVector3d(), D instanceof Object ? (this.imp.x = D.x, this.imp.y = D.y, this.imp.z = D.z) : (this.imp.x = D || 0, this.imp.y = C || 0, this.imp.z = B || 0);
|
|
175
175
|
}
|
|
176
176
|
copy(D) {
|
|
177
177
|
return this.imp.x = D.imp.x, this.imp.y = D.imp.y, this.imp.z = D.imp.z, this;
|
|
@@ -235,17 +235,17 @@ class y {
|
|
|
235
235
|
this.imp.z = D;
|
|
236
236
|
}
|
|
237
237
|
}
|
|
238
|
-
class
|
|
238
|
+
class I {
|
|
239
239
|
static kIdentity;
|
|
240
240
|
imp;
|
|
241
241
|
constructor(D) {
|
|
242
|
-
this.imp = new
|
|
242
|
+
this.imp = new r.mxcadassemblyimp.MdGeMatrix3d(), D instanceof Object && this.imp.copy(D);
|
|
243
243
|
}
|
|
244
244
|
copy(D) {
|
|
245
245
|
return this.imp.copy(D.imp), this;
|
|
246
246
|
}
|
|
247
247
|
clone() {
|
|
248
|
-
return new
|
|
248
|
+
return new I(this.imp);
|
|
249
249
|
}
|
|
250
250
|
setToIdentity() {
|
|
251
251
|
return this.imp.setToIdentity(), this;
|
|
@@ -278,7 +278,7 @@ class j {
|
|
|
278
278
|
return this.imp.setCoordSystem(D.imp, C.imp, B.imp, F.imp), this;
|
|
279
279
|
}
|
|
280
280
|
setToTranslation(D) {
|
|
281
|
-
return this.imp.
|
|
281
|
+
return this.imp.setToTranslation(D.imp), this;
|
|
282
282
|
}
|
|
283
283
|
setToRotation(D, C, B) {
|
|
284
284
|
return this.imp.setToRotation(D, C.imp, B.imp), this;
|
|
@@ -293,10 +293,10 @@ class j {
|
|
|
293
293
|
return this.imp.getData(D, C);
|
|
294
294
|
}
|
|
295
295
|
}
|
|
296
|
-
class
|
|
296
|
+
class SD {
|
|
297
297
|
imp;
|
|
298
298
|
constructor(D) {
|
|
299
|
-
this.imp = new
|
|
299
|
+
this.imp = new r.mxcadassemblyimp.MdGeLongArray(), D instanceof Object && this.imp.copy(D);
|
|
300
300
|
}
|
|
301
301
|
copy(D) {
|
|
302
302
|
return this.imp.copy(D.imp), this;
|
|
@@ -314,10 +314,10 @@ class lC {
|
|
|
314
314
|
this.imp.setAt(D, C);
|
|
315
315
|
}
|
|
316
316
|
}
|
|
317
|
-
class
|
|
317
|
+
class ID {
|
|
318
318
|
imp;
|
|
319
319
|
constructor(D) {
|
|
320
|
-
this.imp = new
|
|
320
|
+
this.imp = new r.mxcadassemblyimp.MdGeStringArray(), D instanceof Object && this.imp.copy(D);
|
|
321
321
|
}
|
|
322
322
|
copy(D) {
|
|
323
323
|
return this.imp.copy(D.imp), this;
|
|
@@ -340,10 +340,10 @@ class vD {
|
|
|
340
340
|
D(C ? P.decodeFromGb2312(this.imp.at(F)) : this.imp.at(F), F);
|
|
341
341
|
}
|
|
342
342
|
}
|
|
343
|
-
class
|
|
343
|
+
class mC {
|
|
344
344
|
imp;
|
|
345
345
|
constructor(D) {
|
|
346
|
-
this.imp = new
|
|
346
|
+
this.imp = new r.mxcadassemblyimp.MdGePoint3dArray(), D instanceof Object && this.imp.copy(D);
|
|
347
347
|
}
|
|
348
348
|
copy(D) {
|
|
349
349
|
return this.imp.copy(D.imp), this;
|
|
@@ -355,19 +355,19 @@ class cC {
|
|
|
355
355
|
return this.imp.length();
|
|
356
356
|
}
|
|
357
357
|
at(D) {
|
|
358
|
-
return new
|
|
358
|
+
return new o(this.imp.at(D));
|
|
359
359
|
}
|
|
360
360
|
setAt(D, C) {
|
|
361
361
|
this.imp.setAt(D, C.imp);
|
|
362
362
|
}
|
|
363
363
|
}
|
|
364
|
-
const
|
|
365
|
-
|
|
366
|
-
}),
|
|
367
|
-
class
|
|
364
|
+
const pC = new FinalizationRegistry((E) => {
|
|
365
|
+
r.App.DestroyObject(E);
|
|
366
|
+
}), dC = {};
|
|
367
|
+
class H {
|
|
368
368
|
imp = 0;
|
|
369
369
|
constructor(D) {
|
|
370
|
-
this.imp = D, this.imp &&
|
|
370
|
+
this.imp = D, this.imp && pC.register(this, D, dC);
|
|
371
371
|
}
|
|
372
372
|
getImp() {
|
|
373
373
|
return this.imp;
|
|
@@ -404,30 +404,30 @@ class R {
|
|
|
404
404
|
return this.type != 2 && this.id != 0;
|
|
405
405
|
}
|
|
406
406
|
erase() {
|
|
407
|
-
this.type == 1 ? h.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 &&
|
|
407
|
+
this.type == 1 ? h.getCurrentDraw().eraseMxEntity(this.id) : this.type == 0 && z.eraseEntity(this.id);
|
|
408
408
|
}
|
|
409
409
|
getMcDbObject() {
|
|
410
|
-
return this.type == 0 ?
|
|
410
|
+
return this.type == 0 ? r.App.ObjectIdToObject(this.id) : null;
|
|
411
411
|
}
|
|
412
412
|
getMcDbEntity() {
|
|
413
|
-
return this.type == 0 &&
|
|
413
|
+
return this.type == 0 && r.App.ObjectIdIsKindOf(this.id, "McDbEntity") ? r.App.ObjectIdToObject(this.id) : null;
|
|
414
414
|
}
|
|
415
415
|
getMcDbCurve() {
|
|
416
|
-
return this.type == 0 &&
|
|
416
|
+
return this.type == 0 && r.App.ObjectIdIsKindOf(this.id, "McDbCurve") ? r.App.ObjectIdToObject(this.id) : null;
|
|
417
417
|
}
|
|
418
418
|
clone() {
|
|
419
419
|
if (this.type == 0) {
|
|
420
|
-
let D =
|
|
420
|
+
let D = r.App.getImp().ObjectIdToMdObject(this.id);
|
|
421
421
|
if (!D)
|
|
422
422
|
return null;
|
|
423
423
|
let C = D.Clone();
|
|
424
|
-
return
|
|
424
|
+
return r.App.DestroyObject(D), r.App.CreateCloneObject(C);
|
|
425
425
|
}
|
|
426
426
|
return null;
|
|
427
427
|
}
|
|
428
428
|
getObjectName() {
|
|
429
429
|
if (this.type == 0)
|
|
430
|
-
return
|
|
430
|
+
return r.App.getImp().ObjectIdToObjectName(this.id);
|
|
431
431
|
if (this.type == 1) {
|
|
432
432
|
let D = h.getCurrentDraw().getMxEntity(this.id);
|
|
433
433
|
if (D)
|
|
@@ -439,7 +439,7 @@ class R {
|
|
|
439
439
|
return this.type == 1 ? h.getCurrentDraw().getMxEntity(this.id) : null;
|
|
440
440
|
}
|
|
441
441
|
}
|
|
442
|
-
class
|
|
442
|
+
class j extends H {
|
|
443
443
|
constructor(D) {
|
|
444
444
|
super(D);
|
|
445
445
|
}
|
|
@@ -451,28 +451,28 @@ class I extends K {
|
|
|
451
451
|
}
|
|
452
452
|
Clone() {
|
|
453
453
|
let D = this.imp.Clone();
|
|
454
|
-
return
|
|
454
|
+
return r.App.CreateCloneObject(D);
|
|
455
455
|
}
|
|
456
456
|
GetHandle() {
|
|
457
457
|
return this.imp.GetHandle();
|
|
458
458
|
}
|
|
459
459
|
GetDatabase() {
|
|
460
|
-
return new
|
|
460
|
+
return new hD(this.imp.GetDatabase());
|
|
461
461
|
}
|
|
462
462
|
GetOwnerID() {
|
|
463
463
|
return this.imp.GetOwnerID();
|
|
464
464
|
}
|
|
465
465
|
}
|
|
466
|
-
class
|
|
466
|
+
class aD {
|
|
467
467
|
aryVal = [];
|
|
468
468
|
constructor(D) {
|
|
469
469
|
if (D) {
|
|
470
470
|
let C = 0, B = D.length();
|
|
471
471
|
for (; C < B; C++) {
|
|
472
|
-
let F = D.release(C), A =
|
|
472
|
+
let F = D.release(C), A = r.App.CreateCloneObject(F);
|
|
473
473
|
A != null && this.aryVal.push(A);
|
|
474
474
|
}
|
|
475
|
-
|
|
475
|
+
r.App.DestroyObject(D);
|
|
476
476
|
}
|
|
477
477
|
}
|
|
478
478
|
forEach(D) {
|
|
@@ -487,7 +487,7 @@ class oD {
|
|
|
487
487
|
return this.aryVal.length == 0;
|
|
488
488
|
}
|
|
489
489
|
}
|
|
490
|
-
var
|
|
490
|
+
var uD;
|
|
491
491
|
((E) => {
|
|
492
492
|
((D) => {
|
|
493
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";
|
|
@@ -498,11 +498,11 @@ var aD;
|
|
|
498
498
|
})(E.AttachmentPoint || (E.AttachmentPoint = {})), ((D) => {
|
|
499
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";
|
|
500
500
|
})(E.LineWeight || (E.LineWeight = {}));
|
|
501
|
-
})(
|
|
502
|
-
class
|
|
501
|
+
})(uD || (uD = {}));
|
|
502
|
+
class N {
|
|
503
503
|
imp;
|
|
504
504
|
constructor(D, C, B) {
|
|
505
|
-
this.imp = new
|
|
505
|
+
this.imp = new r.mxcadassemblyimp.MdCmColor(), D instanceof Object ? (this.imp.red = D.red, this.imp.green = D.green, this.imp.blue = D.blue, this.imp.method = D.method, this.imp.n = D.n, this.imp.colorIndex = D.colorIndex) : typeof D == "number" && typeof C == "number" && typeof B == "number" && this.imp.setRGB(D, C, B);
|
|
506
506
|
}
|
|
507
507
|
getImp() {
|
|
508
508
|
return this.imp;
|
|
@@ -511,7 +511,7 @@ class H {
|
|
|
511
511
|
return this.imp.red = D.imp.red, this.imp.green = D.imp.green, this.imp.blue = D.imp.blue, this.imp.method = D.imp.method, this.imp.n = D.imp.n, this.imp.colorIndex = D.imp.colorIndex, this;
|
|
512
512
|
}
|
|
513
513
|
clone() {
|
|
514
|
-
return new
|
|
514
|
+
return new N(this.imp);
|
|
515
515
|
}
|
|
516
516
|
setColorIndex(D) {
|
|
517
517
|
this.imp.setColorIndex(D);
|
|
@@ -556,9 +556,9 @@ class H {
|
|
|
556
556
|
this.imp.colorIndex = D;
|
|
557
557
|
}
|
|
558
558
|
}
|
|
559
|
-
class
|
|
559
|
+
class hC extends j {
|
|
560
560
|
constructor(D) {
|
|
561
|
-
super(D), D || this.initTempObject(new
|
|
561
|
+
super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbLayerTableRecord());
|
|
562
562
|
}
|
|
563
563
|
get name() {
|
|
564
564
|
return this.imp.getName();
|
|
@@ -585,7 +585,7 @@ class dC extends I {
|
|
|
585
585
|
this.imp.setIsLocked(D);
|
|
586
586
|
}
|
|
587
587
|
get color() {
|
|
588
|
-
return new
|
|
588
|
+
return new N(this.imp.color());
|
|
589
589
|
}
|
|
590
590
|
set color(D) {
|
|
591
591
|
this.imp.setColor(D.getImp());
|
|
@@ -603,22 +603,22 @@ class dC extends I {
|
|
|
603
603
|
this.imp.setLineWeight(D);
|
|
604
604
|
}
|
|
605
605
|
}
|
|
606
|
-
class jD extends
|
|
606
|
+
class jD extends j {
|
|
607
607
|
constructor(D) {
|
|
608
608
|
super(D);
|
|
609
609
|
}
|
|
610
610
|
}
|
|
611
|
-
class
|
|
611
|
+
class GD extends j {
|
|
612
612
|
constructor(D) {
|
|
613
613
|
super(D);
|
|
614
614
|
}
|
|
615
615
|
}
|
|
616
|
-
class
|
|
616
|
+
class VD extends j {
|
|
617
617
|
constructor(D) {
|
|
618
618
|
super(D);
|
|
619
619
|
}
|
|
620
620
|
}
|
|
621
|
-
class
|
|
621
|
+
class hD extends H {
|
|
622
622
|
constructor(D) {
|
|
623
623
|
super(D);
|
|
624
624
|
}
|
|
@@ -626,16 +626,16 @@ class pD extends K {
|
|
|
626
626
|
return new jD(this.imp.GetLayerTable());
|
|
627
627
|
}
|
|
628
628
|
GetLinetypeTable() {
|
|
629
|
-
return new
|
|
629
|
+
return new GD(this.imp.GetLinetypeTable());
|
|
630
630
|
}
|
|
631
631
|
GetTextStyleTable() {
|
|
632
|
-
return new
|
|
632
|
+
return new VD(this.imp.GetTextStyleTable());
|
|
633
633
|
}
|
|
634
634
|
GetBlockTable() {
|
|
635
|
-
return new
|
|
635
|
+
return new zD(this.imp.GetBlockTable());
|
|
636
636
|
}
|
|
637
637
|
CurrentSpace() {
|
|
638
|
-
return new
|
|
638
|
+
return new AD(this.imp.CurrentSpace());
|
|
639
639
|
}
|
|
640
640
|
GetCurrentlyLineTypeScale() {
|
|
641
641
|
return this.imp.GetCurrentlyLineTypeScale();
|
|
@@ -660,7 +660,7 @@ class pD extends K {
|
|
|
660
660
|
this.imp.SetCurrentlyLayerName(C);
|
|
661
661
|
}
|
|
662
662
|
GetCurrentlyTrueColor() {
|
|
663
|
-
return new
|
|
663
|
+
return new N(this.imp.GetCurrentlyTrueColor());
|
|
664
664
|
}
|
|
665
665
|
GetCurrentlyDrawColor() {
|
|
666
666
|
let D = this.imp.GetCurrentlyDrawColor(), C = new THREE.Color();
|
|
@@ -694,7 +694,7 @@ class pD extends K {
|
|
|
694
694
|
return this.imp.SetModifyed(!1);
|
|
695
695
|
}
|
|
696
696
|
}
|
|
697
|
-
class
|
|
697
|
+
class UD extends H {
|
|
698
698
|
constructor(D) {
|
|
699
699
|
super(D);
|
|
700
700
|
}
|
|
@@ -711,9 +711,9 @@ class VD extends K {
|
|
|
711
711
|
return this.imp.step(D, C);
|
|
712
712
|
}
|
|
713
713
|
}
|
|
714
|
-
class
|
|
714
|
+
class AD extends j {
|
|
715
715
|
constructor(D) {
|
|
716
|
-
super(D), D || this.initTempObject(new
|
|
716
|
+
super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbBlockTableRecord());
|
|
717
717
|
}
|
|
718
718
|
appendAcDbEntity(D) {
|
|
719
719
|
return new R(
|
|
@@ -723,19 +723,19 @@ class FD extends I {
|
|
|
723
723
|
}
|
|
724
724
|
newIterator(D = !0, C = !0) {
|
|
725
725
|
let B = this.imp.newIterator(D, C);
|
|
726
|
-
return new
|
|
726
|
+
return new UD(B);
|
|
727
727
|
}
|
|
728
728
|
get origin() {
|
|
729
|
-
return new
|
|
729
|
+
return new o(this.imp.origin());
|
|
730
730
|
}
|
|
731
731
|
set origin(D) {
|
|
732
732
|
this.imp.setOrigin(D.imp);
|
|
733
733
|
}
|
|
734
734
|
getBoundingBox() {
|
|
735
735
|
let D = this.imp.getBoundingBox();
|
|
736
|
-
return D.length() < 2 ? { minPt: new
|
|
737
|
-
minPt: new
|
|
738
|
-
maxPt: new
|
|
736
|
+
return D.length() < 2 ? { minPt: new o(), maxPt: new o(), ret: !1 } : {
|
|
737
|
+
minPt: new o(D.at(0)),
|
|
738
|
+
maxPt: new o(D.at(1)),
|
|
739
739
|
ret: !0
|
|
740
740
|
};
|
|
741
741
|
}
|
|
@@ -743,7 +743,7 @@ class FD extends I {
|
|
|
743
743
|
this.imp.invalidBoundingBoxBuffer();
|
|
744
744
|
}
|
|
745
745
|
}
|
|
746
|
-
class WD extends
|
|
746
|
+
class WD extends H {
|
|
747
747
|
constructor(D) {
|
|
748
748
|
super(D);
|
|
749
749
|
}
|
|
@@ -755,19 +755,19 @@ class WD extends K {
|
|
|
755
755
|
}
|
|
756
756
|
getRecord() {
|
|
757
757
|
let D = this.imp.getRecord();
|
|
758
|
-
return new
|
|
758
|
+
return new AD(D);
|
|
759
759
|
}
|
|
760
760
|
step(D = !0, C = !0) {
|
|
761
761
|
this.imp.start(D, C);
|
|
762
762
|
}
|
|
763
763
|
}
|
|
764
|
-
class
|
|
764
|
+
class zD extends j {
|
|
765
765
|
constructor(D) {
|
|
766
|
-
super(D), D || this.initTempObject(new
|
|
766
|
+
super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbBlockTable());
|
|
767
767
|
}
|
|
768
768
|
getAt(D) {
|
|
769
769
|
let C = this.getAt(D);
|
|
770
|
-
return C && new
|
|
770
|
+
return C && new AD(C);
|
|
771
771
|
}
|
|
772
772
|
has(D) {
|
|
773
773
|
return this.imp.has(D);
|
|
@@ -780,7 +780,7 @@ class UD extends I {
|
|
|
780
780
|
return this.imp.add(D.getImp());
|
|
781
781
|
}
|
|
782
782
|
}
|
|
783
|
-
class G extends
|
|
783
|
+
class G extends j {
|
|
784
784
|
constructor(D) {
|
|
785
785
|
super(D);
|
|
786
786
|
}
|
|
@@ -789,7 +789,7 @@ class G extends I {
|
|
|
789
789
|
return new tD(D);
|
|
790
790
|
}
|
|
791
791
|
get trueColor() {
|
|
792
|
-
return new
|
|
792
|
+
return new N(this.imp.TrueColor());
|
|
793
793
|
}
|
|
794
794
|
set trueColor(D) {
|
|
795
795
|
this.imp.SetTrueColor(D.getImp());
|
|
@@ -852,13 +852,13 @@ class G extends I {
|
|
|
852
852
|
let D = this.imp.GetBoundingBox();
|
|
853
853
|
if (D) {
|
|
854
854
|
let C = {
|
|
855
|
-
minPt: new
|
|
856
|
-
maxPt: new
|
|
855
|
+
minPt: new o(D.AtPoint(0)),
|
|
856
|
+
maxPt: new o(D.AtPoint(1)),
|
|
857
857
|
ret: !0
|
|
858
858
|
};
|
|
859
|
-
return
|
|
859
|
+
return r.App.DestroyObject(D), C;
|
|
860
860
|
} else
|
|
861
|
-
return { minPt: new
|
|
861
|
+
return { minPt: new o(), maxPt: new o(), ret: !1 };
|
|
862
862
|
}
|
|
863
863
|
}
|
|
864
864
|
class W extends G {
|
|
@@ -866,116 +866,116 @@ class W extends G {
|
|
|
866
866
|
super(D);
|
|
867
867
|
}
|
|
868
868
|
getStartParam() {
|
|
869
|
-
return { val: this.imp.getStartParam(), ret:
|
|
869
|
+
return { val: this.imp.getStartParam(), ret: r.getCallResult() };
|
|
870
870
|
}
|
|
871
871
|
getEndParam() {
|
|
872
|
-
return { val: this.imp.getEndParam(), ret:
|
|
872
|
+
return { val: this.imp.getEndParam(), ret: r.getCallResult() };
|
|
873
873
|
}
|
|
874
874
|
getDistAtParam(D) {
|
|
875
|
-
return { val: this.imp.getDistAtParam(D), ret:
|
|
875
|
+
return { val: this.imp.getDistAtParam(D), ret: r.getCallResult() };
|
|
876
876
|
}
|
|
877
877
|
getParamAtDist(D) {
|
|
878
|
-
return { val: this.imp.getParamAtDist(D), ret:
|
|
878
|
+
return { val: this.imp.getParamAtDist(D), ret: r.getCallResult() };
|
|
879
879
|
}
|
|
880
880
|
getDistAtPoint(D) {
|
|
881
|
-
return { val: this.imp.getDistAtPoint(D.imp), ret:
|
|
881
|
+
return { val: this.imp.getDistAtPoint(D.imp), ret: r.getCallResult() };
|
|
882
882
|
}
|
|
883
883
|
getPointAtDist(D) {
|
|
884
884
|
return {
|
|
885
|
-
val: new
|
|
886
|
-
ret:
|
|
885
|
+
val: new o(this.imp.getPointAtDist(D)),
|
|
886
|
+
ret: r.getCallResult()
|
|
887
887
|
};
|
|
888
888
|
}
|
|
889
889
|
getStartPoint() {
|
|
890
890
|
return {
|
|
891
|
-
val: new
|
|
892
|
-
ret:
|
|
891
|
+
val: new o(this.imp.getStartPoint()),
|
|
892
|
+
ret: r.getCallResult()
|
|
893
893
|
};
|
|
894
894
|
}
|
|
895
895
|
getEndPoint() {
|
|
896
896
|
return {
|
|
897
|
-
val: new
|
|
898
|
-
ret:
|
|
897
|
+
val: new o(this.imp.getStartPoint()),
|
|
898
|
+
ret: r.getCallResult()
|
|
899
899
|
};
|
|
900
900
|
}
|
|
901
901
|
getPointAtParam(D) {
|
|
902
902
|
return {
|
|
903
|
-
val: new
|
|
904
|
-
ret:
|
|
903
|
+
val: new o(this.imp.getPointAtParam(D)),
|
|
904
|
+
ret: r.getCallResult()
|
|
905
905
|
};
|
|
906
906
|
}
|
|
907
907
|
getParamAtPoint(D) {
|
|
908
908
|
return {
|
|
909
909
|
val: this.imp.getParamAtPoint(D.imp),
|
|
910
|
-
ret:
|
|
910
|
+
ret: r.getCallResult()
|
|
911
911
|
};
|
|
912
912
|
}
|
|
913
913
|
getFirstDeriv(D) {
|
|
914
914
|
return {
|
|
915
915
|
val: new y(this.imp.getFirstDeriv(D)),
|
|
916
|
-
ret:
|
|
916
|
+
ret: r.getCallResult()
|
|
917
917
|
};
|
|
918
918
|
}
|
|
919
919
|
getFirstDerivEx(D) {
|
|
920
920
|
return {
|
|
921
921
|
val: new y(this.imp.getFirstDerivEx(D.imp)),
|
|
922
|
-
ret:
|
|
922
|
+
ret: r.getCallResult()
|
|
923
923
|
};
|
|
924
924
|
}
|
|
925
925
|
getClosestPointTo(D, C) {
|
|
926
926
|
return {
|
|
927
|
-
val: new
|
|
928
|
-
ret:
|
|
927
|
+
val: new o(this.imp.getClosestPointTo(D.imp, C)),
|
|
928
|
+
ret: r.getCallResult()
|
|
929
929
|
};
|
|
930
930
|
}
|
|
931
931
|
offsetCurves(D, C) {
|
|
932
932
|
let B = this.imp.offsetCurves(D, C.imp);
|
|
933
|
-
return new
|
|
933
|
+
return new aD(B);
|
|
934
934
|
}
|
|
935
935
|
splitCurves(D) {
|
|
936
936
|
let C = this.imp.splitCurves(D);
|
|
937
|
-
return new
|
|
937
|
+
return new aD(C);
|
|
938
938
|
}
|
|
939
939
|
getArea() {
|
|
940
|
-
return { val: this.imp.getArea(), ret:
|
|
940
|
+
return { val: this.imp.getArea(), ret: r.getCallResult() };
|
|
941
941
|
}
|
|
942
942
|
getSamplePoints(D) {
|
|
943
943
|
let C = this.imp.getSamplePoints(D);
|
|
944
944
|
return new tD(C);
|
|
945
945
|
}
|
|
946
946
|
getLength() {
|
|
947
|
-
return { val: this.imp.getLength(), ret:
|
|
947
|
+
return { val: this.imp.getLength(), ret: r.getCallResult() };
|
|
948
948
|
}
|
|
949
949
|
}
|
|
950
|
-
class
|
|
951
|
-
constructor(D, C, B, F, A,
|
|
952
|
-
D instanceof Object ? D instanceof
|
|
950
|
+
class CD extends W {
|
|
951
|
+
constructor(D, C, B, F, A, e) {
|
|
952
|
+
D instanceof Object ? D instanceof o ? (super(), this.initTempObject(new r.mxcadassemblyimp.MdDbLine()), C instanceof o && (this.startPoint = D, this.endPoint = C)) : super(D) : (super(), this.initTempObject(new r.mxcadassemblyimp.MdDbLine()), this.startPoint = new o(D, C, B), this.endPoint = new o(F, A, e));
|
|
953
953
|
}
|
|
954
954
|
get startPoint() {
|
|
955
|
-
return new
|
|
955
|
+
return new o(this.imp.startPoint());
|
|
956
956
|
}
|
|
957
957
|
set startPoint(D) {
|
|
958
958
|
this.imp.setStartPoint(D.imp);
|
|
959
959
|
}
|
|
960
960
|
get endPoint() {
|
|
961
|
-
return new
|
|
961
|
+
return new o(this.imp.endPoint());
|
|
962
962
|
}
|
|
963
963
|
set endPoint(D) {
|
|
964
964
|
this.imp.setEndPoint(D.imp);
|
|
965
965
|
}
|
|
966
966
|
}
|
|
967
|
-
class
|
|
967
|
+
class lD extends G {
|
|
968
968
|
constructor(D) {
|
|
969
|
-
super(D), D || this.initTempObject(new
|
|
969
|
+
super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbText());
|
|
970
970
|
}
|
|
971
971
|
get position() {
|
|
972
|
-
return new
|
|
972
|
+
return new o(this.imp.position());
|
|
973
973
|
}
|
|
974
974
|
set position(D) {
|
|
975
975
|
this.imp.setPosition(D.imp);
|
|
976
976
|
}
|
|
977
977
|
get alignmentPoint() {
|
|
978
|
-
return new
|
|
978
|
+
return new o(this.imp.position());
|
|
979
979
|
}
|
|
980
980
|
set alignmentPoint(D) {
|
|
981
981
|
this.imp.setAlignmentPoint(D.imp);
|
|
@@ -1023,12 +1023,12 @@ class uD extends G {
|
|
|
1023
1023
|
this.imp.setVerticalMode(D);
|
|
1024
1024
|
}
|
|
1025
1025
|
}
|
|
1026
|
-
class
|
|
1026
|
+
class BD extends G {
|
|
1027
1027
|
constructor(D) {
|
|
1028
|
-
super(D), D || this.initTempObject(new
|
|
1028
|
+
super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbMText());
|
|
1029
1029
|
}
|
|
1030
1030
|
get location() {
|
|
1031
|
-
return new
|
|
1031
|
+
return new o(this.imp.location());
|
|
1032
1032
|
}
|
|
1033
1033
|
set location(D) {
|
|
1034
1034
|
this.imp.setLocation(D.imp);
|
|
@@ -1064,15 +1064,15 @@ class CD extends G {
|
|
|
1064
1064
|
this.imp.setContents(P.encodeToGb2312(D));
|
|
1065
1065
|
}
|
|
1066
1066
|
}
|
|
1067
|
-
class
|
|
1067
|
+
class U extends W {
|
|
1068
1068
|
constructor(D, C, B, F) {
|
|
1069
|
-
D instanceof Object ? super(D) : (super(), this.initTempObject(new
|
|
1069
|
+
D instanceof Object ? super(D) : (super(), this.initTempObject(new r.mxcadassemblyimp.MdDbCircle()), typeof D == "number" && (this.imp.setCenter(new o(D, C, B).imp), this.imp.setRadius(F)));
|
|
1070
1070
|
}
|
|
1071
1071
|
setCenter(D, C, B) {
|
|
1072
|
-
this.imp.setCenter(new
|
|
1072
|
+
this.imp.setCenter(new o(D, C, B).imp);
|
|
1073
1073
|
}
|
|
1074
1074
|
get center() {
|
|
1075
|
-
return new
|
|
1075
|
+
return new o(this.imp.center());
|
|
1076
1076
|
}
|
|
1077
1077
|
set center(D) {
|
|
1078
1078
|
this.imp.setCenter(D.imp);
|
|
@@ -1084,9 +1084,9 @@ class V extends W {
|
|
|
1084
1084
|
this.imp.setRadius(D);
|
|
1085
1085
|
}
|
|
1086
1086
|
}
|
|
1087
|
-
class
|
|
1087
|
+
class ED extends W {
|
|
1088
1088
|
constructor(D) {
|
|
1089
|
-
super(D), D || this.initTempObject(new
|
|
1089
|
+
super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbPolyline());
|
|
1090
1090
|
}
|
|
1091
1091
|
get isClosed() {
|
|
1092
1092
|
return this.imp.isClosed();
|
|
@@ -1102,8 +1102,8 @@ class BD extends W {
|
|
|
1102
1102
|
}
|
|
1103
1103
|
addVertexAt(D, C = 0, B = 0, F = 0, A = 0) {
|
|
1104
1104
|
if (D instanceof THREE.Vector3) {
|
|
1105
|
-
let
|
|
1106
|
-
return
|
|
1105
|
+
let e = new r.mxcadassemblyimp.MdGePoint3d();
|
|
1106
|
+
return e.x = D.x, e.y = D.y, e.z = D.z, this.imp.addVertexAt(A, e, C, B, F);
|
|
1107
1107
|
} else
|
|
1108
1108
|
return this.imp.addVertexAt(A, D.imp, C, B, F);
|
|
1109
1109
|
}
|
|
@@ -1114,7 +1114,7 @@ class BD extends W {
|
|
|
1114
1114
|
return this.imp.numVerts();
|
|
1115
1115
|
}
|
|
1116
1116
|
getPointAt(D) {
|
|
1117
|
-
return { val: this.imp.getPointAt(D), ret:
|
|
1117
|
+
return { val: this.imp.getPointAt(D), ret: r.getCallResult() };
|
|
1118
1118
|
}
|
|
1119
1119
|
getBulgeAt(D) {
|
|
1120
1120
|
return this.imp.getBulgeAt(D);
|
|
@@ -1123,7 +1123,7 @@ class BD extends W {
|
|
|
1123
1123
|
return {
|
|
1124
1124
|
val1: this.imp.getStartWidthsAt(D),
|
|
1125
1125
|
val2: this.imp.getEndWidthsAt(D),
|
|
1126
|
-
ret:
|
|
1126
|
+
ret: r.getCallResult()
|
|
1127
1127
|
};
|
|
1128
1128
|
}
|
|
1129
1129
|
setPointAt(D, C) {
|
|
@@ -1133,9 +1133,9 @@ class BD extends W {
|
|
|
1133
1133
|
return this.imp.setBulgeAt(D, C);
|
|
1134
1134
|
}
|
|
1135
1135
|
}
|
|
1136
|
-
class
|
|
1136
|
+
class cD extends G {
|
|
1137
1137
|
constructor(D) {
|
|
1138
|
-
super(D), D || this.initTempObject(new
|
|
1138
|
+
super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbBlockReference());
|
|
1139
1139
|
}
|
|
1140
1140
|
get blockTableRecordId() {
|
|
1141
1141
|
return new R(this.imp.blockTableRecord(), k.kMxCAD);
|
|
@@ -1144,7 +1144,7 @@ class lD extends G {
|
|
|
1144
1144
|
this.imp.setBlockTableRecordId(D.id);
|
|
1145
1145
|
}
|
|
1146
1146
|
get position() {
|
|
1147
|
-
return new
|
|
1147
|
+
return new o(this.imp.position());
|
|
1148
1148
|
}
|
|
1149
1149
|
set position(D) {
|
|
1150
1150
|
this.imp.setPosition(D.imp);
|
|
@@ -1162,18 +1162,18 @@ class lD extends G {
|
|
|
1162
1162
|
this.imp.setRotation(D);
|
|
1163
1163
|
}
|
|
1164
1164
|
get blockTransform() {
|
|
1165
|
-
return new
|
|
1165
|
+
return new I(this.imp.blockTransform());
|
|
1166
1166
|
}
|
|
1167
1167
|
set blockTransform(D) {
|
|
1168
1168
|
this.imp.setBlockTransform(D.imp);
|
|
1169
1169
|
}
|
|
1170
1170
|
}
|
|
1171
|
-
class
|
|
1171
|
+
class yD extends G {
|
|
1172
1172
|
constructor(D) {
|
|
1173
1173
|
super(D);
|
|
1174
1174
|
}
|
|
1175
1175
|
get textPosition() {
|
|
1176
|
-
return new
|
|
1176
|
+
return new o(this.imp.textPosition());
|
|
1177
1177
|
}
|
|
1178
1178
|
set textPosition(D) {
|
|
1179
1179
|
this.imp.setTextPosition(D.imp);
|
|
@@ -1254,24 +1254,24 @@ class dD extends G {
|
|
|
1254
1254
|
this.imp.SetDimVarObjectId(D, C.id);
|
|
1255
1255
|
}
|
|
1256
1256
|
}
|
|
1257
|
-
class
|
|
1257
|
+
class mD extends yD {
|
|
1258
1258
|
constructor(D) {
|
|
1259
|
-
super(D), D || this.initTempObject(new
|
|
1259
|
+
super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbAlignedDimension());
|
|
1260
1260
|
}
|
|
1261
1261
|
get xLine1Point() {
|
|
1262
|
-
return new
|
|
1262
|
+
return new o(this.imp.xLine1Point());
|
|
1263
1263
|
}
|
|
1264
1264
|
set xLine1Point(D) {
|
|
1265
1265
|
this.imp.setXLine1Point(D.imp);
|
|
1266
1266
|
}
|
|
1267
1267
|
get xLine2Point() {
|
|
1268
|
-
return new
|
|
1268
|
+
return new o(this.imp.xLine2Point());
|
|
1269
1269
|
}
|
|
1270
1270
|
set xLine2Point(D) {
|
|
1271
1271
|
this.imp.setXLine2Point(D.imp);
|
|
1272
1272
|
}
|
|
1273
1273
|
get dimLinePoint() {
|
|
1274
|
-
return new
|
|
1274
|
+
return new o(this.imp.dimLinePoint());
|
|
1275
1275
|
}
|
|
1276
1276
|
set dimLinePoint(D) {
|
|
1277
1277
|
this.imp.setDimLinePoint(D.imp);
|
|
@@ -1283,24 +1283,24 @@ class cD extends dD {
|
|
|
1283
1283
|
this.imp.setOblique(D);
|
|
1284
1284
|
}
|
|
1285
1285
|
}
|
|
1286
|
-
class
|
|
1286
|
+
class pD extends yD {
|
|
1287
1287
|
constructor(D) {
|
|
1288
|
-
super(D), D || this.initTempObject(new
|
|
1288
|
+
super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbRotatedDimension());
|
|
1289
1289
|
}
|
|
1290
1290
|
get xLine1Point() {
|
|
1291
|
-
return new
|
|
1291
|
+
return new o(this.imp.xLine1Point());
|
|
1292
1292
|
}
|
|
1293
1293
|
set xLine1Point(D) {
|
|
1294
1294
|
this.imp.setXLine1Point(D.imp);
|
|
1295
1295
|
}
|
|
1296
1296
|
get xLine2Point() {
|
|
1297
|
-
return new
|
|
1297
|
+
return new o(this.imp.xLine2Point());
|
|
1298
1298
|
}
|
|
1299
1299
|
set xLine2Point(D) {
|
|
1300
1300
|
this.imp.setXLine2Point(D.imp);
|
|
1301
1301
|
}
|
|
1302
1302
|
get dimLinePoint() {
|
|
1303
|
-
return new
|
|
1303
|
+
return new o(this.imp.dimLinePoint());
|
|
1304
1304
|
}
|
|
1305
1305
|
set dimLinePoint(D) {
|
|
1306
1306
|
this.imp.setDimLinePoint(D.imp);
|
|
@@ -1318,15 +1318,15 @@ class mD extends dD {
|
|
|
1318
1318
|
this.imp.setRotation(D);
|
|
1319
1319
|
}
|
|
1320
1320
|
}
|
|
1321
|
-
class
|
|
1321
|
+
class FD extends W {
|
|
1322
1322
|
constructor(D) {
|
|
1323
|
-
super(D), D || this.initTempObject(new
|
|
1323
|
+
super(D), D || this.initTempObject(new r.mxcadassemblyimp.MdDbArc());
|
|
1324
1324
|
}
|
|
1325
1325
|
setCenter(D, C, B) {
|
|
1326
|
-
this.imp.setCenter(new
|
|
1326
|
+
this.imp.setCenter(new o(D, C, B).imp);
|
|
1327
1327
|
}
|
|
1328
1328
|
get center() {
|
|
1329
|
-
return new
|
|
1329
|
+
return new o(this.imp.center());
|
|
1330
1330
|
}
|
|
1331
1331
|
set center(D) {
|
|
1332
1332
|
this.imp.setCenter(D.imp);
|
|
@@ -1349,26 +1349,26 @@ class ED extends W {
|
|
|
1349
1349
|
set endAngle(D) {
|
|
1350
1350
|
this.imp.setEndAngle(D);
|
|
1351
1351
|
}
|
|
1352
|
-
computeArc(D, C, B, F, A,
|
|
1352
|
+
computeArc(D, C, B, F, A, e) {
|
|
1353
1353
|
return this.imp.computeArc(
|
|
1354
1354
|
D,
|
|
1355
1355
|
C,
|
|
1356
1356
|
B,
|
|
1357
1357
|
F,
|
|
1358
1358
|
A,
|
|
1359
|
-
|
|
1359
|
+
e
|
|
1360
1360
|
);
|
|
1361
1361
|
}
|
|
1362
1362
|
}
|
|
1363
|
-
class
|
|
1364
|
-
constructor(D, C, B, F, A,
|
|
1365
|
-
D instanceof Object ? super(D) : (super(), this.initTempObject(new
|
|
1363
|
+
class eD extends W {
|
|
1364
|
+
constructor(D, C, B, F, A, e, t, i, s) {
|
|
1365
|
+
D instanceof Object ? super(D) : (super(), this.initTempObject(new r.mxcadassemblyimp.MdDbEllipse()), typeof D == "number" && (t || (t = 1), typeof i != "number" && (i = 0), typeof s != "number" && (s = 6.283185307179586), this.imp.InitData(new o(D, C, B).imp, new y(F, A, e).imp, t, i, s)));
|
|
1366
1366
|
}
|
|
1367
1367
|
setCenter(D, C, B) {
|
|
1368
|
-
this.imp.setCenter(new
|
|
1368
|
+
this.imp.setCenter(new o(D, C, B).imp);
|
|
1369
1369
|
}
|
|
1370
1370
|
get center() {
|
|
1371
|
-
return new
|
|
1371
|
+
return new o(this.imp.center());
|
|
1372
1372
|
}
|
|
1373
1373
|
set center(D) {
|
|
1374
1374
|
this.imp.setCenter(D.imp);
|
|
@@ -1410,27 +1410,27 @@ class AD extends W {
|
|
|
1410
1410
|
this.imp.setEndAngle(D);
|
|
1411
1411
|
}
|
|
1412
1412
|
}
|
|
1413
|
-
class
|
|
1413
|
+
class wD extends G {
|
|
1414
1414
|
constructor(D, C, B) {
|
|
1415
|
-
D instanceof Object ? D instanceof
|
|
1415
|
+
D instanceof Object ? D instanceof o ? (super(), this.initTempObject(new r.mxcadassemblyimp.MdDbPoint()), this.imp.setPosition(D.imp)) : super(D) : (super(), this.initTempObject(new r.mxcadassemblyimp.MdDbPoint()), typeof D == "number" && this.imp.setPosition(new o(D, C, B).imp));
|
|
1416
1416
|
}
|
|
1417
1417
|
setPosition(D, C, B) {
|
|
1418
|
-
this.imp.setPosition(new
|
|
1418
|
+
this.imp.setPosition(new o(D, C, B).imp);
|
|
1419
1419
|
}
|
|
1420
1420
|
get position() {
|
|
1421
|
-
return new
|
|
1421
|
+
return new o(this.imp.position());
|
|
1422
1422
|
}
|
|
1423
1423
|
set position(D) {
|
|
1424
1424
|
this.imp.setPosition(D.imp);
|
|
1425
1425
|
}
|
|
1426
1426
|
}
|
|
1427
|
-
function
|
|
1427
|
+
function K(E = null) {
|
|
1428
1428
|
let D;
|
|
1429
|
-
return E == null ? D = new
|
|
1429
|
+
return E == null ? D = new r.mxcadassemblyimp.McDrawResbuf() : D = E.getImp(), D;
|
|
1430
1430
|
}
|
|
1431
|
-
class tD extends
|
|
1431
|
+
class tD extends H {
|
|
1432
1432
|
constructor(D) {
|
|
1433
|
-
super(D), D || this.initTempObject(new
|
|
1433
|
+
super(D), D || this.initTempObject(new r.mxcadassemblyimp.McDrawResbuf());
|
|
1434
1434
|
}
|
|
1435
1435
|
Clear() {
|
|
1436
1436
|
this.imp.Clear();
|
|
@@ -1439,16 +1439,16 @@ class tD extends K {
|
|
|
1439
1439
|
return this.imp.GetCount();
|
|
1440
1440
|
}
|
|
1441
1441
|
AtDouble(D) {
|
|
1442
|
-
return { val: this.imp.AtDouble(D), ret:
|
|
1442
|
+
return { val: this.imp.AtDouble(D), ret: r.getCallResult() };
|
|
1443
1443
|
}
|
|
1444
1444
|
Atlong(D) {
|
|
1445
|
-
return { val: this.imp.Atlong(D), ret:
|
|
1445
|
+
return { val: this.imp.Atlong(D), ret: r.getCallResult() };
|
|
1446
1446
|
}
|
|
1447
1447
|
AtObject(D) {
|
|
1448
1448
|
if (this.imp.AtObjectName(D) == "McDbMText") {
|
|
1449
1449
|
let B = this.imp.AtObjectMdDbMText(D);
|
|
1450
1450
|
if (B)
|
|
1451
|
-
return { val: new
|
|
1451
|
+
return { val: new BD(B), ret: r.getCallResult() };
|
|
1452
1452
|
}
|
|
1453
1453
|
return { val: void 0, ret: -1 };
|
|
1454
1454
|
}
|
|
@@ -1456,13 +1456,13 @@ class tD extends K {
|
|
|
1456
1456
|
this.imp.AddObject(D.getImp());
|
|
1457
1457
|
}
|
|
1458
1458
|
AtObjectId(D) {
|
|
1459
|
-
return { val: new R(this.imp.AtObjectId(D), k.kMxCAD), ret:
|
|
1459
|
+
return { val: new R(this.imp.AtObjectId(D), k.kMxCAD), ret: r.getCallResult() };
|
|
1460
1460
|
}
|
|
1461
1461
|
AtString(D, C = !0) {
|
|
1462
|
-
return C ? { val: P.decodeFromGb2312(this.imp.AtString(D)), ret:
|
|
1462
|
+
return C ? { val: P.decodeFromGb2312(this.imp.AtString(D)), ret: r.getCallResult() } : { val: this.imp.AtString(D), ret: r.getCallResult() };
|
|
1463
1463
|
}
|
|
1464
1464
|
AtPoint(D) {
|
|
1465
|
-
return { val: new
|
|
1465
|
+
return { val: new o(this.imp.AtPoint(D)), ret: r.getCallResult() };
|
|
1466
1466
|
}
|
|
1467
1467
|
ItemDataType() {
|
|
1468
1468
|
return this.imp.ItemDataType();
|
|
@@ -1492,7 +1492,7 @@ class tD extends K {
|
|
|
1492
1492
|
this.imp.Remove(D);
|
|
1493
1493
|
}
|
|
1494
1494
|
}
|
|
1495
|
-
class
|
|
1495
|
+
class KD {
|
|
1496
1496
|
imp;
|
|
1497
1497
|
constructor() {
|
|
1498
1498
|
}
|
|
@@ -1504,58 +1504,116 @@ class zD {
|
|
|
1504
1504
|
}
|
|
1505
1505
|
findEntAtPoint(D, C, B, F = -1, A = null) {
|
|
1506
1506
|
this.init();
|
|
1507
|
-
let
|
|
1508
|
-
return new R(
|
|
1507
|
+
let e = this.imp.findEntAtPoint(D, C, B, F, K(A));
|
|
1508
|
+
return new R(e, k.kMxCAD);
|
|
1509
1509
|
}
|
|
1510
1510
|
selectEnt(D, C = null, B = !0) {
|
|
1511
1511
|
return this.init(), new Promise(async (F) => {
|
|
1512
|
-
const A = new
|
|
1513
|
-
D && A.setMessage(D), A.setCursorType(
|
|
1514
|
-
let
|
|
1515
|
-
if (!
|
|
1512
|
+
const A = new O();
|
|
1513
|
+
D && A.setMessage(D), A.setCursorType(MD.kRect), A.setDisableOsnap(!0);
|
|
1514
|
+
let e = await A.go();
|
|
1515
|
+
if (!e) {
|
|
1516
1516
|
F([]);
|
|
1517
1517
|
return;
|
|
1518
1518
|
}
|
|
1519
1519
|
if (B)
|
|
1520
|
-
|
|
1521
|
-
let
|
|
1522
|
-
|
|
1523
|
-
|
|
1520
|
+
oD.findEntAtPoint(e).then((t) => {
|
|
1521
|
+
let i = [];
|
|
1522
|
+
t.forEach((a) => {
|
|
1523
|
+
i.push(new R(a, k.kMxDraw));
|
|
1524
1524
|
});
|
|
1525
|
-
let s = this.findEntAtPoint(
|
|
1526
|
-
s.isValid() &&
|
|
1525
|
+
let s = this.findEntAtPoint(e.x, e.y, e.z, -1, C);
|
|
1526
|
+
s.isValid() && i.push(s), F(i);
|
|
1527
1527
|
});
|
|
1528
1528
|
else {
|
|
1529
|
-
let
|
|
1530
|
-
|
|
1529
|
+
let t = [], i = this.findEntAtPoint(e.x, e.y, e.z, -1, C);
|
|
1530
|
+
i.isValid() && t.push(i), F(t);
|
|
1531
1531
|
}
|
|
1532
1532
|
});
|
|
1533
1533
|
}
|
|
1534
|
-
getCurrentSelect() {
|
|
1535
|
-
let
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
})
|
|
1539
|
-
|
|
1540
|
-
|
|
1534
|
+
getCurrentSelect(D = null) {
|
|
1535
|
+
let C = [];
|
|
1536
|
+
h.getCurrentDraw().getMxCurrentSelect().forEach((A) => {
|
|
1537
|
+
C.push(new R(A, k.kMxDraw));
|
|
1538
|
+
});
|
|
1539
|
+
let F = h.getCurrentDraw().getMxCADCurrentSelect();
|
|
1540
|
+
if (F.length <= 0)
|
|
1541
|
+
return C;
|
|
1542
|
+
if (D) {
|
|
1543
|
+
let A = new SD();
|
|
1544
|
+
F.forEach((s) => {
|
|
1545
|
+
A.append(s);
|
|
1546
|
+
});
|
|
1547
|
+
let e = new r.mxcadassemblyimp.McDrawSelSet(), t = e.getFilterEntity(A.imp, K(D));
|
|
1548
|
+
r.App.DestroyObject(e), F = [];
|
|
1549
|
+
let i = t.length();
|
|
1550
|
+
for (let s = 0; s < i; s++)
|
|
1551
|
+
F.push(t.at(s));
|
|
1552
|
+
}
|
|
1553
|
+
return F.forEach((A) => {
|
|
1554
|
+
C.push(new R(A, k.kMxCAD));
|
|
1555
|
+
}), C;
|
|
1556
|
+
}
|
|
1557
|
+
async userSelect(D, C = null) {
|
|
1558
|
+
let B = this.getCurrentSelect(C);
|
|
1559
|
+
if (B.length == 0) {
|
|
1560
|
+
let F = new _();
|
|
1561
|
+
await F.userSelect(D, C) && F.forEach((A) => {
|
|
1562
|
+
B.push(A);
|
|
1563
|
+
});
|
|
1564
|
+
}
|
|
1565
|
+
return new Promise((F) => {
|
|
1566
|
+
F(B);
|
|
1567
|
+
});
|
|
1541
1568
|
}
|
|
1542
1569
|
init() {
|
|
1543
|
-
this.imp || (this.imp = new
|
|
1570
|
+
this.imp || (this.imp = new r.mxcadassemblyimp.McDrawUtility());
|
|
1571
|
+
}
|
|
1572
|
+
async getCorner(D, C, B, F = !1) {
|
|
1573
|
+
let A = 0, e;
|
|
1574
|
+
for (; ; ) {
|
|
1575
|
+
if (!C) {
|
|
1576
|
+
let i = new V();
|
|
1577
|
+
D && i.setMessage(D), i.setDynamicInputType(dD.kDynTip), C = await i.go(), A = i.getDetailedResult();
|
|
1578
|
+
}
|
|
1579
|
+
if (!C)
|
|
1580
|
+
break;
|
|
1581
|
+
let t = await oD.getCorner(C.toVector3(), D, F, (i) => {
|
|
1582
|
+
A = i.detailedResult;
|
|
1583
|
+
});
|
|
1584
|
+
t && (e = new o(t));
|
|
1585
|
+
break;
|
|
1586
|
+
}
|
|
1587
|
+
return B && B(A), new Promise((t) => {
|
|
1588
|
+
A == Z.kEcsIn || A == Z.kNewCommadIn || A == Z.kUnknown ? t(null) : t(C && e ? { pt1: C, pt2: e } : null);
|
|
1589
|
+
});
|
|
1590
|
+
}
|
|
1591
|
+
getMcDbEntitysBoundingBox(D) {
|
|
1592
|
+
let C, B;
|
|
1593
|
+
if (D.forEach((F) => {
|
|
1594
|
+
let A = F.getMcDbEntity();
|
|
1595
|
+
if (A == null)
|
|
1596
|
+
return;
|
|
1597
|
+
let e = A.GetBoundingBox();
|
|
1598
|
+
!e.ret || (!C || !B ? (C = new THREE.Vector3(e.minPt.x, e.minPt.y, 0), B = new THREE.Vector3(e.maxPt.x, e.maxPt.y, 0)) : (C.x > e.minPt.x && (C.x = e.minPt.x), C.y > e.minPt.y && (C.y = e.minPt.y), B.x < e.maxPt.x && (B.x = e.maxPt.x), B.y < e.maxPt.y && (B.y = e.maxPt.y)));
|
|
1599
|
+
}), C && B)
|
|
1600
|
+
return { minPt: new o(C), maxPt: new o(B) };
|
|
1544
1601
|
}
|
|
1545
1602
|
}
|
|
1546
|
-
let
|
|
1547
|
-
|
|
1603
|
+
let z = new KD();
|
|
1604
|
+
var HD = /* @__PURE__ */ ((E) => (E[E.kSelected = 0] = "kSelected", E[E.kNone = 1] = "kNone", E[E.kCanceled = 2] = "kCanceled", E[E.kRejected = 3] = "kRejected", E[E.kKeyword = 4] = "kKeyword", E))(HD || {});
|
|
1605
|
+
class _ extends H {
|
|
1548
1606
|
constructor() {
|
|
1549
|
-
super(), this.initTempObject(new
|
|
1607
|
+
super(), this.initTempObject(new r.mxcadassemblyimp.McDrawSelSet());
|
|
1550
1608
|
}
|
|
1551
1609
|
allSelect(D = null) {
|
|
1552
|
-
return this.imp.allSelect(
|
|
1610
|
+
return this.imp.allSelect(K(D));
|
|
1553
1611
|
}
|
|
1554
1612
|
pointSelect(D, C, B = null, F = -1) {
|
|
1555
|
-
return this.imp.pointSelect(D, C,
|
|
1613
|
+
return this.imp.pointSelect(D, C, K(B), F);
|
|
1556
1614
|
}
|
|
1557
1615
|
crossingSelect(D, C, B, F, A = null) {
|
|
1558
|
-
return this.imp.crossingSelect(D, C, B, F,
|
|
1616
|
+
return this.imp.crossingSelect(D, C, B, F, K(A));
|
|
1559
1617
|
}
|
|
1560
1618
|
count() {
|
|
1561
1619
|
return this.imp.count();
|
|
@@ -1575,28 +1633,30 @@ class $ extends K {
|
|
|
1575
1633
|
return D;
|
|
1576
1634
|
}
|
|
1577
1635
|
async userSelect(D, C = null) {
|
|
1578
|
-
let B = new
|
|
1579
|
-
D && B.setMessage(D), B.setCursorType(
|
|
1580
|
-
let F = 0;
|
|
1636
|
+
let B = new O();
|
|
1637
|
+
D && B.setMessage(D), B.setCursorType(MD.kRect), B.setDynamicInputType(dD.kDynTip), B.setDisableOsnap(!0);
|
|
1638
|
+
let F = 0, A = K(C);
|
|
1581
1639
|
for (; ; ) {
|
|
1582
|
-
let
|
|
1583
|
-
if (F = B.getDetailedResult(), !
|
|
1640
|
+
let e = await B.go();
|
|
1641
|
+
if (F = B.getDetailedResult(), !e)
|
|
1584
1642
|
break;
|
|
1585
|
-
|
|
1586
|
-
|
|
1643
|
+
if (this.imp.userPointSelect(e.x, e.y, A) == 0)
|
|
1644
|
+
continue;
|
|
1645
|
+
let t = await oD.getCorner(e, D, !0, (i) => {
|
|
1646
|
+
F = i.detailedResult;
|
|
1587
1647
|
});
|
|
1588
1648
|
if (!t)
|
|
1589
1649
|
break;
|
|
1590
|
-
this.imp.userSelect(
|
|
1650
|
+
this.imp.userSelect(e.x, e.y, t.x, t.y, A);
|
|
1591
1651
|
}
|
|
1592
|
-
return this.imp.highlightEntity(!1), F ==
|
|
1593
|
-
|
|
1594
|
-
}) : new Promise((
|
|
1595
|
-
|
|
1652
|
+
return this.imp.highlightEntity(!1), F == Z.kEcsIn || F == Z.kNewCommadIn || F == Z.kUnknown ? new Promise((e) => {
|
|
1653
|
+
e(!1);
|
|
1654
|
+
}) : new Promise((e) => {
|
|
1655
|
+
e(!0);
|
|
1596
1656
|
});
|
|
1597
1657
|
}
|
|
1598
1658
|
}
|
|
1599
|
-
class
|
|
1659
|
+
class q {
|
|
1600
1660
|
imp;
|
|
1601
1661
|
constructor(D) {
|
|
1602
1662
|
this.imp = D;
|
|
@@ -1621,7 +1681,7 @@ class N {
|
|
|
1621
1681
|
}
|
|
1622
1682
|
setUserDraw(D) {
|
|
1623
1683
|
this.imp.setUserDraw((C, B) => {
|
|
1624
|
-
D(new
|
|
1684
|
+
D(new o(C), B);
|
|
1625
1685
|
});
|
|
1626
1686
|
}
|
|
1627
1687
|
getDetailedResult() {
|
|
@@ -1663,26 +1723,32 @@ class N {
|
|
|
1663
1723
|
isDisableOsnap() {
|
|
1664
1724
|
return this.imp.isDisableOsnap();
|
|
1665
1725
|
}
|
|
1726
|
+
userInputControls() {
|
|
1727
|
+
return this.imp.userInputControls();
|
|
1728
|
+
}
|
|
1729
|
+
setUserInputControls(D) {
|
|
1730
|
+
this.imp.setUserInputControls(D);
|
|
1731
|
+
}
|
|
1666
1732
|
}
|
|
1667
|
-
class
|
|
1733
|
+
class V extends q {
|
|
1668
1734
|
constructor() {
|
|
1669
|
-
super(new
|
|
1735
|
+
super(new O());
|
|
1670
1736
|
}
|
|
1671
1737
|
go() {
|
|
1672
1738
|
return new Promise((D) => {
|
|
1673
1739
|
this.imp.go((C) => {
|
|
1674
|
-
C != 0 ? D(null) : D(new
|
|
1740
|
+
C != 0 ? D(null) : D(new o(this.imp.value()));
|
|
1675
1741
|
});
|
|
1676
1742
|
});
|
|
1677
1743
|
}
|
|
1678
1744
|
value() {
|
|
1679
|
-
return new
|
|
1745
|
+
return new o(this.imp.value());
|
|
1680
1746
|
}
|
|
1681
1747
|
getCADValue() {
|
|
1682
1748
|
return this.imp.getCADValue();
|
|
1683
1749
|
}
|
|
1684
1750
|
basePt() {
|
|
1685
|
-
return new
|
|
1751
|
+
return new o(this.imp.basePt());
|
|
1686
1752
|
}
|
|
1687
1753
|
setBasePt(D) {
|
|
1688
1754
|
this.imp.setBasePt(D.toVector3());
|
|
@@ -1691,15 +1757,15 @@ class z extends N {
|
|
|
1691
1757
|
this.imp.setUseBasePt(D);
|
|
1692
1758
|
}
|
|
1693
1759
|
}
|
|
1694
|
-
class
|
|
1760
|
+
class ND extends q {
|
|
1695
1761
|
constructor() {
|
|
1696
|
-
super(new
|
|
1762
|
+
super(new AC());
|
|
1697
1763
|
}
|
|
1698
1764
|
value() {
|
|
1699
1765
|
return this.imp.value();
|
|
1700
1766
|
}
|
|
1701
1767
|
basePt() {
|
|
1702
|
-
return new
|
|
1768
|
+
return new o(this.imp.basePt());
|
|
1703
1769
|
}
|
|
1704
1770
|
setBasePt(D) {
|
|
1705
1771
|
this.imp.setBasePt(D.toVector3());
|
|
@@ -1711,15 +1777,15 @@ class KD extends N {
|
|
|
1711
1777
|
return this.imp.go();
|
|
1712
1778
|
}
|
|
1713
1779
|
}
|
|
1714
|
-
class
|
|
1780
|
+
class yC extends q {
|
|
1715
1781
|
constructor() {
|
|
1716
|
-
super(new
|
|
1782
|
+
super(new eC());
|
|
1717
1783
|
}
|
|
1718
1784
|
value() {
|
|
1719
1785
|
return this.imp.value();
|
|
1720
1786
|
}
|
|
1721
1787
|
basePt() {
|
|
1722
|
-
return new
|
|
1788
|
+
return new o(this.imp.basePt());
|
|
1723
1789
|
}
|
|
1724
1790
|
setBasePt(D) {
|
|
1725
1791
|
this.imp.setBasePt(D.toVector3());
|
|
@@ -1731,9 +1797,9 @@ class hC extends N {
|
|
|
1731
1797
|
return this.imp.go();
|
|
1732
1798
|
}
|
|
1733
1799
|
}
|
|
1734
|
-
class
|
|
1800
|
+
class wC extends q {
|
|
1735
1801
|
constructor() {
|
|
1736
|
-
super(new
|
|
1802
|
+
super(new tC());
|
|
1737
1803
|
}
|
|
1738
1804
|
value() {
|
|
1739
1805
|
return this.imp.value();
|
|
@@ -1742,17 +1808,17 @@ class yC extends N {
|
|
|
1742
1808
|
return this.imp.go();
|
|
1743
1809
|
}
|
|
1744
1810
|
}
|
|
1745
|
-
class gC extends
|
|
1811
|
+
class gC extends q {
|
|
1746
1812
|
constructor() {
|
|
1747
|
-
super(new
|
|
1813
|
+
super(new iC());
|
|
1748
1814
|
}
|
|
1749
1815
|
go() {
|
|
1750
1816
|
return this.imp.go();
|
|
1751
1817
|
}
|
|
1752
1818
|
}
|
|
1753
|
-
class
|
|
1819
|
+
class fC extends q {
|
|
1754
1820
|
constructor() {
|
|
1755
|
-
super(new
|
|
1821
|
+
super(new rC());
|
|
1756
1822
|
}
|
|
1757
1823
|
value() {
|
|
1758
1824
|
return this.imp.value();
|
|
@@ -1761,7 +1827,7 @@ class wC extends N {
|
|
|
1761
1827
|
return this.imp.go();
|
|
1762
1828
|
}
|
|
1763
1829
|
}
|
|
1764
|
-
class
|
|
1830
|
+
class $ {
|
|
1765
1831
|
imp;
|
|
1766
1832
|
static currentFileName;
|
|
1767
1833
|
constructor(D) {
|
|
@@ -1777,17 +1843,17 @@ class q {
|
|
|
1777
1843
|
return this.imp;
|
|
1778
1844
|
}
|
|
1779
1845
|
openWebFile(D, C, B = !0, F = "") {
|
|
1780
|
-
let A = this.imp.mxdrawObject,
|
|
1846
|
+
let A = this.imp.mxdrawObject, e = Math.round(Math.random() * 1e7);
|
|
1781
1847
|
if (C) {
|
|
1782
|
-
let
|
|
1783
|
-
A.removeEventFuction("openFileComplete",
|
|
1848
|
+
let t = (i, s) => {
|
|
1849
|
+
A.removeEventFuction("openFileComplete", t), e == s && C(i);
|
|
1784
1850
|
};
|
|
1785
|
-
A.addEvent("openFileComplete",
|
|
1851
|
+
A.addEvent("openFileComplete", t);
|
|
1786
1852
|
}
|
|
1787
|
-
return
|
|
1853
|
+
return $.currentFileName = D.split("/").pop(), this.imp.openWebFile(D, B, e, F || "");
|
|
1788
1854
|
}
|
|
1789
1855
|
getCurrentFileName() {
|
|
1790
|
-
return
|
|
1856
|
+
return $.currentFileName;
|
|
1791
1857
|
}
|
|
1792
1858
|
saveFileToUrl(D, C) {
|
|
1793
1859
|
const B = window;
|
|
@@ -1798,12 +1864,12 @@ class q {
|
|
|
1798
1864
|
saveFile(D, C, B = !0, F = !0) {
|
|
1799
1865
|
D || (D = this.getCurrentFileName()), D.indexOf(".") == -1 && (D += ".mxweb");
|
|
1800
1866
|
const A = window;
|
|
1801
|
-
return A.mx_saveFile_call = (
|
|
1802
|
-
if (C && C(
|
|
1867
|
+
return A.mx_saveFile_call = (e) => {
|
|
1868
|
+
if (C && C(e), !!e) {
|
|
1803
1869
|
if (B) {
|
|
1804
|
-
let
|
|
1805
|
-
/^((?!chrome|android).)*safari/i.test(navigator.userAgent) ?
|
|
1806
|
-
blob:
|
|
1870
|
+
let t;
|
|
1871
|
+
/^((?!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 ? Q.saveAsFileDialog({
|
|
1872
|
+
blob: t,
|
|
1807
1873
|
filename: D,
|
|
1808
1874
|
types: [{
|
|
1809
1875
|
description: "mxweb File",
|
|
@@ -1811,14 +1877,14 @@ class q {
|
|
|
1811
1877
|
"application/octet-stream": [".mxweb"]
|
|
1812
1878
|
}
|
|
1813
1879
|
}]
|
|
1814
|
-
}) :
|
|
1880
|
+
}) : Q.downloadFile(t, D);
|
|
1815
1881
|
}
|
|
1816
1882
|
A.mx_saveFile_call = null;
|
|
1817
1883
|
}
|
|
1818
1884
|
}, this.imp.saveFile(D);
|
|
1819
1885
|
}
|
|
1820
1886
|
GetDatabase() {
|
|
1821
|
-
return this.imp.McDbDatabase || (this.imp.McDbDatabase = new
|
|
1887
|
+
return this.imp.McDbDatabase || (this.imp.McDbDatabase = new hD(this.imp.GetDatabase())), this.imp.McDbDatabase;
|
|
1822
1888
|
}
|
|
1823
1889
|
GetSysVarString(D) {
|
|
1824
1890
|
return this.imp.GetSysVarString(D);
|
|
@@ -1839,7 +1905,7 @@ class q {
|
|
|
1839
1905
|
return this.imp.SetSysVarLong(D, C);
|
|
1840
1906
|
}
|
|
1841
1907
|
get DrawColor() {
|
|
1842
|
-
return new
|
|
1908
|
+
return new N(this.imp.GetDrawColor());
|
|
1843
1909
|
}
|
|
1844
1910
|
set DrawColor(D) {
|
|
1845
1911
|
this.imp.SetDrawColor(D.getImp());
|
|
@@ -1886,8 +1952,8 @@ class q {
|
|
|
1886
1952
|
AddLinetypeEx(D, C, B) {
|
|
1887
1953
|
this.imp.AddLinetypeEx(D, C, B);
|
|
1888
1954
|
}
|
|
1889
|
-
DrawLine(D, C, B, F, A,
|
|
1890
|
-
return this.imp.DrawLine(D, C, B, F, A,
|
|
1955
|
+
DrawLine(D, C, B, F, A, e) {
|
|
1956
|
+
return this.imp.DrawLine(D, C, B, F, A, e);
|
|
1891
1957
|
}
|
|
1892
1958
|
AddDimStyle(D, C, B, F, A) {
|
|
1893
1959
|
return this.imp.AddDimStyle(D, C, B, F, A);
|
|
@@ -1913,8 +1979,8 @@ class q {
|
|
|
1913
1979
|
DrawArc(D, C, B, F, A) {
|
|
1914
1980
|
return this.imp.DrawArc(D, C, B, F, A);
|
|
1915
1981
|
}
|
|
1916
|
-
DrawArc2(D, C, B, F, A,
|
|
1917
|
-
return this.imp.DrawArc2(D, C, B, F, A,
|
|
1982
|
+
DrawArc2(D, C, B, F, A, e) {
|
|
1983
|
+
return this.imp.DrawArc2(D, C, B, F, A, e);
|
|
1918
1984
|
}
|
|
1919
1985
|
DrawCircle(D, C, B) {
|
|
1920
1986
|
return this.imp.DrawCircle(D, C, B);
|
|
@@ -1922,35 +1988,35 @@ class q {
|
|
|
1922
1988
|
DrawEllipse(D, C, B, F, A) {
|
|
1923
1989
|
return this.imp.DrawEllipse(D, C, B, F, A);
|
|
1924
1990
|
}
|
|
1925
|
-
DrawEllipseArc(D, C, B, F, A,
|
|
1926
|
-
return this.imp.DrawEllipseArc(D, C, B, F, A,
|
|
1991
|
+
DrawEllipseArc(D, C, B, F, A, e, t) {
|
|
1992
|
+
return this.imp.DrawEllipseArc(D, C, B, F, A, e, t);
|
|
1927
1993
|
}
|
|
1928
1994
|
DrawPoint(D, C) {
|
|
1929
1995
|
return this.imp.DrawPoint(D, C);
|
|
1930
1996
|
}
|
|
1931
|
-
DrawSolid(D, C, B, F, A,
|
|
1932
|
-
return this.imp.DrawSolid(D, C, B, F, A,
|
|
1997
|
+
DrawSolid(D, C, B, F, A, e, t, i) {
|
|
1998
|
+
return this.imp.DrawSolid(D, C, B, F, A, e, t, i);
|
|
1933
1999
|
}
|
|
1934
|
-
DrawMText(D, C, B, F, A,
|
|
1935
|
-
return this.imp.DrawMText(D, C, B, F, A,
|
|
2000
|
+
DrawMText(D, C, B, F, A, e, t) {
|
|
2001
|
+
return this.imp.DrawMText(D, C, B, F, A, e, t);
|
|
1936
2002
|
}
|
|
1937
|
-
DrawText(D, C, B, F, A,
|
|
1938
|
-
return this.imp.DrawTextDrawText(D, C, B, F, A,
|
|
2003
|
+
DrawText(D, C, B, F, A, e, t) {
|
|
2004
|
+
return this.imp.DrawTextDrawText(D, C, B, F, A, e, t);
|
|
1939
2005
|
}
|
|
1940
2006
|
DrawBlockReference(D, C, B, F, A) {
|
|
1941
2007
|
return this.imp.DrawBlockReference(D, C, B, F, A);
|
|
1942
2008
|
}
|
|
1943
|
-
DrawDimAligned(D, C, B, F, A,
|
|
1944
|
-
return this.imp.DrawDimAligned(D, C, B, F, A,
|
|
2009
|
+
DrawDimAligned(D, C, B, F, A, e) {
|
|
2010
|
+
return this.imp.DrawDimAligned(D, C, B, F, A, e);
|
|
1945
2011
|
}
|
|
1946
|
-
DrawDimAngular(D, C, B, F, A,
|
|
1947
|
-
return this.imp.DrawDimAngular(D, C, B, F, A,
|
|
2012
|
+
DrawDimAngular(D, C, B, F, A, e, t, i) {
|
|
2013
|
+
return this.imp.DrawDimAngular(D, C, B, F, A, e, t, i);
|
|
1948
2014
|
}
|
|
1949
2015
|
DrawDimDiametric(D, C, B, F, A) {
|
|
1950
2016
|
return this.imp.DrawDimDiametric(D, C, B, F, A);
|
|
1951
2017
|
}
|
|
1952
|
-
DrawDimRotated(D, C, B, F, A,
|
|
1953
|
-
return this.imp.DrawDimRotated(D, C, B, F, A,
|
|
2018
|
+
DrawDimRotated(D, C, B, F, A, e, t) {
|
|
2019
|
+
return this.imp.DrawDimRotated(D, C, B, F, A, e, t);
|
|
1954
2020
|
}
|
|
1955
2021
|
DrawDimOrdinate(D, C, B, F, A) {
|
|
1956
2022
|
return this.imp.DrawDimOrdinate(D, C, B, F, A);
|
|
@@ -1986,28 +2052,28 @@ class q {
|
|
|
1986
2052
|
return this.imp.DrawEntity(D.getImp());
|
|
1987
2053
|
}
|
|
1988
2054
|
ObjectIdToObject(D) {
|
|
1989
|
-
return
|
|
2055
|
+
return r.App.ObjectIdToObject(D);
|
|
1990
2056
|
}
|
|
1991
2057
|
DestroyObject(D) {
|
|
1992
|
-
!D ||
|
|
2058
|
+
!D || r.App.getImp().DestroyObject(D);
|
|
1993
2059
|
}
|
|
1994
2060
|
GetAllLayoutName() {
|
|
1995
|
-
return new
|
|
2061
|
+
return new ID(this.imp.GetAllLayoutName());
|
|
1996
2062
|
}
|
|
1997
2063
|
SetCurrentLayout(D) {
|
|
1998
2064
|
this.imp.SetCurrentLayout(P.encodeToGb2312(D));
|
|
1999
2065
|
}
|
|
2000
2066
|
GetMxCpp() {
|
|
2001
|
-
return
|
|
2067
|
+
return r;
|
|
2002
2068
|
}
|
|
2003
2069
|
docCoord2Cad(D) {
|
|
2004
|
-
return new
|
|
2070
|
+
return new o(this.imp.mxdrawObject.docCoord2Cad(D.x, D.y, D.z));
|
|
2005
2071
|
}
|
|
2006
2072
|
}
|
|
2007
|
-
class
|
|
2073
|
+
class _D {
|
|
2008
2074
|
imp;
|
|
2009
2075
|
init(D) {
|
|
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),
|
|
2076
|
+
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), o.kOrigin = new o(0, 0, 0), I.kIdentity = new I();
|
|
2011
2077
|
}
|
|
2012
2078
|
getImp() {
|
|
2013
2079
|
return this.imp;
|
|
@@ -2016,15 +2082,15 @@ class HD {
|
|
|
2016
2082
|
return this.imp.getLastCallResult();
|
|
2017
2083
|
}
|
|
2018
2084
|
CreateMxCAD(D, C, B, F, A) {
|
|
2019
|
-
let
|
|
2020
|
-
return new
|
|
2085
|
+
let e = this.imp.CreateMxDraw(D, C, B, F, A);
|
|
2086
|
+
return new $(e);
|
|
2021
2087
|
}
|
|
2022
2088
|
DestroyObject(D) {
|
|
2023
2089
|
this.imp.DestroyObject(D);
|
|
2024
2090
|
}
|
|
2025
2091
|
GetCurrentMxCAD() {
|
|
2026
2092
|
let D = this.imp.GetCurrentMxDraw();
|
|
2027
|
-
return D.McObject || (D.McObject = new
|
|
2093
|
+
return D.McObject || (D.McObject = new $(this.imp.GetCurrentMxDraw())), D.McObject;
|
|
2028
2094
|
}
|
|
2029
2095
|
mcedRGB2Index(D, C, B, F = !0) {
|
|
2030
2096
|
return this.imp.mcedRGB2Index(D, C, B, F);
|
|
@@ -2038,37 +2104,37 @@ class HD {
|
|
|
2038
2104
|
let C = this.imp.ObjectIdToObjectName(D);
|
|
2039
2105
|
if (C == "McDbLine") {
|
|
2040
2106
|
let B = this.imp.ObjectIdToMdDbLine(D);
|
|
2041
|
-
return new
|
|
2107
|
+
return new CD(B);
|
|
2042
2108
|
} else if (C == "McDbText") {
|
|
2043
2109
|
let B = this.imp.ObjectIdToMdDbText(D);
|
|
2044
|
-
return new
|
|
2110
|
+
return new lD(B);
|
|
2045
2111
|
} else if (C == "McDbPolyline") {
|
|
2046
2112
|
let B = this.imp.ObjectIdToMdDbPolyline(D);
|
|
2047
|
-
return new
|
|
2113
|
+
return new ED(B);
|
|
2048
2114
|
} else if (C == "McDbCircle") {
|
|
2049
2115
|
let B = this.imp.ObjectIdToMdDbCircle(D);
|
|
2050
|
-
return new
|
|
2116
|
+
return new U(B);
|
|
2051
2117
|
} else if (C == "McDbArc") {
|
|
2052
2118
|
let B = this.imp.ObjectIdToMdDbArc(D);
|
|
2053
|
-
return new
|
|
2119
|
+
return new FD(B);
|
|
2054
2120
|
} else if (C == "McDbBlockReference") {
|
|
2055
2121
|
let B = this.imp.ObjectIdToMdDbBlockReference(D);
|
|
2056
|
-
return new
|
|
2122
|
+
return new cD(B);
|
|
2057
2123
|
} else if (C == "McDbAlignedDimension") {
|
|
2058
2124
|
let B = this.imp.ObjectIdToMdDbAlignedDimension(D);
|
|
2059
|
-
return new
|
|
2125
|
+
return new mD(B);
|
|
2060
2126
|
} else if (C == "McDbRotatedDimension") {
|
|
2061
2127
|
let B = this.imp.ObjectIdToMdDbRotatedDimension(D);
|
|
2062
|
-
return new
|
|
2128
|
+
return new pD(B);
|
|
2063
2129
|
} else if (C == "McDbMText") {
|
|
2064
2130
|
let B = this.imp.ObjectIdToMdDbMText(D);
|
|
2065
|
-
return new
|
|
2131
|
+
return new BD(B);
|
|
2066
2132
|
} else if (C == "McDbEllipse") {
|
|
2067
2133
|
let B = this.imp.ObjectIdToMdDbEllipse(D);
|
|
2068
|
-
return new
|
|
2134
|
+
return new eD(B);
|
|
2069
2135
|
} else if (C == "McDbPoint") {
|
|
2070
2136
|
let B = this.imp.ObjectIdToMdDbPoint(D);
|
|
2071
|
-
return new
|
|
2137
|
+
return new wD(B);
|
|
2072
2138
|
} else if (this.imp.ObjectIdIsKindOf(D, "McDbCurve")) {
|
|
2073
2139
|
let B = this.imp.ObjectIdToMdDbCurve(D);
|
|
2074
2140
|
return new W(B);
|
|
@@ -2077,14 +2143,14 @@ class HD {
|
|
|
2077
2143
|
return new G(B);
|
|
2078
2144
|
} else {
|
|
2079
2145
|
let B = this.imp.ObjectIdToMdObject(D);
|
|
2080
|
-
return new
|
|
2146
|
+
return new j(B);
|
|
2081
2147
|
}
|
|
2082
2148
|
}
|
|
2083
2149
|
CreateCloneObject(D) {
|
|
2084
2150
|
if (!D)
|
|
2085
2151
|
return null;
|
|
2086
2152
|
let C = D.getObjectName(), B = null;
|
|
2087
|
-
return C == "McDbLine" ? B = new
|
|
2153
|
+
return C == "McDbLine" ? B = new CD() : C == "McDbText" ? B = new lD() : C == "McDbPolyline" ? B = new ED() : C == "McDbCircle" ? B = new U() : C == "McDbArc" ? B = new FD() : C == "McDbBlockReference" ? B = new cD() : C == "McDbAlignedDimension" ? B = new mD() : C == "McDbRotatedDimension" ? B = new pD() : C == "McDbMText" ? B = new BD() : D.isKindOf("McDbCurve") ? (B = new W(), B.initTempObject(new r.mxcadassemblyimp.MdDbCurve())) : D.isKindOf("McDbEntity") && (B = new G(), B.initTempObject(new r.mxcadassemblyimp.MdDbEntity())), B ? (B.getImp().ConnectionTempObject(D), r.App.DestroyObject(D), B) : new j(D);
|
|
2088
2154
|
}
|
|
2089
2155
|
setFontFilePath(D) {
|
|
2090
2156
|
this.imp.setFontFilePath(D);
|
|
@@ -2095,9 +2161,9 @@ class HD {
|
|
|
2095
2161
|
});
|
|
2096
2162
|
}
|
|
2097
2163
|
}
|
|
2098
|
-
class
|
|
2164
|
+
class qD {
|
|
2099
2165
|
mxcadassemblyimp;
|
|
2100
|
-
App = new
|
|
2166
|
+
App = new _D();
|
|
2101
2167
|
getCallResult() {
|
|
2102
2168
|
return this.App.getLastCallResult();
|
|
2103
2169
|
}
|
|
@@ -2106,7 +2172,7 @@ class ND {
|
|
|
2106
2172
|
let F = D.z || 0;
|
|
2107
2173
|
D = h.getCurrentDraw().docCoord2Cad(D.x, D.y, F);
|
|
2108
2174
|
}
|
|
2109
|
-
let B = new
|
|
2175
|
+
let B = new o();
|
|
2110
2176
|
return D && D.x && D.y && (B.x = D.x, B.y = D.y, D.z && (B.y = D.z)), B;
|
|
2111
2177
|
}
|
|
2112
2178
|
GetCurrentMxCAD() {
|
|
@@ -2116,43 +2182,43 @@ class ND {
|
|
|
2116
2182
|
return this.App.GetCurrentMxCAD().GetDatabase();
|
|
2117
2183
|
}
|
|
2118
2184
|
}
|
|
2119
|
-
const
|
|
2185
|
+
const gD = "1.0.81", xC = "SharedArrayBuffer" in window, iD = document.currentScript && /unpkg\.com\/mxcad/.test(document.currentScript.src), bC = (E, D = self.location.href) => iD ? `https://unpkg.com/mxcad@${gD}/dist/wasm/2d-st/${E}` : D + E, MC = (E, D = self.location.href) => iD ? `https://unpkg.com/mxcad@${gD}/dist/wasm/2d/${E}` : D + E, PC = (E, D = self.location.href) => iD ? `https://unpkg.com/mxcad@${gD}/dist/wasm/3d/${E}` : D + E, ZD = (E) => new Promise((D, C) => {
|
|
2120
2186
|
const B = document.createElement("script");
|
|
2121
2187
|
B.src = E, B.type = "text/javascript", B.crossOrigin = "anonymous", document.body.appendChild(B), B.onload = () => {
|
|
2122
2188
|
D();
|
|
2123
2189
|
}, B.onerror = (F) => {
|
|
2124
2190
|
C(F);
|
|
2125
2191
|
};
|
|
2126
|
-
}),
|
|
2192
|
+
}), TC = async (E, D, C) => {
|
|
2127
2193
|
const { locateFile: B } = C, F = B(E + ".js");
|
|
2128
|
-
return await
|
|
2194
|
+
return await ZD(F), await globalThis[D](C);
|
|
2129
2195
|
};
|
|
2130
|
-
let
|
|
2131
|
-
async function
|
|
2132
|
-
return new Promise(async (A,
|
|
2196
|
+
let r;
|
|
2197
|
+
async function $D(E, D = xC || !iD ? bC : MC, C, B, F) {
|
|
2198
|
+
return new Promise(async (A, e) => {
|
|
2133
2199
|
try {
|
|
2134
|
-
if (
|
|
2135
|
-
return E && E(
|
|
2136
|
-
const
|
|
2200
|
+
if (r || (r = new qD()), r.mxcadassemblyimp)
|
|
2201
|
+
return E && E(r), A(r);
|
|
2202
|
+
const i = await TC("mxdrawassembly_min", "mxdrawassembly", {
|
|
2137
2203
|
locateFile: D,
|
|
2138
2204
|
wasmBinary: C
|
|
2139
2205
|
});
|
|
2140
|
-
|
|
2141
|
-
let s = new
|
|
2142
|
-
B && s.setFontFilePath(B), s.Init(),
|
|
2143
|
-
} catch (
|
|
2144
|
-
t
|
|
2206
|
+
r.mxcadassemblyimp = i;
|
|
2207
|
+
let s = new i.McApp();
|
|
2208
|
+
B && s.setFontFilePath(B), s.Init(), r.App.init(s), F && r.App.addNetworkLoadingFont(F), E && E(r), A(r);
|
|
2209
|
+
} catch (t) {
|
|
2210
|
+
e(t);
|
|
2145
2211
|
}
|
|
2146
2212
|
});
|
|
2147
2213
|
}
|
|
2148
|
-
const
|
|
2214
|
+
const kC = (E) => {
|
|
2149
2215
|
let D = null;
|
|
2150
2216
|
if (typeof E == "string" ? D = document.querySelector(E) : E instanceof HTMLCanvasElement && (D = E), !!D)
|
|
2151
2217
|
return D.id || (D.id = Math.random().toString(16).slice(2)), D.id;
|
|
2152
|
-
},
|
|
2218
|
+
}, RC = (E, D) => new Promise((C, B) => {
|
|
2153
2219
|
try {
|
|
2154
2220
|
h.createMxObject({
|
|
2155
|
-
canvasId:
|
|
2221
|
+
canvasId: kC(E),
|
|
2156
2222
|
isCPPMxCAD: !0,
|
|
2157
2223
|
userIdentitySign: D,
|
|
2158
2224
|
callback(F) {
|
|
@@ -2164,28 +2230,28 @@ const TC = (E) => {
|
|
|
2164
2230
|
} catch (F) {
|
|
2165
2231
|
B(F);
|
|
2166
2232
|
}
|
|
2167
|
-
}),
|
|
2168
|
-
PD.state.MxFun || await
|
|
2169
|
-
const { multipleSelect: D, openParameter: C, networkFonts: B, fontspath: F, locateFile: A, wasmBinary:
|
|
2233
|
+
}), OC = async (E) => {
|
|
2234
|
+
PD.state.MxFun || await sC();
|
|
2235
|
+
const { multipleSelect: D, openParameter: C, networkFonts: B, fontspath: F, locateFile: A, wasmBinary: e, canvas: t, userIdentitySign: i, onOpenFileComplete: s, fileUrl: a, onInit: u = () => {
|
|
2170
2236
|
h.setIniset({
|
|
2171
2237
|
EnableIntelliSelect: !0,
|
|
2172
2238
|
IntelliSelectType: 1,
|
|
2173
2239
|
multipleSelect: !!D
|
|
2174
2240
|
});
|
|
2175
2241
|
} } = E || {};
|
|
2176
|
-
await
|
|
2177
|
-
}, A,
|
|
2178
|
-
let l = await
|
|
2242
|
+
await $D(() => {
|
|
2243
|
+
}, A, e, F, B), u();
|
|
2244
|
+
let l = await RC(t, i);
|
|
2179
2245
|
const m = h.getMxFunTHREE();
|
|
2180
2246
|
let n = new m.Vector2();
|
|
2181
2247
|
l.getRenderer().getSize(n);
|
|
2182
|
-
const c =
|
|
2248
|
+
const c = r.App.CreateMxCAD(n.width, n.height, l.getCanvas().id, l.isWebgl2(), l.getId());
|
|
2183
2249
|
return l.initMxCpp(c), l.addEvent("openFileComplete", () => {
|
|
2184
2250
|
s && s();
|
|
2185
|
-
}),
|
|
2251
|
+
}), a && c.openWebFile(a, void 0, !0, C), c;
|
|
2186
2252
|
};
|
|
2187
|
-
async function
|
|
2188
|
-
const E = new
|
|
2253
|
+
async function LC() {
|
|
2254
|
+
const E = new O();
|
|
2189
2255
|
E.setMessage(`
|
|
2190
2256
|
\u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
|
|
2191
2257
|
let D = await E.go();
|
|
@@ -2195,7 +2261,7 @@ async function SC() {
|
|
|
2195
2261
|
if (C.length <= 0)
|
|
2196
2262
|
return;
|
|
2197
2263
|
let B = h.screenCoordLong2Doc(50);
|
|
2198
|
-
C =
|
|
2264
|
+
C = Q.b64Encode(C);
|
|
2199
2265
|
const F = {
|
|
2200
2266
|
postx: D.x,
|
|
2201
2267
|
posty: D.y,
|
|
@@ -2204,77 +2270,77 @@ async function SC() {
|
|
|
2204
2270
|
};
|
|
2205
2271
|
h.call("Mx_Text", F);
|
|
2206
2272
|
}
|
|
2207
|
-
class
|
|
2273
|
+
class vC extends TD {
|
|
2208
2274
|
getGripPoints() {
|
|
2209
2275
|
const { x: D, y: C, z: B } = this.center;
|
|
2210
|
-
let F = new THREE.Vector3(D, C + this.radius, B), A = new THREE.Vector3(D, C - this.radius, B),
|
|
2211
|
-
return [this.center, F, A,
|
|
2276
|
+
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);
|
|
2277
|
+
return [this.center, F, A, e, t];
|
|
2212
2278
|
}
|
|
2213
2279
|
moveGripPointsAt(D, C) {
|
|
2214
|
-
const [B, F, A,
|
|
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 =
|
|
2280
|
+
const [B, F, A, e, t] = this.getGripPoints();
|
|
2281
|
+
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;
|
|
2216
2282
|
}
|
|
2217
2283
|
}
|
|
2218
|
-
const
|
|
2219
|
-
const [D, C, B] = E, { x: F, y: A, z:
|
|
2220
|
-
return new THREE.Vector3(
|
|
2284
|
+
const xD = (E) => {
|
|
2285
|
+
const [D, C, B] = E, { x: F, y: A, z: e } = D, { x: t, y: i, z: s } = C, { x: a, y: u, z: l } = B, m = A * s - i * e - A * l + u * e + i * l - u * s, n = -(F * s - t * e - F * l + a * e + t * l - a * s), c = F * i - t * A - F * u + a * A + t * u - a * i, w = -(F * i * l - F * u * s - t * A * l + t * u * e + a * A * s - a * i * e), f = 2 * (t - F), p = 2 * (i - A), d = 2 * (s - e), b = F * F + A * A + e * e - t * t - i * i - s * s, x = 2 * (a - F), g = 2 * (u - A), M = 2 * (l - e), v = F * F + A * A + e * e - a * a - u * u - l * l, Y = -(n * d * v - n * M * b - p * c * v + p * M * w + g * c * b - g * d * w) / (m * p * M - m * g * d - f * n * M + f * g * c + x * n * d - x * p * c), EC = (m * d * v - m * M * b - f * c * v + f * M * w + x * c * b - x * d * w) / (m * p * M - m * g * d - f * n * M + f * g * c + x * n * d - x * p * c), FC = -(m * p * v - m * g * b - f * n * v + f * g * w + x * n * b - x * p * w) / (m * p * M - m * g * d - f * n * M + f * g * c + x * n * d - x * p * c);
|
|
2286
|
+
return new THREE.Vector3(Y, EC, FC);
|
|
2221
2287
|
};
|
|
2222
|
-
function
|
|
2223
|
-
const E = new
|
|
2224
|
-
let D = new
|
|
2225
|
-
|
|
2288
|
+
function JD() {
|
|
2289
|
+
const E = new O();
|
|
2290
|
+
let D = new vC(), C = r.GetCurrentDatabase().GetCurrentlyDrawColor();
|
|
2291
|
+
S.use(D), D.closed = !1, D.setColor(C);
|
|
2226
2292
|
let B = 0, F = "default", A = !0;
|
|
2227
|
-
const
|
|
2293
|
+
const e = () => {
|
|
2228
2294
|
E.setUserDraw(
|
|
2229
2295
|
(n, c) => {
|
|
2230
2296
|
D.radius = A ? D.center.distanceTo(n) : D.center.distanceTo(n) / 2, c.drawCustomEntity(D), c.drawLine(D.center, n);
|
|
2231
2297
|
}
|
|
2232
2298
|
);
|
|
2233
|
-
},
|
|
2299
|
+
}, t = (n) => {
|
|
2234
2300
|
if (F === "default") {
|
|
2235
2301
|
if (n === T.kOk) {
|
|
2236
2302
|
if (B === 0)
|
|
2237
2303
|
E.setMessage(`
|
|
2238
|
-
\u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(),
|
|
2304
|
+
\u6307\u5B9A\u5706\u7684\u534A\u5F84:`), E.setKeyWords("[\u76F4\u5F84(D)]"), D.center = E.value(), e();
|
|
2239
2305
|
else if (B === 1)
|
|
2240
|
-
return
|
|
2306
|
+
return r.GetCurrentMxCAD().DrawEntity(new U(D.center.x, D.center.y, 0, D.radius)), !0;
|
|
2241
2307
|
B++;
|
|
2242
2308
|
}
|
|
2243
|
-
n === T.kKeyWord && E.isKeyWordPicked("D") && (A = !1,
|
|
2309
|
+
n === T.kKeyWord && E.isKeyWordPicked("D") && (A = !1, e(), E.setMessage(`
|
|
2244
2310
|
\u6307\u5B9A\u5706\u7684\u76F4\u5F84:`), E.setKeyWords(""));
|
|
2245
2311
|
}
|
|
2246
2312
|
};
|
|
2247
|
-
let
|
|
2313
|
+
let i = [];
|
|
2248
2314
|
const s = (n) => {
|
|
2249
2315
|
if (F === "3P" && (E.setMessage(`
|
|
2250
2316
|
\u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E00\u4E2A\u70B9:`), n === T.kOk)) {
|
|
2251
|
-
if (B === 0 && (
|
|
2252
|
-
|
|
2317
|
+
if (B === 0 && (i.push(E.value()), E.setUserDraw((c, w) => {
|
|
2318
|
+
w.drawLine(i[0], c);
|
|
2253
2319
|
}), E.setMessage(`
|
|
2254
|
-
\u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), B === 1 && (
|
|
2255
|
-
const [
|
|
2256
|
-
D.center =
|
|
2257
|
-
|
|
2320
|
+
\u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E8C\u4E2A\u70B9:`)), B === 1 && (i.push(E.value()), E.setUserDraw((c, w) => {
|
|
2321
|
+
const [f, p] = i, d = c;
|
|
2322
|
+
D.center = xD([
|
|
2323
|
+
f,
|
|
2258
2324
|
p,
|
|
2259
2325
|
d
|
|
2260
|
-
]), D.radius = D.center.distanceTo(
|
|
2326
|
+
]), D.radius = D.center.distanceTo(f), w.drawCustomEntity(D);
|
|
2261
2327
|
}), E.setMessage(`
|
|
2262
2328
|
\u6307\u5B9A\u5706\u4E0A\u7684\u7B2C\u4E09\u4E2A\u70B9:`)), B === 2)
|
|
2263
|
-
return
|
|
2329
|
+
return i.push(E.value()), D.center = xD(i), D.radius = D.center.distanceTo(i[0]), r.GetCurrentMxCAD().DrawEntity(new U(D.center.x, D.center.y, 0, D.radius)), !0;
|
|
2264
2330
|
B++;
|
|
2265
2331
|
}
|
|
2266
2332
|
};
|
|
2267
|
-
let
|
|
2333
|
+
let a;
|
|
2268
2334
|
const u = (n, c) => {
|
|
2269
2335
|
new THREE.Line3(n, c).getCenter(D.center), D.radius = c.distanceTo(n) / 2;
|
|
2270
2336
|
}, l = (n) => {
|
|
2271
2337
|
if (F === "2P" && (E.setMessage(`
|
|
2272
2338
|
\u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E00\u4E2A\u7AEF\u70B9:`), n === T.kOk)) {
|
|
2273
|
-
if (B === 0 && (
|
|
2274
|
-
u(
|
|
2339
|
+
if (B === 0 && (a = E.value(), E.setUserDraw((c, w) => {
|
|
2340
|
+
u(a, c), w.drawCustomEntity(D), w.drawLine(a, c);
|
|
2275
2341
|
}), E.setMessage(`
|
|
2276
2342
|
\u6307\u5B9A\u5706\u76F4\u5F84\u7684\u7B2C\u4E8C\u4E2A\u7AEF\u70B9:`)), B === 1)
|
|
2277
|
-
return u(
|
|
2343
|
+
return u(a, E.value()), r.GetCurrentMxCAD().DrawEntity(new U(D.center.x, D.center.y, 0, D.radius)), !0;
|
|
2278
2344
|
B++;
|
|
2279
2345
|
}
|
|
2280
2346
|
}, m = (n) => {
|
|
@@ -2295,7 +2361,7 @@ function ZD() {
|
|
|
2295
2361
|
\u6307\u5B9A\u5706\u7684\u5706\u5FC3\u6216[\u4E09\u70B9(3P)/\u4E24\u70B9(2P)/\u5207\u70B9\u3001\u5207\u70B9\u3001\u534A\u5F84(T)]:`
|
|
2296
2362
|
), E.setKeyWords("3P 2P T"), E.goWhile(
|
|
2297
2363
|
(n) => {
|
|
2298
|
-
if (n === T.kKeyWord && (E.isKeyWordPicked("3P") ? F = "3P" : E.isKeyWordPicked("2P") ? F = "2P" : E.isKeyWordPicked("T") && (F = "T")),
|
|
2364
|
+
if (n === T.kKeyWord && (E.isKeyWordPicked("3P") ? F = "3P" : E.isKeyWordPicked("2P") ? F = "2P" : E.isKeyWordPicked("T") && (F = "T")), t(n))
|
|
2299
2365
|
return { exit: !0 };
|
|
2300
2366
|
if (s(n))
|
|
2301
2367
|
return { exit: !0 };
|
|
@@ -2305,20 +2371,20 @@ function ZD() {
|
|
|
2305
2371
|
return { exit: !0 };
|
|
2306
2372
|
},
|
|
2307
2373
|
(n) => {
|
|
2308
|
-
n === T.kCancel &&
|
|
2374
|
+
n === T.kCancel && r.GetCurrentMxCAD().DrawEntity(new U(D.center.x, D.center.y, 0, D.radius));
|
|
2309
2375
|
}
|
|
2310
2376
|
);
|
|
2311
2377
|
}
|
|
2312
2378
|
h.on("init", () => {
|
|
2313
|
-
h.addCommand("Mx_Circle",
|
|
2379
|
+
h.addCommand("Mx_Circle", JD);
|
|
2314
2380
|
});
|
|
2315
2381
|
const bD = () => PD.state.MxFun.stopRunCommand();
|
|
2316
2382
|
function sD(E, D, C, B) {
|
|
2317
2383
|
const F = E - C, A = D - B;
|
|
2318
|
-
let
|
|
2319
|
-
return F == 0 ?
|
|
2384
|
+
let e = 0;
|
|
2385
|
+
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;
|
|
2320
2386
|
}
|
|
2321
|
-
const
|
|
2387
|
+
const L = (E, D, C) => {
|
|
2322
2388
|
const B = () => {
|
|
2323
2389
|
E.go((F) => {
|
|
2324
2390
|
if (F === T.kKeyWord && C() && B(), F === T.kOk && D() && B(), F === T.kNone && B(), F === T.kCancel)
|
|
@@ -2327,56 +2393,56 @@ const O = (E, D, C) => {
|
|
|
2327
2393
|
};
|
|
2328
2394
|
return B;
|
|
2329
2395
|
};
|
|
2330
|
-
async function
|
|
2331
|
-
const E = new
|
|
2332
|
-
let D = new
|
|
2396
|
+
async function YD() {
|
|
2397
|
+
const E = new O();
|
|
2398
|
+
let D = new DD(), C = r.GetCurrentDatabase().GetCurrentlyDrawColor(), B = [];
|
|
2333
2399
|
E.setMessage(`
|
|
2334
2400
|
\u6307\u5B9A\u7B2C\u4E00\u70B9:`);
|
|
2335
2401
|
let F = await E.go();
|
|
2336
2402
|
if (!F)
|
|
2337
2403
|
return;
|
|
2338
|
-
E.setUserDraw((
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
}),
|
|
2404
|
+
E.setUserDraw((e, t) => {
|
|
2405
|
+
t.setColor(C), B.forEach((i) => {
|
|
2406
|
+
i.color = C, t.drawCustomEntity(i);
|
|
2407
|
+
}), t.drawLine(F, e);
|
|
2342
2408
|
});
|
|
2343
2409
|
const A = () => {
|
|
2344
2410
|
E.setMessage(`
|
|
2345
2411
|
\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)]");
|
|
2346
2412
|
};
|
|
2347
2413
|
A(), E.goWhile(
|
|
2348
|
-
(
|
|
2349
|
-
if (
|
|
2414
|
+
(e) => {
|
|
2415
|
+
if (e === T.kOk && (D = new DD(), S.use(D), D.pt1 = F, D.pt2 = E.value(), F = D.pt2.clone(), B.push(D), A()), e === T.kKeyWord) {
|
|
2350
2416
|
if (E.isKeyWordPicked("E"))
|
|
2351
2417
|
bD();
|
|
2352
2418
|
else if (E.isKeyWordPicked("C")) {
|
|
2353
|
-
const
|
|
2354
|
-
return
|
|
2419
|
+
const t = new DD();
|
|
2420
|
+
return t.pt1 = F.clone(), t.pt2 = B[0].pt1.clone(), S.use(t), B.push(t), F = t.pt2.clone(), bD(), { exit: !0 };
|
|
2355
2421
|
} else if (E.isKeyWordPicked("U")) {
|
|
2356
|
-
const
|
|
2357
|
-
|
|
2422
|
+
const t = B.pop();
|
|
2423
|
+
t && (F = t.pt1);
|
|
2358
2424
|
}
|
|
2359
2425
|
}
|
|
2360
2426
|
},
|
|
2361
|
-
(
|
|
2362
|
-
|
|
2427
|
+
(e) => (e != T.kCancel && B.forEach((t) => {
|
|
2428
|
+
r.GetCurrentMxCAD().DrawEntity(new CD(t.pt1.x, t.pt1.y, 0, t.pt2.x, t.pt2.y, 0));
|
|
2363
2429
|
}), { exit: !0 })
|
|
2364
2430
|
);
|
|
2365
2431
|
}
|
|
2366
|
-
async function
|
|
2367
|
-
let E = new
|
|
2432
|
+
async function SC() {
|
|
2433
|
+
let E = new V();
|
|
2368
2434
|
for (E.setMessage("\u6307\u5B9A\u70B9"); ; ) {
|
|
2369
2435
|
let D = await E.go();
|
|
2370
2436
|
if (D == null)
|
|
2371
2437
|
break;
|
|
2372
|
-
|
|
2438
|
+
r.GetCurrentMxCAD().DrawEntity(new wD(D));
|
|
2373
2439
|
}
|
|
2374
2440
|
}
|
|
2375
2441
|
h.on("init", () => {
|
|
2376
|
-
h.addCommand("Mx_Line",
|
|
2442
|
+
h.addCommand("Mx_Line", YD), h.addCommand("Mx_Point", SC);
|
|
2377
2443
|
});
|
|
2378
|
-
async function
|
|
2379
|
-
const E = new
|
|
2444
|
+
async function IC() {
|
|
2445
|
+
const E = new O();
|
|
2380
2446
|
E.setMessage(`
|
|
2381
2447
|
\u6307\u5B9A\u63D2\u5165\u4F4D\u7F6E:`);
|
|
2382
2448
|
let D = await E.go();
|
|
@@ -2387,7 +2453,7 @@ async function vC() {
|
|
|
2387
2453
|
if (C.length <= 0)
|
|
2388
2454
|
return;
|
|
2389
2455
|
let B = h.screenCoordLong2Doc(50);
|
|
2390
|
-
C =
|
|
2456
|
+
C = Q.b64Encode(C);
|
|
2391
2457
|
const F = {
|
|
2392
2458
|
postx: D.x,
|
|
2393
2459
|
posty: D.y,
|
|
@@ -2396,11 +2462,11 @@ async function vC() {
|
|
|
2396
2462
|
};
|
|
2397
2463
|
h.call("Mx_MText", F);
|
|
2398
2464
|
}
|
|
2399
|
-
async function
|
|
2400
|
-
const E = new
|
|
2401
|
-
let D =
|
|
2402
|
-
const C = new
|
|
2403
|
-
|
|
2465
|
+
async function QD() {
|
|
2466
|
+
const E = new O();
|
|
2467
|
+
let D = r.GetCurrentDatabase().GetCurrentlyDrawColor();
|
|
2468
|
+
const C = new nC();
|
|
2469
|
+
S.use(C), C.color = D, E.setMessage(`
|
|
2404
2470
|
\u6307\u5B9A\u8D77\u70B9:`);
|
|
2405
2471
|
let B;
|
|
2406
2472
|
E.setUserDraw((F, A) => {
|
|
@@ -2416,59 +2482,59 @@ async function JD() {
|
|
|
2416
2482
|
},
|
|
2417
2483
|
(F) => {
|
|
2418
2484
|
if (F != T.kCancel) {
|
|
2419
|
-
let A =
|
|
2420
|
-
for (let
|
|
2421
|
-
|
|
2422
|
-
A.DrawEntity(
|
|
2485
|
+
let A = r.GetCurrentMxCAD(), e = new ED();
|
|
2486
|
+
for (let t = 0; t < C.points.length; t++)
|
|
2487
|
+
e.addVertexAt(C.points[t]);
|
|
2488
|
+
A.DrawEntity(e);
|
|
2423
2489
|
}
|
|
2424
2490
|
}
|
|
2425
2491
|
);
|
|
2426
2492
|
}
|
|
2427
2493
|
h.on("init", () => {
|
|
2428
|
-
h.addCommand("Mx_Pline",
|
|
2494
|
+
h.addCommand("Mx_Pline", QD);
|
|
2429
2495
|
});
|
|
2430
|
-
async function
|
|
2431
|
-
const E = new
|
|
2496
|
+
async function XD() {
|
|
2497
|
+
const E = new O();
|
|
2432
2498
|
E.setMessage(`
|
|
2433
2499
|
\u6307\u5B9A\u4E00\u70B9:`);
|
|
2434
|
-
let D = await E.go(), C = new
|
|
2500
|
+
let D = await E.go(), C = new U();
|
|
2435
2501
|
C.setCenter(D.x, D.y, D.z);
|
|
2436
|
-
let B = 5, F =
|
|
2437
|
-
E.setUserDraw((A,
|
|
2438
|
-
|
|
2439
|
-
let
|
|
2502
|
+
let B = 5, F = r.GetCurrentDatabase().GetCurrentlyDrawColor();
|
|
2503
|
+
E.setUserDraw((A, e) => {
|
|
2504
|
+
e.setColor(F), C.radius = D.distanceTo(A);
|
|
2505
|
+
let t = C.getEndParam().val, s = C.getDistAtParam(t).val / B, a = 0, u = new THREE.Vector3(), l = new THREE.Vector3();
|
|
2440
2506
|
for (let m = 0; m < B; m++) {
|
|
2441
|
-
let n = C.getPointAtDist(
|
|
2442
|
-
|
|
2507
|
+
let n = C.getPointAtDist(a).val;
|
|
2508
|
+
a += s, m > 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), m == 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);
|
|
2443
2509
|
}
|
|
2444
2510
|
}), E.setMessage(`
|
|
2445
2511
|
\u6307\u5B9A\u4E8C\u70B9:`), await E.go(), E.drawReserve();
|
|
2446
2512
|
}
|
|
2447
|
-
h.addCommand("Mx_Polygon",
|
|
2513
|
+
h.addCommand("Mx_Polygon", XD);
|
|
2448
2514
|
function jC(E, D, C) {
|
|
2449
|
-
const B = E.x, F = D.x, A = C.x,
|
|
2450
|
-
return new THREE.Vector3(
|
|
2515
|
+
const B = E.x, F = D.x, A = C.x, e = E.y, t = D.y, i = C.y, s = B - F, a = e - t, u = B - A, l = e - i, m = (B * B - F * F + (e * e - t * t)) / 2, n = (B * B - A * A + (e * e - i * i)) / 2, c = a * u - s * l, w = -(l * m - a * n) / c, f = -(s * n - u * m) / c;
|
|
2516
|
+
return new THREE.Vector3(w, f, 0);
|
|
2451
2517
|
}
|
|
2452
|
-
function
|
|
2518
|
+
function GC(E, D) {
|
|
2453
2519
|
const C = E.x, B = E.y, F = D.x, A = D.y;
|
|
2454
2520
|
return Math.sqrt((C - F) * (C - F) + (B - A) * (B - A));
|
|
2455
2521
|
}
|
|
2456
|
-
function
|
|
2522
|
+
function VC(E, D, C) {
|
|
2457
2523
|
let B;
|
|
2458
2524
|
E < C ? B = C - E : B = C - E + 360;
|
|
2459
2525
|
let F;
|
|
2460
2526
|
return E < D ? F = D - E : F = D - E + 360, F > B;
|
|
2461
2527
|
}
|
|
2462
2528
|
function nD(E, D, C) {
|
|
2463
|
-
const B = E.x, F = D.x, A = E.y,
|
|
2464
|
-
let
|
|
2465
|
-
return
|
|
2466
|
-
sin:
|
|
2467
|
-
cos:
|
|
2529
|
+
const B = E.x, F = D.x, A = E.y, e = D.y;
|
|
2530
|
+
let t, i, s;
|
|
2531
|
+
return t = (A - e) / C, i = (B - F) / C, i >= 0.99999 && (i = 0.99999), i <= -0.99999 && (i = -0.99999), s = Math.acos(i), s = s / Math.PI * 180, t < -0.05 && (s = 360 - s), {
|
|
2532
|
+
sin: t,
|
|
2533
|
+
cos: i,
|
|
2468
2534
|
angle: s
|
|
2469
2535
|
};
|
|
2470
2536
|
}
|
|
2471
|
-
class
|
|
2537
|
+
class fD extends TD {
|
|
2472
2538
|
constructor() {
|
|
2473
2539
|
super(), this._propertyDbKeys = [...this._propertyDbKeys, "bulge"];
|
|
2474
2540
|
}
|
|
@@ -2476,24 +2542,24 @@ class gD extends TD {
|
|
|
2476
2542
|
return "MxDbCircle";
|
|
2477
2543
|
}
|
|
2478
2544
|
create() {
|
|
2479
|
-
return new
|
|
2545
|
+
return new fD();
|
|
2480
2546
|
}
|
|
2481
2547
|
getArcBulge(D, C, B) {
|
|
2482
2548
|
const F = D.distanceTo(C);
|
|
2483
|
-
let
|
|
2549
|
+
let t = 2 * new THREE.Line3(D, C).getCenter(
|
|
2484
2550
|
new THREE.Vector3()
|
|
2485
2551
|
).distanceTo(B) / F;
|
|
2486
|
-
return
|
|
2552
|
+
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;
|
|
2487
2553
|
}
|
|
2488
2554
|
getArcMidPoint(D, C, B, F, A) {
|
|
2489
|
-
const
|
|
2490
|
-
let
|
|
2491
|
-
const s = new THREE.Vector3(),
|
|
2492
|
-
s.x =
|
|
2555
|
+
const e = D, t = B * Math.PI / 180;
|
|
2556
|
+
let i = F * Math.PI / 180;
|
|
2557
|
+
const s = new THREE.Vector3(), a = new THREE.Vector3();
|
|
2558
|
+
s.x = e.x + C * Math.cos(t), s.y = e.y + C * Math.sin(t), a.x = e.x + C * Math.cos(i), a.y = e.y + C * Math.sin(i);
|
|
2493
2559
|
const u = C;
|
|
2494
|
-
(A ? B < F : B > F) && (
|
|
2560
|
+
(A ? B < F : B > F) && (i += Math.PI * 2);
|
|
2495
2561
|
const l = new THREE.Vector3();
|
|
2496
|
-
return l.x =
|
|
2562
|
+
return l.x = e.x + u * Math.cos((t + i) / 2), l.y = e.y + u * Math.sin((t + i) / 2), [s, l, a, this.center];
|
|
2497
2563
|
}
|
|
2498
2564
|
getGripPoints() {
|
|
2499
2565
|
return this.getArcMidPoint(
|
|
@@ -2512,25 +2578,25 @@ class gD extends TD {
|
|
|
2512
2578
|
}
|
|
2513
2579
|
upDatePoints(D, C, B) {
|
|
2514
2580
|
D[C].add(B);
|
|
2515
|
-
const [F, A,
|
|
2516
|
-
this.center = jC(F,
|
|
2517
|
-
const
|
|
2518
|
-
this.clockwise =
|
|
2519
|
-
|
|
2520
|
-
|
|
2581
|
+
const [F, A, e] = D;
|
|
2582
|
+
this.center = jC(F, e, A), this.radius = GC(A, this.center);
|
|
2583
|
+
const t = nD(F, this.center, this.radius), i = nD(e, this.center, this.radius), s = nD(A, this.center, this.radius);
|
|
2584
|
+
this.clockwise = VC(
|
|
2585
|
+
i.angle,
|
|
2586
|
+
t.angle,
|
|
2521
2587
|
s.angle
|
|
2522
|
-
), this.startAngle = THREE.MathUtils.degToRad(
|
|
2588
|
+
), this.startAngle = THREE.MathUtils.degToRad(t.angle), this.endAngle = THREE.MathUtils.degToRad(i.angle);
|
|
2523
2589
|
}
|
|
2524
2590
|
}
|
|
2525
|
-
async function
|
|
2526
|
-
let E =
|
|
2527
|
-
const D = new
|
|
2591
|
+
async function DC() {
|
|
2592
|
+
let E = r.GetCurrentDatabase().GetCurrentlyDrawColor();
|
|
2593
|
+
const D = new O();
|
|
2528
2594
|
D.setMessage(`
|
|
2529
2595
|
\u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setKeyWords("[\u5706\u5FC3(C)]");
|
|
2530
|
-
let C = new
|
|
2531
|
-
C.closed = !1,
|
|
2596
|
+
let C = new fD();
|
|
2597
|
+
C.closed = !1, S.use(C);
|
|
2532
2598
|
let B, F, A;
|
|
2533
|
-
const
|
|
2599
|
+
const e = L(
|
|
2534
2600
|
D,
|
|
2535
2601
|
() => {
|
|
2536
2602
|
B = D.value(), D.setMessage(`
|
|
@@ -2540,44 +2606,44 @@ async function QD() {
|
|
|
2540
2606
|
},
|
|
2541
2607
|
() => {
|
|
2542
2608
|
if (D.isKeyWordPicked("C")) {
|
|
2543
|
-
const p = new
|
|
2609
|
+
const p = new X();
|
|
2544
2610
|
p.color = E, C.center = D.value(), p.center = D.value(), D.setMessage(`
|
|
2545
|
-
\u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), D.setKeyWords(""),
|
|
2611
|
+
\u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3:`), D.setKeyWords(""), i();
|
|
2546
2612
|
} else
|
|
2547
2613
|
return !0;
|
|
2548
2614
|
}
|
|
2549
2615
|
);
|
|
2550
|
-
let
|
|
2551
|
-
const
|
|
2616
|
+
let t;
|
|
2617
|
+
const i = L(
|
|
2552
2618
|
D,
|
|
2553
2619
|
() => {
|
|
2554
|
-
|
|
2620
|
+
t = D.value(), A = new X(), A.closed = !1, S.use(A), A.color = E, A.center = t, C.center = t, D.setMessage(`
|
|
2555
2621
|
\u6307\u5B9A\u5706\u5F27\u7684\u8D77\u70B9:`), D.setUserDraw((p, d) => {
|
|
2556
|
-
d.drawCustomEntity(A), d.setColor(E), d.drawLine(
|
|
2622
|
+
d.drawCustomEntity(A), d.setColor(E), d.drawLine(t, p);
|
|
2557
2623
|
}), u();
|
|
2558
2624
|
},
|
|
2559
2625
|
() => {
|
|
2560
2626
|
}
|
|
2561
2627
|
);
|
|
2562
|
-
let s,
|
|
2563
|
-
const u =
|
|
2628
|
+
let s, a;
|
|
2629
|
+
const u = L(
|
|
2564
2630
|
D,
|
|
2565
2631
|
() => {
|
|
2566
2632
|
s = D.value(), A.endPoint = s, D.setMessage(
|
|
2567
2633
|
`
|
|
2568
2634
|
\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)]:`
|
|
2569
|
-
), D.setKeyWords("A L R"),
|
|
2570
|
-
A.startPoint = p,
|
|
2635
|
+
), D.setKeyWords("A L R"), a = new DD(), a.setDashLineDisplay(!0), a.setDashArray(0.05), a.setLineWidth(2), a.setColor("#ffd30d"), a.pt1 = A.center, D.setUserDraw((p, d) => {
|
|
2636
|
+
A.startPoint = p, a.pt2 = p, d.drawCustomEntity(A), d.drawCustomEntity(a);
|
|
2571
2637
|
}), m();
|
|
2572
2638
|
},
|
|
2573
2639
|
() => {
|
|
2574
2640
|
}
|
|
2575
2641
|
);
|
|
2576
2642
|
let l;
|
|
2577
|
-
const m =
|
|
2643
|
+
const m = L(
|
|
2578
2644
|
D,
|
|
2579
2645
|
() => {
|
|
2580
|
-
l = D.value(), A.startPoint = l, A.endPoint = s,
|
|
2646
|
+
l = D.value(), A.startPoint = l, A.endPoint = s, w.DrawArc(A.center.x, A.center.y, A.radius, A.startAngle, A.endAngle);
|
|
2581
2647
|
},
|
|
2582
2648
|
() => {
|
|
2583
2649
|
if (D.isKeyWordPicked("A"))
|
|
@@ -2585,14 +2651,14 @@ async function QD() {
|
|
|
2585
2651
|
`
|
|
2586
2652
|
\u6307\u5B9A\u5706\u5F27\u7684\u5939\u89D2(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u4FEE\u6539\u534A\u5F84(R)]:`
|
|
2587
2653
|
), D.setKeyWords("R"), D.setUserDraw((p, d) => {
|
|
2588
|
-
A.startPoint = p, d.drawCustomEntity(A), d.drawCustomEntity(
|
|
2654
|
+
A.startPoint = p, d.drawCustomEntity(A), d.drawCustomEntity(a);
|
|
2589
2655
|
}), !0;
|
|
2590
2656
|
if (D.isKeyWordPicked("L"))
|
|
2591
2657
|
return D.setMessage(
|
|
2592
2658
|
`
|
|
2593
2659
|
\u6307\u5B9A\u5706\u5F27\u7684\u5939\u89D2(\u6309\u4F4F ctrl \u952E\u53D6\u76F8\u53CD\u65B9\u5411)\u6216 [\u4FEE\u6539\u534A\u5F84(R)]:`
|
|
2594
2660
|
), D.setKeyWords("R"), D.setUserDraw((p, d) => {
|
|
2595
|
-
A.startPoint = p, d.drawCustomEntity(A), d.drawCustomEntity(
|
|
2661
|
+
A.startPoint = p, d.drawCustomEntity(A), d.drawCustomEntity(a);
|
|
2596
2662
|
}), !0;
|
|
2597
2663
|
if (D.isKeyWordPicked("R"))
|
|
2598
2664
|
D.setMessage(
|
|
@@ -2606,36 +2672,36 @@ async function QD() {
|
|
|
2606
2672
|
}
|
|
2607
2673
|
);
|
|
2608
2674
|
let n;
|
|
2609
|
-
const c =
|
|
2675
|
+
const c = L(
|
|
2610
2676
|
D,
|
|
2611
2677
|
() => {
|
|
2612
2678
|
n = D.value(), D.setMessage(`
|
|
2613
|
-
\u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), F = new
|
|
2679
|
+
\u6307\u5B9A\u5706\u5F27\u7684\u7AEF\u70B9:`), F = new oC(), F.color = E, F.autoClockwise = !0, F.closed = !1, S.use(F), D.setUserDraw((p, d) => {
|
|
2614
2680
|
F.point1 = B, F.point3 = n, F.point2 = p, d.drawCustomEntity(F);
|
|
2615
|
-
}),
|
|
2681
|
+
}), f();
|
|
2616
2682
|
},
|
|
2617
2683
|
() => {
|
|
2618
2684
|
if (D.isKeyWordPicked("C"))
|
|
2619
|
-
A = new
|
|
2685
|
+
A = new X(), A.closed = !1, S.use(A), A.color = E, D.setMessage(`
|
|
2620
2686
|
\u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((p, d) => {
|
|
2621
2687
|
A.startPoint = B, d.drawLine(p, A.startPoint);
|
|
2622
|
-
}),
|
|
2688
|
+
}), i();
|
|
2623
2689
|
else if (D.isKeyWordPicked("E"))
|
|
2624
|
-
A = new
|
|
2690
|
+
A = new X(), A.closed = !1, S.use(A), A.color = E, D.setMessage(`
|
|
2625
2691
|
\u6307\u5B9A\u5706\u5F27\u7684\u5706\u5FC3`), D.setKeyWords(""), D.setUserDraw((p, d) => {
|
|
2626
2692
|
A.startPoint = B, d.drawLine(p, A.startPoint);
|
|
2627
|
-
}),
|
|
2693
|
+
}), i();
|
|
2628
2694
|
else
|
|
2629
2695
|
return !0;
|
|
2630
2696
|
}
|
|
2631
2697
|
);
|
|
2632
|
-
let
|
|
2633
|
-
const
|
|
2698
|
+
let w = r.GetCurrentMxCAD();
|
|
2699
|
+
const f = L(
|
|
2634
2700
|
D,
|
|
2635
2701
|
() => {
|
|
2636
2702
|
F.point1 = B, F.point2 = D.value(), F.point3 = n;
|
|
2637
|
-
let p = new
|
|
2638
|
-
p.computeArc(F.point1.x, F.point1.y, F.point3.x, F.point3.y, F.point2.x, F.point2.y),
|
|
2703
|
+
let p = new FD();
|
|
2704
|
+
p.computeArc(F.point1.x, F.point1.y, F.point3.x, F.point3.y, F.point2.x, F.point2.y), w.DrawEntity(p);
|
|
2639
2705
|
},
|
|
2640
2706
|
() => {
|
|
2641
2707
|
if (D.isKeyWordPicked("C"))
|
|
@@ -2646,99 +2712,99 @@ async function QD() {
|
|
|
2646
2712
|
return !0;
|
|
2647
2713
|
}
|
|
2648
2714
|
);
|
|
2649
|
-
|
|
2715
|
+
e();
|
|
2650
2716
|
}
|
|
2651
2717
|
h.on("init", () => {
|
|
2652
|
-
h.addCommand("Mx_Arc",
|
|
2718
|
+
h.addCommand("Mx_Arc", DC);
|
|
2653
2719
|
});
|
|
2654
|
-
function
|
|
2655
|
-
const E = new
|
|
2656
|
-
D.closed = !1,
|
|
2720
|
+
function CC() {
|
|
2721
|
+
const E = new O(), D = new aC();
|
|
2722
|
+
D.closed = !1, S.use(D), E.setMessage(`
|
|
2657
2723
|
\u6307\u5B9A\u692D\u5706\u7684\u8F74\u7AEF\u70B9`), E.setKeyWords("[\u4E2D\u5FC3\u70B9(C)]");
|
|
2658
2724
|
let C, B = new THREE.Vector3();
|
|
2659
|
-
|
|
2725
|
+
L(
|
|
2660
2726
|
E,
|
|
2661
2727
|
() => {
|
|
2662
|
-
C = E.value(), E.setUserDraw((s,
|
|
2728
|
+
C = E.value(), E.setUserDraw((s, a) => {
|
|
2663
2729
|
const u = new THREE.Line3(C, s);
|
|
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),
|
|
2730
|
+
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), a.drawLine(s, C);
|
|
2665
2731
|
}), E.setMessage(`
|
|
2666
2732
|
\u6307\u5B9A\u692D\u5706\u5F27\u8F74\u7684\u53E6\u4E00\u4E2A\u7AEF\u70B9:`), E.setKeyWords(""), A();
|
|
2667
2733
|
},
|
|
2668
2734
|
() => {
|
|
2669
2735
|
}
|
|
2670
2736
|
)();
|
|
2671
|
-
const A =
|
|
2737
|
+
const A = L(
|
|
2672
2738
|
E,
|
|
2673
2739
|
() => {
|
|
2674
|
-
E.setUserDraw((s,
|
|
2675
|
-
D.yRadius = B.distanceTo(s),
|
|
2740
|
+
E.setUserDraw((s, a) => {
|
|
2741
|
+
D.yRadius = B.distanceTo(s), a.drawLine(B, s), a.drawCustomEntity(D);
|
|
2676
2742
|
}), E.setMessage(`
|
|
2677
|
-
\u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), E.setKeyWords(""),
|
|
2743
|
+
\u6307\u5B9A\u53E6\u4E00\u6761\u534A\u8F74\u957F\u5EA6`), E.setKeyWords(""), e();
|
|
2678
2744
|
},
|
|
2679
2745
|
() => {
|
|
2680
2746
|
}
|
|
2681
|
-
),
|
|
2747
|
+
), e = L(
|
|
2682
2748
|
E,
|
|
2683
2749
|
() => {
|
|
2684
2750
|
E.setMessage(`
|
|
2685
|
-
\u6307\u5B9A\u8D77\u59CB\u89D2\u5EA6`), E.setKeyWords(""), E.setUserDraw((s,
|
|
2686
|
-
D.startAngle = sD(s.x, s.y, B.x, B.y) - D.rotation,
|
|
2687
|
-
}),
|
|
2751
|
+
\u6307\u5B9A\u8D77\u59CB\u89D2\u5EA6`), E.setKeyWords(""), E.setUserDraw((s, a) => {
|
|
2752
|
+
D.startAngle = sD(s.x, s.y, B.x, B.y) - D.rotation, a.drawLine(B, s), a.drawCustomEntity(D);
|
|
2753
|
+
}), t();
|
|
2688
2754
|
},
|
|
2689
2755
|
() => {
|
|
2690
2756
|
}
|
|
2691
|
-
),
|
|
2757
|
+
), t = L(
|
|
2692
2758
|
E,
|
|
2693
2759
|
() => {
|
|
2694
|
-
E.setUserDraw((s,
|
|
2695
|
-
D.endAngle = sD(s.x, s.y, B.x, B.y) - D.rotation,
|
|
2760
|
+
E.setUserDraw((s, a) => {
|
|
2761
|
+
D.endAngle = sD(s.x, s.y, B.x, B.y) - D.rotation, a.drawLine(B, s), a.drawCustomEntity(D);
|
|
2696
2762
|
}), E.setMessage(`
|
|
2697
|
-
\u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), E.setKeyWords(""),
|
|
2763
|
+
\u6307\u5B9A\u7EC8\u6B62\u89D2\u5EA6`), E.setKeyWords(""), i();
|
|
2698
2764
|
},
|
|
2699
2765
|
() => {
|
|
2700
2766
|
}
|
|
2701
|
-
),
|
|
2767
|
+
), i = L(
|
|
2702
2768
|
E,
|
|
2703
2769
|
() => {
|
|
2704
2770
|
let s = new y(D.xRadius, 0, 0);
|
|
2705
|
-
s.rotateBy(D.rotation, y.kZAxis),
|
|
2771
|
+
s.rotateBy(D.rotation, y.kZAxis), r.GetCurrentMxCAD().DrawEntity(new eD(D.center.x, D.center.y, 0, s.x, s.y, 0, D.yRadius / D.xRadius, D.startAngle, D.endAngle));
|
|
2706
2772
|
},
|
|
2707
2773
|
() => {
|
|
2708
2774
|
}
|
|
2709
2775
|
);
|
|
2710
2776
|
}
|
|
2711
|
-
function
|
|
2712
|
-
const E = new
|
|
2713
|
-
let B =
|
|
2777
|
+
function UC() {
|
|
2778
|
+
const E = new O(), D = new uC(), C = new lC();
|
|
2779
|
+
let B = r.GetCurrentDatabase().GetCurrentlyDrawColor();
|
|
2714
2780
|
C.setColor(B), E.setMessage(`
|
|
2715
2781
|
\u70B9\u51FB\u5F00\u59CB\u7ED8\u5236\u692D\u5706:`), E.go(() => {
|
|
2716
2782
|
C.point1 = E.value(), D.setDraw((F) => {
|
|
2717
2783
|
C.point2 = F, D.drawCustomEntity(C);
|
|
2718
2784
|
}), E.setUserDraw(D), E.setMessage(`
|
|
2719
2785
|
\u518D\u6B21\u70B9\u51FB\u7ED3\u675F\u7ED8\u5236\u692D\u5706:`), E.go(() => {
|
|
2720
|
-
|
|
2786
|
+
r.GetCurrentMxCAD().DrawEntity(new eD(C.center.x, C.center.y, 0, C.xRadius, 0, 0, C.yRadius / C.xRadius));
|
|
2721
2787
|
});
|
|
2722
2788
|
});
|
|
2723
2789
|
}
|
|
2724
2790
|
h.on("init", () => {
|
|
2725
|
-
h.addCommand("Mx_EllipseArc",
|
|
2791
|
+
h.addCommand("Mx_EllipseArc", CC), h.addCommand("Mx_Ellipse", UC);
|
|
2726
2792
|
});
|
|
2727
|
-
async function
|
|
2728
|
-
let E =
|
|
2793
|
+
async function BC() {
|
|
2794
|
+
let E = z.getCurrentSelect();
|
|
2729
2795
|
if (E.length > 0) {
|
|
2730
2796
|
E.forEach((C) => {
|
|
2731
2797
|
C.erase();
|
|
2732
2798
|
});
|
|
2733
2799
|
return;
|
|
2734
2800
|
}
|
|
2735
|
-
let D = new
|
|
2801
|
+
let D = new _();
|
|
2736
2802
|
!await D.userSelect(`
|
|
2737
2803
|
\u9009\u62E9\u5220\u9664\u5BF9\u8C61`) || D.forEach((C) => {
|
|
2738
2804
|
C.erase();
|
|
2739
2805
|
});
|
|
2740
2806
|
}
|
|
2741
|
-
function
|
|
2807
|
+
function rD(E) {
|
|
2742
2808
|
let D, C;
|
|
2743
2809
|
if (E.forEach((B) => {
|
|
2744
2810
|
let F = B.getMcDbEntity();
|
|
@@ -2751,169 +2817,169 @@ function iD(E) {
|
|
|
2751
2817
|
}
|
|
2752
2818
|
async function WC() {
|
|
2753
2819
|
let E;
|
|
2754
|
-
for (; E =
|
|
2755
|
-
let
|
|
2756
|
-
if (!await
|
|
2757
|
-
\u9009\u62E9\u590D\u5236\u5BF9\u8C61`) || (E =
|
|
2820
|
+
for (; E = z.getCurrentSelect(), !(E.length > 0); ) {
|
|
2821
|
+
let e = new _();
|
|
2822
|
+
if (!await e.userSelect(`
|
|
2823
|
+
\u9009\u62E9\u590D\u5236\u5BF9\u8C61`) || (E = e.getIds(), E.length == 0))
|
|
2758
2824
|
return;
|
|
2759
2825
|
break;
|
|
2760
2826
|
}
|
|
2761
2827
|
let D, C;
|
|
2762
2828
|
if (E.length >= 10) {
|
|
2763
|
-
let
|
|
2764
|
-
|
|
2829
|
+
let e = rD(E);
|
|
2830
|
+
e && (D = e.minPt, C = e.maxPt);
|
|
2765
2831
|
}
|
|
2766
|
-
let B = new
|
|
2832
|
+
let B = new V();
|
|
2767
2833
|
B.setMessage("\u6307\u5B9A\u57FA\u70B9");
|
|
2768
2834
|
let F = await B.go();
|
|
2769
2835
|
if (!F)
|
|
2770
2836
|
return;
|
|
2771
|
-
B.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), B.setBasePt(F), B.setUseBasePt(!0), B.setUserDraw((
|
|
2837
|
+
B.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), B.setBasePt(F), B.setUseBasePt(!0), B.setUserDraw((e, t) => {
|
|
2772
2838
|
if (D && C) {
|
|
2773
|
-
let
|
|
2774
|
-
|
|
2839
|
+
let i = e.x - F.x, s = e.y - F.y, a = new THREE.Vector3(D.x + i, C.y + s, 0), u = new THREE.Vector3(C.x + i, D.y + s, 0), l = new THREE.Vector3(a.x, u.y, 0), m = new THREE.Vector3(u.x, a.y, 0);
|
|
2840
|
+
t.drawLine(m, a), t.drawLine(a, l), t.drawLine(l, u), t.drawLine(u, m);
|
|
2775
2841
|
}
|
|
2776
|
-
for (let
|
|
2777
|
-
let s = E[
|
|
2778
|
-
!s || (s.Move(F,
|
|
2842
|
+
for (let i = 0; i < E.length && i < 10; i++) {
|
|
2843
|
+
let s = E[i].clone();
|
|
2844
|
+
!s || (s.Move(F, e), t.drawMcDbEntity(s));
|
|
2779
2845
|
}
|
|
2780
2846
|
});
|
|
2781
2847
|
let A = await B.go();
|
|
2782
2848
|
if (!!A)
|
|
2783
|
-
for (let
|
|
2784
|
-
let
|
|
2785
|
-
!
|
|
2849
|
+
for (let e = 0; e < E.length; e++) {
|
|
2850
|
+
let t = E[e].clone();
|
|
2851
|
+
!t || (t.Move(F, A), r.GetCurrentMxCAD().DrawEntity(t));
|
|
2786
2852
|
}
|
|
2787
2853
|
}
|
|
2788
|
-
async function
|
|
2854
|
+
async function zC() {
|
|
2789
2855
|
let E;
|
|
2790
|
-
for (; E =
|
|
2791
|
-
let
|
|
2792
|
-
if (!await
|
|
2793
|
-
\u9009\u62E9\u79FB\u52A8\u5BF9\u8C61`) || (E =
|
|
2856
|
+
for (; E = z.getCurrentSelect(), !(E.length > 0); ) {
|
|
2857
|
+
let e = new _();
|
|
2858
|
+
if (!await e.userSelect(`
|
|
2859
|
+
\u9009\u62E9\u79FB\u52A8\u5BF9\u8C61`) || (E = e.getIds(), E.length == 0))
|
|
2794
2860
|
return;
|
|
2795
2861
|
break;
|
|
2796
2862
|
}
|
|
2797
2863
|
let D, C;
|
|
2798
2864
|
if (E.length >= 10) {
|
|
2799
|
-
let
|
|
2800
|
-
|
|
2865
|
+
let e = rD(E);
|
|
2866
|
+
e && (D = e.minPt, C = e.maxPt);
|
|
2801
2867
|
}
|
|
2802
|
-
let B = new
|
|
2868
|
+
let B = new V();
|
|
2803
2869
|
B.setMessage("\u6307\u5B9A\u57FA\u70B9");
|
|
2804
2870
|
let F = await B.go();
|
|
2805
2871
|
if (!F)
|
|
2806
2872
|
return;
|
|
2807
|
-
B.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), B.setBasePt(F), B.setUseBasePt(!0), B.setUserDraw((
|
|
2873
|
+
B.setMessage("\u6307\u5B9A\u79FB\u52A8\u5230\u70B9"), B.setBasePt(F), B.setUseBasePt(!0), B.setUserDraw((e, t) => {
|
|
2808
2874
|
if (D && C) {
|
|
2809
|
-
let
|
|
2810
|
-
|
|
2875
|
+
let i = e.x - F.x, s = e.y - F.y, a = new THREE.Vector3(D.x + i, C.y + s, 0), u = new THREE.Vector3(C.x + i, D.y + s, 0), l = new THREE.Vector3(a.x, u.y, 0), m = new THREE.Vector3(u.x, a.y, 0);
|
|
2876
|
+
t.drawLine(m, a), t.drawLine(a, l), t.drawLine(l, u), t.drawLine(u, m);
|
|
2811
2877
|
}
|
|
2812
|
-
for (let
|
|
2813
|
-
let s = E[
|
|
2814
|
-
!s || (s.Move(F,
|
|
2878
|
+
for (let i = 0; i < E.length && i < 10; i++) {
|
|
2879
|
+
let s = E[i].clone();
|
|
2880
|
+
!s || (s.Move(F, e), t.drawMcDbEntity(s));
|
|
2815
2881
|
}
|
|
2816
2882
|
});
|
|
2817
2883
|
let A = await B.go();
|
|
2818
2884
|
if (!!A)
|
|
2819
|
-
for (let
|
|
2820
|
-
let
|
|
2821
|
-
!
|
|
2885
|
+
for (let e = 0; e < E.length; e++) {
|
|
2886
|
+
let t = E[e].getMcDbObject();
|
|
2887
|
+
!t || t.Move(F, A);
|
|
2822
2888
|
}
|
|
2823
2889
|
}
|
|
2824
|
-
async function
|
|
2890
|
+
async function KC() {
|
|
2825
2891
|
let E;
|
|
2826
|
-
for (; E =
|
|
2827
|
-
let l = new
|
|
2892
|
+
for (; E = z.getCurrentSelect(), !(E.length > 0); ) {
|
|
2893
|
+
let l = new _();
|
|
2828
2894
|
if (!await l.userSelect(`
|
|
2829
2895
|
\u9009\u62E9\u65CB\u8F6C\u5BF9\u8C61`) || (E = l.getIds(), E.length == 0))
|
|
2830
2896
|
return;
|
|
2831
2897
|
break;
|
|
2832
2898
|
}
|
|
2833
|
-
let D, C, B =
|
|
2899
|
+
let D, C, B = rD(E);
|
|
2834
2900
|
B && (D = B.minPt, C = B.maxPt);
|
|
2835
|
-
let F = new
|
|
2901
|
+
let F = new V();
|
|
2836
2902
|
F.setMessage("\u6307\u5B9A\u57FA\u70B9");
|
|
2837
2903
|
let A = await F.go();
|
|
2838
2904
|
if (A == null)
|
|
2839
2905
|
return;
|
|
2840
2906
|
F.setMessage("\u6307\u5B9A\u65CB\u8F6C\u89D2\u5EA6"), F.setBasePt(A), F.setUseBasePt(!0), F.setUserDraw((l, m) => {
|
|
2841
|
-
let n = l, c = A,
|
|
2842
|
-
if (p.setToRotation(
|
|
2843
|
-
let d = new
|
|
2844
|
-
d.transformBy(p),
|
|
2907
|
+
let n = l, c = A, f = n.sub(c).angleTo2(y.kXAxis, y.kNegateZAxis), p = new I();
|
|
2908
|
+
if (p.setToRotation(f, y.kZAxis, c), D && C) {
|
|
2909
|
+
let d = new o(D.x, C.y, 0), b = new o(C.x, D.y, 0), x = new o(d.x, b.y, 0), g = new o(b.x, d.y, 0);
|
|
2910
|
+
d.transformBy(p), b.transformBy(p), x.transformBy(p), g.transformBy(p), m.drawLine(g.toVector3(), d.toVector3()), m.drawLine(d.toVector3(), x.toVector3()), m.drawLine(x.toVector3(), b.toVector3()), m.drawLine(b.toVector3(), g.toVector3());
|
|
2845
2911
|
}
|
|
2846
|
-
c =
|
|
2912
|
+
c = r.GetCurrentMxCAD().docCoord2Cad(c), p.setToRotation(f, y.kZAxis, c);
|
|
2847
2913
|
for (let d = 0; d < E.length && d < 10; d++) {
|
|
2848
|
-
let
|
|
2849
|
-
!
|
|
2914
|
+
let b = E[d].clone();
|
|
2915
|
+
!b || (b.TransformBy(p), m.drawMcDbEntity(b));
|
|
2850
2916
|
}
|
|
2851
2917
|
});
|
|
2852
|
-
let
|
|
2853
|
-
if (!
|
|
2918
|
+
let e = await F.go();
|
|
2919
|
+
if (!e)
|
|
2854
2920
|
return;
|
|
2855
|
-
let
|
|
2856
|
-
|
|
2921
|
+
let t = e, i = A, a = t.sub(i).angleTo2(y.kXAxis, y.kNegateZAxis), u = new I();
|
|
2922
|
+
i = r.GetCurrentMxCAD().docCoord2Cad(i), u.setToRotation(a, y.kZAxis, i);
|
|
2857
2923
|
for (let l = 0; l < E.length; l++) {
|
|
2858
2924
|
let m = E[l].getMcDbObject();
|
|
2859
2925
|
!m || m.TransformBy(u);
|
|
2860
2926
|
}
|
|
2861
2927
|
}
|
|
2862
|
-
async function
|
|
2928
|
+
async function HC() {
|
|
2863
2929
|
let E;
|
|
2864
|
-
for (; E =
|
|
2865
|
-
let c = new
|
|
2930
|
+
for (; E = z.getCurrentSelect(), !(E.length > 0); ) {
|
|
2931
|
+
let c = new _();
|
|
2866
2932
|
if (!await c.userSelect(`
|
|
2867
2933
|
\u9009\u62E9\u7F29\u653E\u5BF9\u8C61`) || (E = c.getIds(), E.length == 0))
|
|
2868
2934
|
return;
|
|
2869
2935
|
break;
|
|
2870
2936
|
}
|
|
2871
|
-
let D, C, B =
|
|
2937
|
+
let D, C, B = rD(E);
|
|
2872
2938
|
if (!B)
|
|
2873
2939
|
return;
|
|
2874
2940
|
D = B.minPt, C = B.maxPt;
|
|
2875
|
-
let F = C.x - D.x, A = C.y - D.y,
|
|
2876
|
-
|
|
2877
|
-
let
|
|
2878
|
-
|
|
2879
|
-
let
|
|
2880
|
-
if (
|
|
2941
|
+
let F = C.x - D.x, A = C.y - D.y, e = (F + A) / 3;
|
|
2942
|
+
e < 1e-5 && (e = 1);
|
|
2943
|
+
let t = new V();
|
|
2944
|
+
t.setMessage("\u6307\u5B9A\u57FA\u70B9");
|
|
2945
|
+
let i = await t.go();
|
|
2946
|
+
if (i == null)
|
|
2881
2947
|
return;
|
|
2882
|
-
|
|
2883
|
-
let
|
|
2948
|
+
t.setMessage("\u6307\u5B9A\u6BD4\u4F8B\u56E0\u5B50"), t.setBasePt(i), t.setUseBasePt(!0), t.setUserDraw((c, w) => {
|
|
2949
|
+
let f = new o(c), p = new o(i), d = f.distanceTo(p);
|
|
2884
2950
|
if (d < 1e-5)
|
|
2885
2951
|
return;
|
|
2886
|
-
let
|
|
2887
|
-
|
|
2888
|
-
let x = new
|
|
2889
|
-
if (x.setToScaling(
|
|
2890
|
-
let
|
|
2891
|
-
|
|
2952
|
+
let b = d / e;
|
|
2953
|
+
b > 1e5 && (b = 1e5);
|
|
2954
|
+
let x = new I();
|
|
2955
|
+
if (x.setToScaling(b, p), D && C) {
|
|
2956
|
+
let g = new o(D.x, C.y, 0), M = new o(C.x, D.y, 0), v = new o(g.x, M.y, 0), Y = new o(M.x, g.y, 0);
|
|
2957
|
+
g.transformBy(x), M.transformBy(x), v.transformBy(x), Y.transformBy(x), w.drawLine(Y.toVector3(), g.toVector3()), w.drawLine(g.toVector3(), v.toVector3()), w.drawLine(v.toVector3(), M.toVector3()), w.drawLine(M.toVector3(), Y.toVector3());
|
|
2892
2958
|
}
|
|
2893
|
-
p =
|
|
2894
|
-
for (let
|
|
2895
|
-
let M = E[
|
|
2896
|
-
!M || (M.TransformBy(x),
|
|
2959
|
+
p = r.GetCurrentMxCAD().docCoord2Cad(p), x.setToScaling(b, p);
|
|
2960
|
+
for (let g = 0; g < E.length && g < 10; g++) {
|
|
2961
|
+
let M = E[g].clone();
|
|
2962
|
+
!M || (M.TransformBy(x), w.drawMcDbEntity(M));
|
|
2897
2963
|
}
|
|
2898
2964
|
});
|
|
2899
|
-
let s = await
|
|
2965
|
+
let s = await t.go();
|
|
2900
2966
|
if (!s)
|
|
2901
2967
|
return;
|
|
2902
|
-
let
|
|
2968
|
+
let a = s, u = i, l = a.distanceTo(u);
|
|
2903
2969
|
if (l < 1e-5)
|
|
2904
2970
|
return;
|
|
2905
|
-
let m = l /
|
|
2971
|
+
let m = l / e;
|
|
2906
2972
|
m > 1e5 && (m = 1e5);
|
|
2907
|
-
let n = new
|
|
2908
|
-
u =
|
|
2973
|
+
let n = new I();
|
|
2974
|
+
u = r.GetCurrentMxCAD().docCoord2Cad(u), n.setToScaling(m, u);
|
|
2909
2975
|
for (let c = 0; c < E.length; c++) {
|
|
2910
|
-
let
|
|
2911
|
-
!
|
|
2976
|
+
let w = E[c].getMcDbObject();
|
|
2977
|
+
!w || w.TransformBy(n);
|
|
2912
2978
|
}
|
|
2913
2979
|
}
|
|
2914
|
-
async function
|
|
2915
|
-
let E = new
|
|
2916
|
-
E.setDisableOsnap(!0), E.setMessage("\u70B9\u53D6\u7F29\u653E\u533A\u57DF"), E.setDynamicInputType(
|
|
2980
|
+
async function NC() {
|
|
2981
|
+
let E = new V();
|
|
2982
|
+
E.setDisableOsnap(!0), E.setMessage("\u70B9\u53D6\u7F29\u653E\u533A\u57DF"), E.setDynamicInputType(dD.kDynTip);
|
|
2917
2983
|
let D = await E.go();
|
|
2918
2984
|
if (D == null)
|
|
2919
2985
|
return;
|
|
@@ -2923,12 +2989,12 @@ async function HC() {
|
|
|
2923
2989
|
let C = await E.go();
|
|
2924
2990
|
C != null && h.getCurrentDraw().zoomW(D.toVector3(), C.toVector3());
|
|
2925
2991
|
}
|
|
2926
|
-
async function
|
|
2927
|
-
let E =
|
|
2992
|
+
async function _C() {
|
|
2993
|
+
let E = r.GetCurrentDatabase().CurrentSpace().getBoundingBox();
|
|
2928
2994
|
!E.ret || h.getCurrentDraw().zoomW(E.minPt.toVector3(), E.maxPt.toVector3());
|
|
2929
2995
|
}
|
|
2930
|
-
async function
|
|
2931
|
-
const E = new
|
|
2996
|
+
async function qC() {
|
|
2997
|
+
const E = new ND();
|
|
2932
2998
|
E.setMessage(`
|
|
2933
2999
|
\u6307\u5B9A\u504F\u79FB\u8DDD\u79BB\u6216:`);
|
|
2934
3000
|
let D = await E.go();
|
|
@@ -2936,40 +3002,40 @@ async function _C() {
|
|
|
2936
3002
|
return;
|
|
2937
3003
|
let C = new tD();
|
|
2938
3004
|
C.AddMcDbEntityTypes("LINE,CIRCLE,LWPOLYLINE,ARC");
|
|
2939
|
-
let B = await
|
|
3005
|
+
let B = await z.selectEnt(`
|
|
2940
3006
|
\u9009\u62E9\u504F\u79FB\u5BF9\u8C61`, C, !1);
|
|
2941
3007
|
if (B.length == 0)
|
|
2942
3008
|
return;
|
|
2943
|
-
const F = new
|
|
3009
|
+
const F = new V();
|
|
2944
3010
|
F.setMessage(`
|
|
2945
3011
|
\u6307\u5B9A\u8981\u504F\u79FB\u90A3\u4E00\u4FA7\u4E0A\u7684\u70B9:`), F.setDisableOsnap(!0);
|
|
2946
3012
|
let A = await F.go();
|
|
2947
3013
|
if (A == null)
|
|
2948
3014
|
return;
|
|
2949
|
-
let
|
|
2950
|
-
if (!
|
|
3015
|
+
let e = B[0].getMcDbCurve();
|
|
3016
|
+
if (!e)
|
|
2951
3017
|
return;
|
|
2952
|
-
let
|
|
2953
|
-
|
|
2954
|
-
|
|
3018
|
+
let t = e.offsetCurves(D, A);
|
|
3019
|
+
t.empty() || t.forEach((i) => {
|
|
3020
|
+
r.GetCurrentMxCAD().DrawEntity(i);
|
|
2955
3021
|
});
|
|
2956
3022
|
}
|
|
2957
|
-
function
|
|
2958
|
-
|
|
3023
|
+
function ZC() {
|
|
3024
|
+
r.GetCurrentMxCAD().getImp().regen();
|
|
2959
3025
|
}
|
|
2960
3026
|
h.on("init", () => {
|
|
2961
|
-
h.addCommand("Mx_Erase",
|
|
3027
|
+
h.addCommand("Mx_Erase", BC), h.addCommand("Mx_Copy", WC), h.addCommand("Mx_Move", zC), h.addCommand("Mx_Rotate", KC), h.addCommand("Mx_Scale", HC), h.addCommand("Mx_WindowZoom", NC), h.addCommand("Mx_ZoomE", _C), h.addCommand("Mx_Offset", qC), h.addCommand("Mx_Regen", ZC);
|
|
2962
3028
|
});
|
|
2963
|
-
const
|
|
3029
|
+
const $C = async (E, D, C) => {
|
|
2964
3030
|
const { locateFile: B } = C, F = B(E + ".js");
|
|
2965
|
-
return await
|
|
3031
|
+
return await ZD(F), await globalThis[D](C);
|
|
2966
3032
|
};
|
|
2967
|
-
function
|
|
3033
|
+
function JC(E) {
|
|
2968
3034
|
return typeof ResizeObserver == "function" ? new ResizeObserver(E) : null;
|
|
2969
3035
|
}
|
|
2970
|
-
function
|
|
3036
|
+
function YC(E, D) {
|
|
2971
3037
|
const C = () => requestAnimationFrame(D);
|
|
2972
|
-
let B =
|
|
3038
|
+
let B = JC(C);
|
|
2973
3039
|
if (B) {
|
|
2974
3040
|
B.observe(E);
|
|
2975
3041
|
return;
|
|
@@ -2979,7 +3045,7 @@ function JC(E, D) {
|
|
|
2979
3045
|
return;
|
|
2980
3046
|
}
|
|
2981
3047
|
}
|
|
2982
|
-
function
|
|
3048
|
+
function QC(E, D) {
|
|
2983
3049
|
let C = null;
|
|
2984
3050
|
return function(...B) {
|
|
2985
3051
|
C || (C = setTimeout(() => {
|
|
@@ -2987,34 +3053,34 @@ function YC(E, D) {
|
|
|
2987
3053
|
}, D));
|
|
2988
3054
|
};
|
|
2989
3055
|
}
|
|
2990
|
-
class
|
|
3056
|
+
class J {
|
|
2991
3057
|
static onloadWasmMxDraw3dModel;
|
|
2992
3058
|
canvas;
|
|
2993
3059
|
constructor(D) {
|
|
2994
3060
|
const C = () => {
|
|
2995
3061
|
const u = this.canvas.parentElement?.clientWidth || window.innerWidth, l = this.canvas.parentElement?.clientHeight || window.innerHeight;
|
|
2996
3062
|
let m = Math.min(u, window.screen.availWidth), n = Math.min(l, window.screen.availHeight);
|
|
2997
|
-
m = Math.max(A, m), n = Math.max(
|
|
3063
|
+
m = Math.max(A, m), n = Math.max(e, n), this.canvas.style.width = m + 1 + "px", this.canvas.style.height = n + "px";
|
|
2998
3064
|
const c = window.devicePixelRatio || 1;
|
|
2999
3065
|
this.canvas.width = m * c, this.canvas.height = n * c;
|
|
3000
|
-
}, B =
|
|
3066
|
+
}, B = QC(C, 50), {
|
|
3001
3067
|
canvas: F,
|
|
3002
3068
|
minWidth: A = 300,
|
|
3003
|
-
minHeight:
|
|
3004
|
-
updateCanvasSize:
|
|
3005
|
-
...
|
|
3069
|
+
minHeight: e = 300,
|
|
3070
|
+
updateCanvasSize: t = B,
|
|
3071
|
+
...i
|
|
3006
3072
|
} = D;
|
|
3007
|
-
let s = typeof F == "string" ? document.querySelectorAll(F)[0] : F,
|
|
3008
|
-
|
|
3009
|
-
for (let u in
|
|
3010
|
-
this[u] =
|
|
3073
|
+
let s = typeof F == "string" ? document.querySelectorAll(F)[0] : F, a = s.getContext("webgl2", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 });
|
|
3074
|
+
a == null && (a = s.getContext("webgl", { alpha: !1, depth: !0, antialias: !1, preserveDrawingBuffer: !0 })), this.canvas = s, this.ctx = a, i.canvas = this.canvas;
|
|
3075
|
+
for (let u in i)
|
|
3076
|
+
this[u] = i[u];
|
|
3011
3077
|
if (this.canvas instanceof HTMLCanvasElement) {
|
|
3012
3078
|
const u = this.canvas.parentElement || document.body;
|
|
3013
|
-
|
|
3079
|
+
YC(u, t);
|
|
3014
3080
|
} else
|
|
3015
3081
|
console.error("createMxDraw3d canvas \u53C2\u6570\u4E0D\u6B63\u786E \u65E0\u6CD5\u83B7\u53D6\u5230canvas\u5143\u7D20");
|
|
3016
|
-
window.onresize = C, C(),
|
|
3017
|
-
|
|
3082
|
+
window.onresize = C, C(), $C("mxdraw3d_min", "mxdraw3d", this).then(() => {
|
|
3083
|
+
J.onloadWasmMxDraw3dModel && J.onloadWasmMxDraw3dModel(this), this.updateCanvasSize = t, this.open3DFile = (u) => {
|
|
3018
3084
|
const l = new FileReader();
|
|
3019
3085
|
l.onload = () => {
|
|
3020
3086
|
if (!!l.result && l.result instanceof ArrayBuffer) {
|
|
@@ -3027,12 +3093,12 @@ class Z {
|
|
|
3027
3093
|
});
|
|
3028
3094
|
}
|
|
3029
3095
|
}
|
|
3030
|
-
function
|
|
3096
|
+
function XC(E, D) {
|
|
3031
3097
|
return new Promise(async (C, B) => {
|
|
3032
3098
|
try {
|
|
3033
|
-
E.locateFile || (E.locateFile =
|
|
3034
|
-
const F = new
|
|
3035
|
-
|
|
3099
|
+
E.locateFile || (E.locateFile = PC);
|
|
3100
|
+
const F = new J(E);
|
|
3101
|
+
J.onloadWasmMxDraw3dModel = () => {
|
|
3036
3102
|
C(F), D && D(F);
|
|
3037
3103
|
};
|
|
3038
3104
|
} catch (F) {
|
|
@@ -3040,155 +3106,157 @@ function QC(E, D) {
|
|
|
3040
3106
|
}
|
|
3041
3107
|
});
|
|
3042
3108
|
}
|
|
3043
|
-
const
|
|
3109
|
+
const C9 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
3044
3110
|
__proto__: null,
|
|
3045
3111
|
b64Encode: kD,
|
|
3046
3112
|
b64Decode: RD,
|
|
3047
|
-
saveAsFileDialog:
|
|
3048
|
-
downloadFile:
|
|
3049
|
-
downloadFileFromUrl:
|
|
3050
|
-
MxTools:
|
|
3051
|
-
McGePoint3d:
|
|
3113
|
+
saveAsFileDialog: OD,
|
|
3114
|
+
downloadFile: LD,
|
|
3115
|
+
downloadFileFromUrl: vD,
|
|
3116
|
+
MxTools: Q,
|
|
3117
|
+
McGePoint3d: o,
|
|
3052
3118
|
McGeVector3d: y,
|
|
3053
|
-
McGeMatrix3d:
|
|
3054
|
-
McGeLongArray:
|
|
3055
|
-
McGeStringArray:
|
|
3056
|
-
McGePoint3dArray:
|
|
3057
|
-
getFilterImp:
|
|
3119
|
+
McGeMatrix3d: I,
|
|
3120
|
+
McGeLongArray: SD,
|
|
3121
|
+
McGeStringArray: ID,
|
|
3122
|
+
McGePoint3dArray: mC,
|
|
3123
|
+
getFilterImp: K,
|
|
3058
3124
|
MxCADResbuf: tD,
|
|
3059
|
-
MxCADUtilityClass:
|
|
3060
|
-
MxCADUtility:
|
|
3061
|
-
|
|
3062
|
-
|
|
3063
|
-
|
|
3064
|
-
|
|
3065
|
-
|
|
3066
|
-
|
|
3125
|
+
MxCADUtilityClass: KD,
|
|
3126
|
+
MxCADUtility: z,
|
|
3127
|
+
MxCADSelectionSetStatus: HD,
|
|
3128
|
+
MxCADSelectionSet: _,
|
|
3129
|
+
MxCADUiPrBase: q,
|
|
3130
|
+
MxCADUiPrPoint: V,
|
|
3131
|
+
MxCADUiPrDist: ND,
|
|
3132
|
+
MxCADUiPrAngle: yC,
|
|
3133
|
+
MxCADUiPrInt: wC,
|
|
3067
3134
|
MxCADUiPrKeyWord: gC,
|
|
3068
|
-
MxCADUiPrString:
|
|
3069
|
-
McRxObject:
|
|
3135
|
+
MxCADUiPrString: fC,
|
|
3136
|
+
McRxObject: H,
|
|
3070
3137
|
McObjectIdType: k,
|
|
3071
3138
|
McObjectId: R,
|
|
3072
|
-
McDbObject:
|
|
3073
|
-
McDbObjectArray:
|
|
3139
|
+
McDbObject: j,
|
|
3140
|
+
McDbObjectArray: aD,
|
|
3074
3141
|
get McDb() {
|
|
3075
|
-
return
|
|
3142
|
+
return uD;
|
|
3076
3143
|
},
|
|
3077
|
-
McCmColor:
|
|
3078
|
-
McDbLayerTableRecord:
|
|
3144
|
+
McCmColor: N,
|
|
3145
|
+
McDbLayerTableRecord: hC,
|
|
3079
3146
|
McDbLayerTable: jD,
|
|
3080
|
-
McDbLinetypeTable:
|
|
3081
|
-
McDbTextStyleTable:
|
|
3082
|
-
McDbDatabase:
|
|
3083
|
-
McDbBlockTableRecordIterator:
|
|
3084
|
-
McDbBlockTableRecord:
|
|
3147
|
+
McDbLinetypeTable: GD,
|
|
3148
|
+
McDbTextStyleTable: VD,
|
|
3149
|
+
McDbDatabase: hD,
|
|
3150
|
+
McDbBlockTableRecordIterator: UD,
|
|
3151
|
+
McDbBlockTableRecord: AD,
|
|
3085
3152
|
McDbBlockTableIterator: WD,
|
|
3086
|
-
McDbBlockTable:
|
|
3153
|
+
McDbBlockTable: zD,
|
|
3087
3154
|
McDbEntity: G,
|
|
3088
3155
|
McDbCurve: W,
|
|
3089
|
-
McDbLine:
|
|
3090
|
-
McDbText:
|
|
3091
|
-
McDbMText:
|
|
3092
|
-
McDbCircle:
|
|
3093
|
-
McDbPolyline:
|
|
3094
|
-
McDbBlockReference:
|
|
3095
|
-
McDbDimension:
|
|
3096
|
-
McDbAlignedDimension:
|
|
3097
|
-
McDbRotatedDimension:
|
|
3098
|
-
McDbArc:
|
|
3099
|
-
McDbEllipse:
|
|
3100
|
-
McDbPoint:
|
|
3101
|
-
McObject:
|
|
3102
|
-
McAppType:
|
|
3103
|
-
MxCppType:
|
|
3156
|
+
McDbLine: CD,
|
|
3157
|
+
McDbText: lD,
|
|
3158
|
+
McDbMText: BD,
|
|
3159
|
+
McDbCircle: U,
|
|
3160
|
+
McDbPolyline: ED,
|
|
3161
|
+
McDbBlockReference: cD,
|
|
3162
|
+
McDbDimension: yD,
|
|
3163
|
+
McDbAlignedDimension: mD,
|
|
3164
|
+
McDbRotatedDimension: pD,
|
|
3165
|
+
McDbArc: FD,
|
|
3166
|
+
McDbEllipse: eD,
|
|
3167
|
+
McDbPoint: wD,
|
|
3168
|
+
McObject: $,
|
|
3169
|
+
McAppType: _D,
|
|
3170
|
+
MxCppType: qD,
|
|
3104
3171
|
get MxCpp() {
|
|
3105
|
-
return
|
|
3172
|
+
return r;
|
|
3106
3173
|
},
|
|
3107
|
-
loadMxCADassembly:
|
|
3108
|
-
createMxCad:
|
|
3109
|
-
drawText:
|
|
3110
|
-
drawCircle:
|
|
3111
|
-
drawLine:
|
|
3112
|
-
drawMText:
|
|
3113
|
-
drawPolyLine:
|
|
3114
|
-
drawPolygon:
|
|
3115
|
-
drawArc:
|
|
3116
|
-
drawEllipticalArc:
|
|
3117
|
-
Mx_Erase:
|
|
3118
|
-
MxDraw3d:
|
|
3119
|
-
loadMxCADassembly3d:
|
|
3174
|
+
loadMxCADassembly: $D,
|
|
3175
|
+
createMxCad: OC,
|
|
3176
|
+
drawText: LC,
|
|
3177
|
+
drawCircle: JD,
|
|
3178
|
+
drawLine: YD,
|
|
3179
|
+
drawMText: IC,
|
|
3180
|
+
drawPolyLine: QD,
|
|
3181
|
+
drawPolygon: XD,
|
|
3182
|
+
drawArc: DC,
|
|
3183
|
+
drawEllipticalArc: CC,
|
|
3184
|
+
Mx_Erase: BC,
|
|
3185
|
+
MxDraw3d: J,
|
|
3186
|
+
loadMxCADassembly3d: XC
|
|
3120
3187
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
3121
3188
|
export {
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3189
|
+
_D as McAppType,
|
|
3190
|
+
N as McCmColor,
|
|
3191
|
+
uD as McDb,
|
|
3192
|
+
mD as McDbAlignedDimension,
|
|
3193
|
+
FD as McDbArc,
|
|
3194
|
+
cD as McDbBlockReference,
|
|
3195
|
+
zD as McDbBlockTable,
|
|
3129
3196
|
WD as McDbBlockTableIterator,
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3197
|
+
AD as McDbBlockTableRecord,
|
|
3198
|
+
UD as McDbBlockTableRecordIterator,
|
|
3199
|
+
U as McDbCircle,
|
|
3133
3200
|
W as McDbCurve,
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3201
|
+
hD as McDbDatabase,
|
|
3202
|
+
yD as McDbDimension,
|
|
3203
|
+
eD as McDbEllipse,
|
|
3137
3204
|
G as McDbEntity,
|
|
3138
3205
|
jD as McDbLayerTable,
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
|
|
3206
|
+
hC as McDbLayerTableRecord,
|
|
3207
|
+
CD as McDbLine,
|
|
3208
|
+
GD as McDbLinetypeTable,
|
|
3209
|
+
BD as McDbMText,
|
|
3210
|
+
j as McDbObject,
|
|
3211
|
+
aD as McDbObjectArray,
|
|
3212
|
+
wD as McDbPoint,
|
|
3213
|
+
ED as McDbPolyline,
|
|
3214
|
+
pD as McDbRotatedDimension,
|
|
3215
|
+
lD as McDbText,
|
|
3216
|
+
VD as McDbTextStyleTable,
|
|
3217
|
+
SD as McGeLongArray,
|
|
3218
|
+
I as McGeMatrix3d,
|
|
3219
|
+
o as McGePoint3d,
|
|
3220
|
+
mC as McGePoint3dArray,
|
|
3221
|
+
ID as McGeStringArray,
|
|
3155
3222
|
y as McGeVector3d,
|
|
3156
|
-
|
|
3223
|
+
$ as McObject,
|
|
3157
3224
|
R as McObjectId,
|
|
3158
3225
|
k as McObjectIdType,
|
|
3159
|
-
|
|
3226
|
+
H as McRxObject,
|
|
3160
3227
|
tD as MxCADResbuf,
|
|
3161
|
-
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
|
|
3228
|
+
_ as MxCADSelectionSet,
|
|
3229
|
+
HD as MxCADSelectionSetStatus,
|
|
3230
|
+
yC as MxCADUiPrAngle,
|
|
3231
|
+
q as MxCADUiPrBase,
|
|
3232
|
+
ND as MxCADUiPrDist,
|
|
3233
|
+
wC as MxCADUiPrInt,
|
|
3166
3234
|
gC as MxCADUiPrKeyWord,
|
|
3167
|
-
|
|
3168
|
-
|
|
3169
|
-
|
|
3170
|
-
|
|
3171
|
-
|
|
3172
|
-
|
|
3173
|
-
|
|
3174
|
-
|
|
3175
|
-
|
|
3235
|
+
V as MxCADUiPrPoint,
|
|
3236
|
+
fC as MxCADUiPrString,
|
|
3237
|
+
z as MxCADUtility,
|
|
3238
|
+
KD as MxCADUtilityClass,
|
|
3239
|
+
r as MxCpp,
|
|
3240
|
+
qD as MxCppType,
|
|
3241
|
+
J as MxDraw3d,
|
|
3242
|
+
Q as MxTools,
|
|
3243
|
+
BC as Mx_Erase,
|
|
3176
3244
|
RD as b64Decode,
|
|
3177
3245
|
kD as b64Encode,
|
|
3178
|
-
|
|
3179
|
-
|
|
3180
|
-
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
|
|
3190
|
-
|
|
3191
|
-
|
|
3192
|
-
|
|
3193
|
-
|
|
3246
|
+
OC as createMxCad,
|
|
3247
|
+
C9 as default,
|
|
3248
|
+
LD as downloadFile,
|
|
3249
|
+
vD as downloadFileFromUrl,
|
|
3250
|
+
DC as drawArc,
|
|
3251
|
+
JD as drawCircle,
|
|
3252
|
+
CC as drawEllipticalArc,
|
|
3253
|
+
YD as drawLine,
|
|
3254
|
+
IC as drawMText,
|
|
3255
|
+
QD as drawPolyLine,
|
|
3256
|
+
XD as drawPolygon,
|
|
3257
|
+
LC as drawText,
|
|
3258
|
+
K as getFilterImp,
|
|
3259
|
+
$D as loadMxCADassembly,
|
|
3260
|
+
XC as loadMxCADassembly3d,
|
|
3261
|
+
OD as saveAsFileDialog
|
|
3194
3262
|
};
|