Вверх ↑
Этот топик читают: Гость
Ответов: 12
Рейтинг: 0
#1: 2017-08-26 22:28:40 ЛС | профиль | цитата
Доброго времени суток.
в общем DS_ODBC работал чеко, пока я не добавил ProgressBar.
вылет

из xls заливаю в MT_MTArray и параллельно хочу видеть процесс

Make(delphi)
ver(4.05 build 186)
Add(MainForm,2953706,49,49)
{
Width=419
Height=261
link(onCreate,9581446:doWork1,[])
}
Add(LineBreakEx,12280247,238,189)
{
Caption="Имя "
Type=2
}
Add(ProgressBarRush,16035786,833,56)
{
Left=15
Top=111
Width=375
Height=25
}
Add(LineBreakEx,12817326,707,56)
{
Caption="прогрес"
Type=1
link(OnEvent,12325891:doWork1,[])
}
Add(LineBreakEx,12526161,875,294)
{
Caption="прогрес"
}
Add(Hub,14895446,182,210)
{
OutCount=4
link(onEvent1,2271599:In,[(208,216)(208,195)(142,195)(142,174)])
link(onEvent2,5926953:doStrCat,[])
link(onEvent3,8389943:doMessage,[(219,230)(219,300)])
}
Add(Message,8389943,245,294)
{
Message="Ок"
}
Add(CableWork,2369502,840,294)
{
link(Cable,12526161:doWork,[])
}
Add(CounterEx,8282714,742,357)
{
Max=100000000
link(onNext,2369502:Wire1,[(816,363)(816,300)])
}
Add(DoData,10878444,1246,539)
{
}
Add(Button,8513360,56,210)
{
Left=155
Top=45
Width=100
Height=30
Caption="старт"
link(onClick,15393440:doStart,[])
}
Add(Thread,15393440,126,210)
{
Delay=200
FastStop=0
link(onExec,14895446:doEvent1,[])
}
Add(Memory,6423116,462,63)
{
Default=String(compl_24.08.17.xls)
}
Add(LineBreakEx,8130615,462,105)
{
Caption="Имя "
Type=3
link(_Data,6423116:Value,[])
}
Add(DS_ODBC,9220204,406,308)
{
Name="odbc_driver"
Point(onError)
link(onCreate,4912858:doEvent1,[(478,314)(478,307)])
link(Driver,6939220:FString,[])
link(onError,2774394:doWork,[])
}
Add(Memory,4937846,413,210)
{
}
Add(Dir,154286,231,140)
{
}
Add(FilePart,5229429,343,217)
{
link(onPath,4937846:doValue,[(392,223)(392,216)])
link(onName,7579850:doEvent1,[])
}
Add(StrCat,5926953,231,217)
{
link(onStrCat,16714654:doEvent1,[])
link(Str1,154286:CurrentDir,[])
link(Str2,12280247:getVar,[])
}
Add(Hub,16714654,294,217)
{
OutCount=3
link(onEvent1,5229429:doPart,[])
link(onEvent2,6939220:doString,[(337,230)(337,265)])
link(onEvent3,9220204:doOpen,[(322,237)(322,314)])
}
Add(FormatStr,1359034,525,231)
{
Mask="SELECT * FROM `%1.xls`.`sheet1$`"
Point(FString)
}
Add(FormatStr,6939220,406,259)
{
Mask="DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};\r\nFIL=Excel 12.0;\r\nDBQ=%1;\r\nDefaultDir=%2;\r\nFirstRowWhasNames=1;\r\nReadOnly=false;\r\nScanRows=0;"
Point(FString)
link(Str2,4937846:Value,[])
}
Add(LineBreakEx,2774394,455,315)
{
Caption="error"
}
Add(LineBreakEx,2469851,595,364)
{
Caption="error"
}
Add(FormatStr,9473098,574,217)
{
Mask="SELECT COUNT(*) FROM `%1.xls`.`sheet1$`"
Point(FString)
}
Add(LineBreakEx,122388,623,315)
{
Caption="error"
}
Add(Hub,7579850,462,224)
{
link(onEvent1,9473098:doString,[(502,230)(502,223)])
link(onEvent2,1359034:doString,[])
}
Add(DSC_Query,12487484,553,350)
{
DSManager="odbc_driver"
link(onQuery,9804788:doEvent1,[])
link(onError,2469851:doWork,[])
link(SQL,1359034:FString,[(559,281)(531,281)])
}
Add(DSC_Query,10256676,574,301)
{
DSManager="odbc_driver"
link(onQuery,2369502:Wire2,[])
link(onError,122388:doWork,[])
link(SQL,9473098:FString,[])
}
Add(Hub,4912858,511,301)
{
link(onEvent1,10256676:doQuery,[])
link(onEvent2,12487484:doQuery,[(542,314)(542,356)])
}
Add(MultiElement,12325891,784,56)
{
link(onEvent1,16035786:doPosition,[])
}
BEGIN_SDK
Add(EditMulti,9150291,21,21)
{
EventCount=1
WorkCount=1
link(doWork1,6017396:Cable,[(49,27)(49,99)])
}
Add(CableEvent,6017396,77,93)
{
link(Wire1,14032774:doOperation,[])
link(Wire2,3760010:doOperation,[(119,106)(119,43)])
}
Add(Memory,14148284,182,37)
{
}
Add(Math,3760010,133,37)
{
OpType=3
Op2=100
ResultType=0
link(onResult,14148284:doValue,[])
}
Add(Math,14032774,175,93)
{
OpType=3
ResultType=0
link(onResult,9150291:onEvent1,[(264,99)(264,27)])
link(Op2,14148284:Value,[])
}
END_SDK
Add(MT_MTArrayRW,4865845,742,315)
{
link(Array,13076694:Array,[])
}
Add(MT_MTArray,13076694,742,231)
{
}
Add(LineBreak,14240823,658,231)
{
Caption="clear_mt"
link(Out,13076694:doClear,[])
Primary=[2271599,-504,-63]
}
Add(Message,8158759,826,105)
{
Caption="Ошибка XLS"
}
Add(LineBreakEx,13650324,770,105)
{
Caption="error"
Type=1
link(OnEvent,8158759:doMessage,[])
}
Add(MultiElement,9581446,147,63)
{
@Hint=#8:файл xls|
link(Data1,9027771:getVar,[])
AddHint(81,4,56,13,@Hint)
}
BEGIN_SDK
Add(EditMulti,14682019,21,21)
{
WorkCount=1
DataCount=1
Width=482
Height=312
VOffset=21
HOffset=126
link(doWork1,13101000:doEvent1,[(53,48)(53,125)])
}
Add(MemoryStream,9600868,343,182)
{
Stream=[ZIP00FC000078DAED9D077C54D795F0EF3C4642421489DE11BDA3997953691A01A2F76E6CD325D37B3306238C71C536C53636601BF7DE00776CCBBD819D2FD96C92DD24EBCD26FB6537FB659D6CF6DB6453F49D7BDE9933EF8CAEC683C363BFDD5F46BFAB3773E6CCFD9FDBEBBBEF5B5F947CF9E08B1DFF5E65BC46AA46EA4F75852ADF25F391C357B15257D3E73FD5D5D5A5C4757F79FDB77AFD11DC35906E8DC0F9C1E581D369DE185C01B842704DC015816B0AAE19B8E6E05A38594095806B09AE15B8D6E0DA806B0BAE1DB8F6E03A80EB08AE13B8CEE0BA80EB0AAE1BB85270DDC1F500D7135C2F70BDC1F501D7175C3F70FDC10D003710DC207083C10D0157062E002E082E04CE061706170117051703170797003714DC3070C3C18DC0BCAD5439B824B80A70A3C08D0637065C25B8B1E0C6811B0F6E02B889E026819B0C6E0AB8A9E0A6819B0E6E06B899E066819B0D6E0EB8B9E0E6819B0FEE32700BC05D0EEE0A7057825B086E11B8C5E096805B0A6E19B8E5E0AAC05583BB0ADC0A702BC1AD02B71ADC1A706BC1AD03B71EDC06701BC16D02B719DC16705BC16D03B71DDC0E2A9BDAED72BD77BF66824FEBE197A510F27570DD84A53AF7575BC83129BF2C9DA60516CA6B9DAF7554AABB567DFE1F3775FD8EAFE6EEB7D71E82EB4E1DF78E1AC4D37A60AE8638D076AC5617FA6AA92C9FDF55EFE4F21B8DFED6BF38EFF320E5B642ACAE8594D0619F00B1508D3669C91688FFF518DF0DBDFA01DF47E52757BE7EBDA052FC314058863654610A5C983D71E0BBD33317B6B6F587F4BEB0004A717E9E7AAADBF9C69FD4F8543E44E6DF430CBDE07F07E3E927986F37E87AA162F9DA95EB4A2FD16B14DAB0C4A76DA885081E01EF7CEA04488BA14EB19C94C77A47FF7F1EF5CEE2FF11581F4169EC75A4657B6EB792A8771BFEEF81FF9B2BEDE32BF89BBF4149106AAA933A1DF71CD43FB1CEA93C5F05C4FC4A88F935FF85DF0E707FEB3FA79AF946432E580BDF2F83723B0BB4D641F92F85BA69166B3753B969F75167D27E373AA78A507B2BD2ABE07F29D47655509B68CD8F73D4EC8AB9AB4051689A34064D1D929550CAB5764AA3F06B35425FA3E103CA592BBB4693AC1A83A0F40ECEAAE1FF5A0D4DF97A8DAFB7B430ABC60A831D6BE9FB251C632DBF364E5B7F8D860575FAD7F9D1E422680C6950A3ABBF0CEA9B36CAD7139AFC9EF01780229BF40F81FFC3A0321AACEACBBBFA13D06DE968FEC9E5D0425741EB7A65833F1E06FD9D4EEE1F0F01D730557EDBD55F09895B9AEDE70D5990E9D16A28BDB6F22D02A501E0637D53F5378E35D9BE4FFDBE075C7B18BE4BE27F8DEB6FC62D829F2C02EB1AC2C9EF25AEFE7729DC35F0FB61269C8C8686A0262D892E87BF86437B0D7422B3E0BF2ECC26ADFAF886436FAB47A057ECCA2457E00FDF2CAD9FBFD2DF74F58F508F42C7B9819F3594AFDC1E94ABC7A0D75D2F73364CCFFCBEAB7F827A1CDE67F5227B0E777BB6513D013D744332A4951A4A824C0D19FDA66FD339FD49734ED73F5A043FCA864C7F5F1F28BF4BE1F6AAA76094D16056FBFA909AF5EA67B76C61BE463D9D2DBF7F5DC84D5A66034C71F0258E0695FAF7BAEEAE9E676DE95FE4DEC87D7A345D2CE54D501FE46748EC3FD380FCBE06E4A71B90DFDC80FC7803F2B317A8FFF605DA73F402FD3F86F2A206F48B1AB0A7A8017BEACBDFBC40FFEF6B40FED805DAF34403F2A7BF91FF4D53F23B4B4ADA16B52D4AD9D9CC252FF017F853F9A1793D7D47DE2225FF2B9C326995CA9FC5425ED32C252F49CB4B8DF2DFC87CDE32ADBF44A93EEC7F2BB6A7BADAB1D34997D60DF8D3A6817CD2B69EFC6194B76BC09FBC94FC4449C9D1A2A345297FDAA7ED5CEC4CB539FA1D1AF0A76303F92D3F55DEDB4BFDC62887D8D8E1F3B5D3D6F94B32E4C5BE9AA2B4BC00E5509FC47D25ED14D849FE14B2BCB8A4A6282DCFC711734FA58667CAC9FFB849DEB39E3C6D4F89EFA8CB9E42833DBB0A5AAB5D05EED98BD1EA8EA2D595BB0B2AD46E212FC6998D66E04FA3D43C35354CCD21AA2D3F7E5155EDC7C946A779ABEF49496E9EE465F5A4656E9EE467F5A4556E9E34CEEA49EBDC3C29C8EA499BDC3C29CCEA49DB5C3C3937397BEAB4CBCD93ECA9D33E374FB2A74E87DC3CC99E3A1D73F3247BEA74CACD93ECA9D35978A2CC9E84ECECA9D325374FB2A74ED7DC3CC99E3ADD72F3247BEA94E6E649F6D4E99E9B27D953A7472E9E38CB370D7BD233374FB2A74EAFDC3CC99E3ABD73F3247BEAF4C9CD93ECA9D337374F64EA1CCAF0A41FDAAA3DD15373E5E5DBEAEA79A2BFA83B776F5DCA93C624DBB3674F5D6AD854E092A58655852E599206574D5CB29409F58DEA9F6154B9D9A85FFFFAD7F58CD2CA99466959A6515A966914821A346A8030EA3F77ABDC8DBA7831959907068A3CD028330F14E454B806E5E2495D79764F06E7E24966253C38C39321B8BED5A027BB0BE664FCA00C03D760FBD1D8107E779CA412A57E6A0738B51B2C5C3A751E7DF4510FB36066F404B3468FAF7EA2843851B4E727AA1AC8B375BF3851D770CADAD21395DF80271F7D5ED770CA86D974CED432657764FC2082D5397B5E778E7F908AE753A74ED5A5A8056E19254061A60C12A049A60C12A07E88A322C4F58A7A0A5657E36376FD10C74488EB94CA0C7126352EA8301834C7F387FF9A0EF111AB1B8C1C9A295F0822BD37E4AEC1E08AFD43FD63FD11FF08FF287F501D2E9802CEB50DC6DFB5AE996A585FDBE083C173637F55F5DFFEEC577579FABDB36FA6AEB7B643334BB2314306668F2CCC509A995755FDEB1FFDD0CC6C998D691B987DB230ED3433BFAAFA9F7FF52333B3553666D8C01C9085194E331B5755FFECCB7F31335B6763460CCC2159989134B300D2F397FF6666B6C9C68C1A98A12CCC689A595855FDC77FFA8199D95633C317906FBB01339C43BE3D37F9D5733F3533DB65639AF26DCF2C4C77BE3D37F91F5F7BD5CC6C9F8D69CAB77DB330DDF9F6DCE4EFFDF4AC99D9211BD3946F076661BAF3EDB9C9E76AFFC6CCEC988D69CAB7655998EE7C7B6EF2CB3FFAB999D9291BD3946FED2C4C77BE3D37F90FDF3D636676D6CCE805E4DB52604673C8B721FBAED3DF7398B41D87995DB2314DF9B65716A63BDF86EC1F1CBDCBCCEC9A8D69CAB7FDB230DDF93664BFFBD7C7CCCC6ED998A67C3B280BD39D6F43F6A9073F32334BB3314DF9369085E9CEB721FBC8F91F9999DDB3314DF9369C85E9CEB721FB3F6B0F9A98AD601CDE58F932F36A4506A74B5DE306F3A752D3F6BE69F6BB67A6DF2183DFDD33FC76E743A56AA74F31FBDD2BD36FDBE077EF0CBFDDF94DA9E36F5C66F6BB77A6DF6183DFFD33FC76E72BA56A963F64F6BB4FA6DF1183DF8333FC76E71FA5263DF3A1D9EFBE997E470D7E0733FC76E713A5FEE3EEB126BF5BA87E7A28D1D21FF28FF487FDA5E0E756E9AFD51A7E97FE5E0F93B49F7975CE2C411EBDD75309E867BE6A8E02DDE7F781B2FB5381F854283E695BFA3BB64C225A7D5BDAA02DA9EFDDB6E87178DA9672698B16A46D713E15884F85E2D311AB038CFF9B38B68CF3C7FD15FE6118AB71F87FB8604F86556DEB9A28936643F6E911C69F19579DD44055A47CEDFC01BF0D71310C9C8E93A19042BA9C4F9216362AAE2B52665D9D47305FC0F0B2DB84DD8E5DDA927405A069831AA2850CB4920668A16CB4BAF2276A7F4CB4C10DD16C03AD6503343B1BCD697C2DA40D6988A66B871119B4560DD09C016F3DDA11AB992A8361ADAF3D94C891F0ABFAF677A8F3ABD4B77A9AA25E2F24DF951A4E2E497DCA07FBFB4333D152F93AC2EF75A94FA25D93E17DC03F0DEC9A06B932E24F808D0160DF919173DBD5B554B9FCD29D93F51C48BD9AC45DD2F24549CB17252D5F94346D7F1BC88405CAD705283188CD0097B258463CB5A82B50995AA638F7E9340DE934ED82F6EB9005286493E0F3E18209D2675F674853B36EAA06C5DAEE1727B804EBA9154A5FD0A95175870B7A6578AAA03AEEEA0F62B590F24C41784B2063E62B5F37CC3D95E0B445E5193FEE0451E3D610767CF479DA0E959FB2A31D64C142EDEF4848BD0A40A6EBAB4446AA47EA0A557DBD545CA6AA19F2B7838AE89AB01BC44CDC3F1CF4C6B9D2685D86CF4DA0263469EAB91DB6BFEE5C5D2ABBE8799974C5E77C2A109F0AC5A723566FE817152B5F77C804D3202B688039ABCFC930AD7D5DB1FABA5FA52A0C5149A7ACD3D33F3AC30E563118B4FB7AC0AF8642048E023FCA21C811689046FB9D775178EF44EB34B0645A86254575AD55AEBF76274A5D7A58D24AC57589EC0D89A88BED78D0D5D928A34BE0EB087950EAB833929E594AF9ADA79FD0EFDB0BE6ABDB5D9E1CC475E612351B3496AA35AA4ACD525BD4D5F86E0A6EA25B89B70084D47478B70D6FCF486B4C06D9556A057C0E42BA1D563FC1592FAC37144E7CD2BF3A0C1E660E284D4A172955436F6AE8430DB8DADA5AB8824EE96250AD5527BFFC522DD6E54F2BD7D4C2F7E0C717756A25F8F365DD97EA47274EABD377FC520D58FF3B55FEEA7935FEFAA8BAEB4085BA7DE1287572E94EB574DA33AA4BD95BAA5FF536BC9BA672A44FADEAD74AED4FAC521343FB55ED0F6BD5639F7EC536A13D354AD854F7FBAFD4C9938FA86042A91FEC1FA9AE286E4E93C8A93B1C16E3B6FDFD908FFE7AAFC215A7592BAAAAB6048F15B457C70AE42D6BA95B3E1E2E2806276F853800AD4363F87BCE070D0AF4F8DAE98A93BE7BC757004EA92EBFF0A93FA86EA59560C2161F267747EC2C95285F6BEC9F94630F25AEDB2C78A78B4085DA007F3ABDA0949682760C72DF10ED7967D01C066F47C2AF46C1B5B153510F839F8FC3829DE7B49C43B15E86DC158DD8B12192940042EE7FF56DD2D29590BB96405ED37D08085429046E60D960E0C523B148C04B9E0DCD775847453A9801888AC91072150CDAF1B8A7F40A78BF49112A617B89D2F75CAC03A7A358476C3818085E0A9ECE34413B38C83B1610128178D0A3D0ACC07B9CAA30AB8C235628742958B3309D20EE467B4D0BEBACA8870B581D4C82C6BD548D8272300E9843B1B91F01B5C6703FD457CBD66FB8BAB4A2A2024C8BD801BD5760C5CAAB56946A3114DC81208E052389AA4B6571126B33DD4DD756C71BB07B1068EB721DC6EE90B6467F3B09DACCA1D8FD2A55719469ED72960DC7567AAADF096A78CCA50AD338FF0CB06E449674D0652A16883BD92374090C9B956306D1C91FB1A3DA30DB8E545E3AC3728AB35828A87B48897024E479918AE41E63F170DCFBCC15C939A2B0350A061395DE9B34FA828C0AC4C2C14B104FB9E67532295479E94CCA299E12C140C41EEFB5515170D3E1BBAD78FB668EF195088412C10997DEB4DCF25728108F8EBE14C6E51A5BA1782454A47C23516CE357BA6F5E0A83B579CAB138181B73A92CCE2DF381CD365EED50EC12A4F4AC6F940D83A1586CE27F85713916E0502C3AE6D2989773560C45C29597CEA41CF35A2812F3BCA28B7DA31C06A6C5275C7AD3728EB7C8E84B61DC05C45662CCA53228C7380AC7BCCFF0B354E505F5F9237622EC8D4DEB71CC3E1BCF50580616EA11689619A5A9783C8ABED51F5BF51874392E865D53F05C884DE0F96670D578128CEEE5DB2A00D7C93811998242DB171DEA2D34A2CAB0FB65AB503D3C843948D79087618FA01999F0A01D0DCEF4121ACE88F0523506DEEB631174A65D09D20B1A4DC413F1E4C530379DEDB434084686D0D00B184304A3E181DE9812D1B3C2763811F4C2FB20DEFF5C46EF82888A5C9C49B5FA288D40C0C599E732014214168DC239C2702814F524E642AE98D38B14C00A85627A1E206C47A351AF904E00F53B9BDEC5E13D50ED5820ACCBB00D8DF0282FE8112C1299E5B50C277E83D89BCFFCAEA952EED38EB0868906ECB1DE5817AA57B7E4DC00422689CDF0C2AA2867126D5D9CDF25E05D19BCB331A396611F557FA3ABE4CD7808D61AF82B03FF62204F4BB0F4E8E5FEA81D0F17D41FC2E94C98085D9CB15BFDB044D0D610BCB3E95D0C43B81457EBCA5027CE3A3AE4CBB0080622A161DE58A463CDE16AA7DFC529C62358429C92110F45B1B9880613A32FBE1D214CD132BC86F01AC4749C09ADE06048E928A676EA73AA724283C2A1B863582890F0C6B00815509BB259CA88009AE12C10250298ADA2C3BC30215502429C7F6CAE3A23D4FC203E96F406EF14B0286507C7901066168D0F73D245A8A18DC4C7786348EE65A60C3B67FA0FEBF57050CF3143260E5C7CC36C8C17DD73DF0CBDF325CA591A4D0CF78614C1A00530F66DAA106DAC0EA5057630429DAA081A140F7812745D0432C0B6DE1D188AD991CBBC0206A0592AA38A3F41499D4AF6185C63545243943136534311C2065FFF4FE7E304EB3A9590CE2E51DBD6D9381A9AEB450886AB4E800B05CAA201F817833C5996B00381D2CD6B97AC59539688F0DBA9097AE73400E1A417D6A4EAB528159E322C5CA9121FA5B88C52E1C368B1B183160C0DF2C69E488A13C6FF5E74DA6D574D1AC560FBB1FE0CAEBCF82C276B6AD66808DC602AC2116EF362D8DA39995757A73A9A7750AF3046B5FB66B2547F5AE27A5F4D5937C6D95FBFB7052D88FD07288E541D785105469093AE070815F363773592F08218A4F62FC4573918D775513C1174F63804067961829357B12B9908604720168F8FF782645FC058DA5931D79B2987D37A39AE47D8112F46D711AE1662B62771EC141F1DC78958D823027572C3A160A899694D27E81FA24683C3B6219898ED8515E94E770807A4CE3B9B65E929AF546512C1E26DE3FB280E741250F8537B7BCAD47C67440D43E918465F14D7FEA121C1114E3CD0D414D40ADC8F8C7B0512210FF24B34959CB1683CE891FFB6B3392714F3C4FF606A44140C2DF2CAFF20D76CA98E7794DFC578B41BA05E6F14474B416C4B6CD25CA696E3885767A528659DD4F8B88C7EEB74D66341FC1F99E95D60DCC3714766670CD2B53486759C5B1AA3A6CD2DC5C62CE645DF234A034B8C0E5D5642D00559E00DC7C6E672199EB7AC67FB87500285B03F5AFF1B9DB0E66F9C7E5B2CE31BDA2812087A617EE62C91D3D2861A61A118E40D31D5CAC44383BD03E06CA79D0825C678C5D0B57525753D9D762740C536E67A67537F3C4645346ED3544762BC378645FE8CCE051694B03DCC1BCB623C3889BBDEC579C01271268DE34EEEC3D9DB50241299E7853576969597CD17B4F262EEA2054389E0D4FFBF0D7726C9436BBCB25227719C27BCA234D5BB0CDF3BD339A9499F522C1D8E5E25357F119A182BA366500F9CD670FD19A46FD27E46589A1AF36EC6EC148EC471A23D1E08547A11D2F0379F6687D8B73DA901533328588E62180B319CD48CC70779C34B2D65C5139E00B8A719817AC193288BA5E7E7A3B16004DB0EEC5D472376D443E26667E3BE33B68DD891A837A820E6D2A920D986654E3F55443F5F4477DE63D1D0C88B4F758297FB76E678CC2EF7D68ADCF62EC76D2F8632B1D4E40DC476D813FF6928930804E333BCF0DFBC9CD870833814EF972BF78FC69B239D9DFEEE4652D7168960C02B53B5B14EF382202F56D8D3A08C05C944D21B58BAD14B37A901EE4985787297B20254275E4CB2C4A883AD6BE34410E7751376D01B4E9C3BD271678D10724C2832D50B987DD1B6E2E8526EC7420BBCB032423579E6C8D1E63ADEFC8D79841AA34D0CEE6F74B2C643514F324E7AC22892B03D18FEC42FA8B63777DC03B170CC1904DB116F2C8CE37652FD0C25BD2F702E3E49693B0DBCC353BD6006EBE5ED09F8D431FD0427BD43720BEE494CDD98BC254BDDAE5B98483438DF0B2BEBB730FAD955B9A6E3D7B5374EFC468297C2728715ADF48615FA46E30DACA7BDE8FEC7558277700462012FF24682CAF564AC872F24D4B9E78DB06D577A61F99FB10D2B118EC43CB229F28D621327362276B0DC0BA3EC0BEBA847A37674DAC5B76334E4E5C1BC2C13A455D7F4FB10369DA9F5D8002ECDA4B59C1DAA31DA06A9B7071C6A8ECD5D308077EC4613092F4C0EB9568F426C66EA3DAE1CC19836E0F4D822577A6182CDF1915A372EE5350F2909D6934484C426F32B6951CC8963D7FA773C1E0EE354403881BDDCB017554E2A4441A4DB1CA9D27227374859B45E6802F524CE503012C4AD8BA1706CB0170188A6A30C46D731DB0B468C93682A340483B97F178C04075C7C5E25ED2B8ED85E2C6756E2D009378F84232BBCF1DFD92E12E3F5E1286F7D88F29EC428ED8B5A87C3B9180FEC22BC7D2435DC5B46FA51D73736D504B6EB97B1D4924B3810C06D1C016F522786B167C3C0D31BDF83582DC4A87A883A8BC311E874380B89C1F0C5C74EA5558BA9848DD236348CCC90935912C3BCE1DABCE3B994A7CAA7624B99FAAC831F0C2570B632E8C546CDA9386A73E363D877487F8E63AA3866AD741B66C77121271C882CF4CEAECCCDE1917A6BD1CE4A8394A6B75C656A3BA5AC3A7395DA8E87BC09459CF372944210A36B9CAE095E194ED50911DE1656891B0B9C6B84CA46FA662A9B4B3F6F8AC33E40D89B7B73A6E22E04678E3EE291FF5167436E281EF3C2FF44F681AF6D87E3B637DC088EA3C641E1718A5214EB9760D063DC28C6E16EA85070A0573C0C4EC0B9B524E111055B9F502CE1C5A6C8A9105B4BA05ED3333633D418BA5D2118EE7FF151F3531B3E82744F5F62A41790D085AD8AC0F0D81B2B521DEBF9BCA1B6509F17AB07E8117F0C5CD21F82FF4EBDE2C53D19F3B19D9D4F43A6086D3B0FF1DD094EB58B3D8C68C81995EB1381A2713B3AC00B6B62A9DB50829E783F59D5A99DBE026507153EEB312FA4D48FF5217B70FDBE4FA927C34A5D07C5F59388520F4138BF8829F544BE521D872AF56F054AED1CAED4AC22908F0039786027C19F164ADD314AA915254A3D3E46A99A564A558F55AABC0DF83B0EFC6DABD40D13945AD45EA9AF2682DF1D947A78B252BB3A29F5DA54A50E7751EADD694A1DEFAAD4BE1910C560CF3FCE54EA04D8F3EA6CA5D6813D3DE72AF503B0E7CD794A6D067B9E9DAFD4B2C6C05DA05465A152FDAE80703451AAC342B00DECCA5FACD4D9E64AFD7289528F142BD56319D801F61D5CAED458B0EFFA6AA586827D952B94FA3DD8D77315F80FF60D5D033676546ACE3AA58AC0AE773628B5BD9B526F6C526A26D8F3EF9B953A6029F587AD4A1D017B266C57EA4B48B121572BF501D8F3EE4EA52E037B76EC52AA05C4D3F3BB8107F654EC017E33B0B9A02D38F98C3CE7B0C2BB0B8AC1A5BF19F5339F3A0EB2E319471B1E00D9818C230DF5D34E0B41AEF28BD553DDCE37FEA4C6A7F2C1BA226B10EB7C4B3FBD679F520B0E2B75EC41A56A5F50EA9FDF86907CAE547BC802B53F53AA193EEDB129FC5FAE5AE0018A25F8BF5815A83F3CF9AB6F4F593ABD7C11EA0C40F940FC7F1D4A6A54DAA8DEFA3C57C8697BE19B77FCADE98182FB50FB7AFCDF87B57F5EDED7F5BE1FBFFFAABCBFEBFD83F844B43A7D6023FCF931769CD797E57C2D3D51D0479DC8881BF7AB29BF9B035614A8DD2949E3045AA53F6BFF6B3AA53F5BFADDF8F4E746F057D322FD591F353CA720FD1932A76F4E93047ABB05D2648B483FC82A56734E0FE76165055631BDFF0AAF495F0B94F950D6C5E7965906592383CC6F90E51964F906596383ACC0202B34C89A18644506595383AC9941D6DC206B6190151B642506594B83AC9541D6DA206B6390B535C8DA1964ED0DB20E06594783AC9341D6D920EB62907535C8BA65C8FE88A906751FFE773EF95405E6BFB7F093059F2A209F39DFF9D530CC87CEA73CF8D4883FE5C3273F7F6A0C9FF2E893F66D38E637E7930FFA9FF854582B1FDE5BF0C99137522330B7BDA9CFE306BF46C2FBCA24FCAF1993CC239D7C55EE3C39167FDB5825516E21A109112C24149196C5044B102C22946B821A41040B094DF9B72942232434234223243427AD464C6824088D1C42CD78248C2742234168C4043F125A10C18F8462D2F233C12F087E87909CAE09B5D388E017043F13F2905042843C24B424AD3C26E409421E856104107C358F11214F10F298908F845644C847426BD2CA6742BE20E43B84DA99184B3389902F08F94C688C843644688C84B6A4D598098D05A131A574570CC30D44682C088D9950808476442840427BD22A60420113AEB5F42787D033D908EAF802889191AA1A5F3D928EB63BDF1630AB10591D885588AC8EA455C8AC426475A2D01422CBF7FD233A34C5472834858250C8842648E84C842682D084094D90D085084D1CC2C93B3561718AD004095DF9B729421112BA11A10809A5A455C48422912245145F8331CD0711A14884A188094D91D09D084D91D083B49A32A1A988A5A6C6586A2AD2BC29139A21A127119A094233263413B1D4CC184BCD442C3563427324F422427324F426ADE64C682EC2D0DC1886E682D09C092D90D087082D04A105135A8830B43086A18520B460423112FA12A11809FD48AB9809C5220CC5C630148B942E66420912FA13A144104A985022C250620C4389084309135A226100115A22612069B564424B416869CCAD2D05A125135A216110115A21613069B562422B41686524B41284564C688D842144688D8432D26ACD84D682D0DA48682D08AD99D006090122B4414290B4DA30A18D20B43112DA08421B26B4454288086D916093565B26B41584B646425B4168CB8476480813A11D1222A4D58E09ED04A11DB576094D48C689D04E10DA31A13D12A244688F841869B567427B41686F24B41784F64CE8808438113A2021415A1D98D041103A502C453096C244E820081D98D011094389D051103A32A123128611A123856134F6CD4611A1A328D31D99D00909C389D009092348AB13133A8930743286A193084327267446C24822741684CE4CE82CC2D0D91886CE220C9D99D00509E544E88284246975614217D1C67521C228EC9B5510A18B084317267445420511BA226114697565425741E86A24741584AE4CE88684D144E8868431A4D58D09DD04A11B119C3EF248227413846E48F81EF8F52934726BACA54AFEAD514B2FE04F8F524A0D2397EE06590F83ACA741D6CB20EB6D90F531C8FA1A46E7FD0C7AFD0DB20106D940836C904136D8201B629095196401832C6890850C32DB200B1B6411832C6A90C50CB2B8419630C8861A64C30CB2E106D908836CA441566E1811976249A9A492528A25652CE5F6522E29A5A2A4941A4B4AA92829A55C16BB23611C11BA23613C697567427741E84E843149A7DECA231D37A13B137A206102117A20612269F560420F41E86124F410841E4CE889844944E88984C9A4D593093D05A1A7BBD6AD4DD5BA3D05A127137A21610A117A21612A69F562422F41E86524F412845E4CE88D846944E88D84E9A4D59B09BD45DBD49BDAA621A217D25B8C2C7A33A10F126610A10F126692561F26F41161E843840224F889D04784A10F13FA8AF99BBE387F338BE66FFA8AF99BBE62FEA6AF98BFE92BE66FFA8AF99B7E1886D9FC4987610ED9D18FC3D04F84A11F85A12F86A13785A19F08433F0E437F24CC25427F24CC23ADFE4CE82FD2A13F117A21A10711FA0B427F260C40C27C220C1084014C1820FA080388D00F097D883040F41106306120122E23C240242C20AD814C18286269A03376997FB71EBB7C7C2711060AC240260C42C2E5441884842B486B10130609C2209A5DC13E824A95874122B70E62C260245C4984C14858485A83993058100613619E2694CE23C2604118CC8421485844842148584C5A43983044CCAE0C7162E9CB0D38BB320467578EDDAB5FBEA4A3ED660D615619B29610AB0C594B49AB8C59658255E6B0D43A6495B96672ACA4A3ED6695312B80AC65C40A206B3969059815103117705835D59836BF2DCF231D3721C0842012AA8810444235690599101484A08BE0AB59426913148420134248B88A082124AC20AD101342627C1F7208C92A4108891C1C62828D849544B005C16682CDE55CA7818D84547AEB34B2315534D3D17697789B596164AD22561859AB492BCCACB0084DD8982261119A30132248584384882044981011B55684EA143F1214C55744A44884095124AC25421409EB482BCA8428A7B9F3C90FBF5E4FF9398A71A554CBA4F39D9B13654E0C391BC88718723692568C393191B762149229D85B984C218909428C0971246C22421C099B492BCE8438A786B63D2ECA7DBC5EB98F8B7489332B81AC2DC44A0856825909912E092AF75B920E318F74DCA14930612812B61261A8200C65C250246C23C2508AAF624D38B985084345188632611812B6136118127690D630260C132932CC98B78689300C63C270245C4D84E148D8495AC399305C948FE14E2C2DDEA1C350BA9D08C345188633610412AE21C2084118C18411A2B48F408253E31663691FE19476603ADAEED08C60D64864ED22D64864ED26AD91CC1A294233D2090D84C349F93CD271D7272399508E846B89502E08E54C2817B9AA9C52A433A6487B22948B3094F3F8F9B7C6F1B31C4BAF11A3EA15627CBD86C6CF49C338A7C2201B65908D36C8C618649506D958836C9C4136DE209B60904D34C8261964930DB22906D954836C9A4136DD209B6190CD34C8661964B30DB23906D95C836C9E4136DF20BBCC205B60905D6E905D61905D69902D34C81619C6CF492C297BA8A424B1A4D4506E4F7249498ABA3E492DEF5EACEB93AE7E97D3722545A94C72A9AC40D65E6255085605B32A44A9AC70AD072AD5914A6585A8C52A98300A09D711611412F691D628268C1235F1282228D18F182508A398301A09D713613412F693D668268C66828EA1D1F57A45A345AF68B4A86346336B0CB26E20D61864DD485A63983546D493635CE351DFB736527C8D11A119C3844A24DC44844A41A86442A548914A77EBBB7833112A05A192096391703311C622E116D21ACB84B12245C6D22AD196A413923CD27113C632611C126E25C238241C20AD714C182762691C85E17A1D860DD711619CC8B7E398301E09B71161BC208C67C278114BE31DC2574858BC8F08E3454A8F67C20424DC4E84098230810913C488778268AF5225638288A5094C9888843B8830110907496B2213268A589AE88EA52F6B8830511026326112120E116192204C62C224114B931C42F14D4927AEF248C71D4B9398301909878930190947486B3213268B304C36F6B3268B949ECC842948B893085304610A13A688304C21424BD1CF9A22C23085095391701711A622E16ED29ACA84A9A23C4C358661AA4887A94C988684A3449886847B486B1A13A6891A7D1A115A638D3ECDD57B2F493ADA6ED634664D47D6BDC49A2E58D399355DC4D77451A3B7A5D04C1729329D093390708C083390709CB46630618648F31944682AC60733448ACC60C24C249C20C24C4198C98499220C335D69AE3979A4E326CC64C22C24DC47845948B89FB46631619648F359AE11489A304BA4C32C26CC46C20344988D8493A4359B09B3452CCD76D7E3A59B88305BA4C36C26CC41C2834498230873983047C4D21C6318E608C21C26CC45C24344988B8487496B2E13E60AC25C22948A3A70AE88A5B94C9887844788304F10E631619EA865E7116100B6A78788304F10E631613E121E25C27C243C465AF399305FA4C37C1186CE44982F08F3997019121E27C265827019132E13B17419D5B24792CE2C6F1EE9B873EB654C5880842788B000094F92D602262C1061584061E883ADDD6D445820C2B080099723E129225C2E089733E1723122BFDC3593AF77A8E4918E9B703913AE40C2D344B80209CF90D6154CB84294B82B88E0ACD02689708588A52B987025129E25C29548788EB4AE64C29582702511703F818A11E14A11862B99B01009CF136121125E20AD854C5828080B89D05ED4AD0B056121131621E145222C42C229D25AC48445222F2D224230E9ECEEC8231D77995EC4A3E41FE328794DD6B5E53539AC322F368C669618644B0DB26506D97283ACCA20AB36C8AE32C85618642B0DB25506D96A836C8D41B6D6205B6790AD37C83618641B0DB24D06D966836C8B41B6D520DB66906D37C8761864571B643B0DB26B0CB25D06D96E83EC5A836C8F6194BC184BCA692A298B454959CC2565319694335452168B7D31369594C5A2A42CE6B2B804092F116109125E26AD254C58226ADD2544E88E6D536AAFEC124158C284A5487885084B05612913968AD2BE94083D924E2F3D8F74DC75E252262C43C2AB44582608CB98B04CD4EBCBC40AED40222C1384654C588E84D788B05C1096336139B7E0BA37BBDC35FA76F6FC2E77F56F4B93CE2FDCBCE5CCAB42DEEBC4AB12BC2AE65521EF0DEA4B5751887A23ABCA353BD22BE968BB5955CCAA46D659625523EB4DD2AA665635B374EC5513CBC679FD00C55EB5A8EFAB99701512DE22C25548789BB4AE62C255227DAE72FA0E2FE09ED0D2C344B84A10AE62C20A24D412610512DE21AD154C5821664756B86691BBE3ECC80A677604F29BA3ED66AD60D64A64BD4BAC95C87A8FB456326BA528312B8D733D2B056125135621E17D22AC1284554C58254ACC2A1E49E9F99DAD145FAB449AAF62C26A247C4084D548F890B4563361B568E357BBC2905EC55B2D4AFD6A26AC41C247445883848F496B0D13D688585AE39E4352EB88B046C4D21A26AC45C22744582B086B99B056C4D25A22B44D3AE3833CD27187612D13D621E15322AC43C267A4B58E09EB44BE5D47EB059B309652F360EB443AAC63C27A249C23C27A249C27ADF54C582FC2B09EC2D05FF4AAD78B585ACF840D48F89C081B046103133688B1C7062244B174A75A900D220C1B98B011095F10612312BE455A1B99B051E4A58D5C57B9FBED1B45183632611312FE17113621E1DBA4B589099B440DB5C9D823DD24527A13133623E13B44D88C84BF22ADCD4CD82C72EB66774A736EDD2C62693313B620E1BB44D822085B98B045A4F416D77C643A2F6D1161D8C284AD48F86B226C45C2F7486B2B13B68A74D8EABE372899BA3768AB08C356266C43C2F789B00D093F20AD6D4CD82662691BADFDEF14B354DB444A6F63C27624FC0D11B60BC276266C17B1B4DD9D0EC9D4ACCB761186ED4CD88184BF25C20E41D8C1841DA247B5C35D2FF1BCCE0E41D8C184AB91F043225C8D841F91D6D54CB85AA4C3D5C6BDCC570BC2D54CD889841F13612712FE8EB4763261A720ECA43D6F4E8B1D22C24E910E3B99700D12BE24C23548F87BD2BA8609D78894BEC64987DAED62D6E51A915BAF61C22E24FC8408BB04611713768994DEE5CA4BE9DA7B9708C32E26EC46C23F106137127E4A5ABB99B05BC4D26EF758BC26B55B7AB74887DD4CB816093F23C2B548F847D2BA9609D78A58BAD63547985E63B85610AE65C21E24FC6F22EC11843D4CD82362690F113A8AF5E43D82B08747CA3F11EBC91BD49A6FB81FBBC630A2D96B905D6790ED33C8AE37C8F61B64371864371A64371964371B64B71864B71A64070CB2DB0CB2DB0DB23B0CB28306D92183ECB04176C420BBD320BBCB20BBDB203B6A90DD6390DD6B901D33C88E1B64270CB2FB0CB2FB0DB2070C23E51A2C293FA79252234A4A0D97941AD157AB71AD64A5D7CA6A4449A9E1B2B81709FF4484BD48F867D2DACB84BDA23ED94B84DF96EB3EC24222EC1535D65E265C87845F10E13A24FC0B695DC784EB4469BFCEB827E93A41B88E09FB90F07F88B00F09BF24AD7D4CD8276AAC7DC6167C9F88A57D4CB81E09FF4A84EB05E17A265C2FC2703DB5E037269D55BF3CD27113AE67C27E247C4584FD82B09F09FB458F76BFE833F723C27ED136ED67C20D48F815116E40C2AF49EB0626DC2062E906D1DF4CB54D3708C20D4CB81109FF46841B05E14626DC2862E946BE7FD83D2772A348E91B997013127E43849B90F0EFA47513136E12B9F526D78A407A55F42641B889093723E1FF12E16624FC0769DDCC849B45186E36EE75BA59106E66C22D48F82D116E41C2EF48EB1626DC2208B71809B708C22D4CB81509FF49845B91F07BD2BA9509B70AC2ADAEB90F5FFB6344B855106E65C20124FC81080790F047D23AC084038270C0B82FFE80201C60C26D48F813116E43421D69DDC684DB444ADF46BD411CE141AF338F74DC25EE3626DC8E047D4483F349137C3E47EB7626DC2E08B71BFB39B78B30DCCE843B906011E10E243422C21D4CB84310EE30DE01718720DCC1848348F013E12012F28870900907C53EEF834CD0F34507EBED2D3D2858079975C839CB8258879CB32C887588598744FD71C8B8667948100E31E130120A887058100E33E1B0C855878DFB360E8B343FCC8423482824C211243421C211261C118423C6301C116138C2843B915044843B91D094087732E14E91E67752BE9D88848944B85384E14E26DCE59CC74184BB9CF33888701713EE1261B8CB78C7C85D220C7731E16EE73C0E22DCED9CC74184BB9970B708C3DD22969A13E16E41B89B09479DF3388870D4398F830847997054108E1221907466B8F348C71D4B4799708F731E0711EE11847B98708F88A57B9C16FB89E3A20EBC4710EE61C2BD48684D847B91D08608F732E15E11867B290C03458B7DAF88A57B99700C096D89700C09ED88708C09C744EFEF9858512C23C2314138C684E348684F84E348E84084E34C382E08C7E9AE179C5DA9994E84E322968E33E104123A12E104123A11E104134E08C2090AC364244C22C2094138C184FB9C733E88701F12BA10E13E26DC2708F711618608C37D82701F13EE47425722DC8F846E44B89F09F78B94BEDF38377EBF4887FB99F000124A89F00012BA13E101263C20C2F080FB1E68BEBFE9014178E06BEE50BEB0D5633D4A396918B93C68903D64903D6C903D62903D6A903D66903D6E903D61903D69903D65903D6D903D63903D6B903D67903D6F90BD6090BD68909D32C84E1B64670CB2970CB2970DB2570CB2570DB2D70CB2D70DB2370CB2B306D99B06D95B06D9DB8611F1492C293DA8A49CC492D2934ACA492E292745593C496571A438EFEAA428ED27B92C3EE89C574384079DD36488F020131E148407893021E99C7A95473A6EC2834C78C839AF86080F21A12F111E62C24382F010CD69EBBBCDD4C9E5447848101E62C2C348E847848791D09F080F33E161D1577BD8D8F37C588CF51E66C223CE6932447844101E61C223E20E97475C6B9316AE4D3EE2AC4DD66C4C3ADA6ED623CC7A14590389F528B20611EB51663D2A42F3A8FB9E235E397C54C4D7A34C780C098389F098203CC684C7446FE131D7C8558F2EF348C74D788C098F3B27D710E171E7E41A223CCE84C745181E77FA23076B92CE1A681EE9B863E971263CE19C5C43842704E109263C21C2F004ED65DB9774EE40C8231D77189E60C293480812E149417892094F8A398A278DF3B64F0AC2934C78CA391B87084F3967E310E129263C2562E929E3BD4C4F89587A8A094F3B67E310E16941789A094F8B587A5AACAFA6D2E1691186A799F00C12224478060951223CC3846744E97E86EE2EBB0D73EB2D447846B4E5CF30E15924C488F02C12E244789609CF8A303C2BFA85A9BD0DCF8A303CCB84E7909020C27348184A84E798F09CE88F3CE7DADDA2F723E7918E9BF01C139E47C230223C8F84E144789E09CF0BC2F346C2F322969E67C20B4818418417903092082F30E10591975E70ADF6A4EF547C4184E10526BCE89C8D43841705E14526BC28D2E145BAB313E71D6B53F38E2F8ADCFA22134E212149845348A820C229269C1225EE947B170BA7F429114BA798701A09A388701A09A389709A09A7452C9D769507DFE2DD44382D62E93413CE20610C11CE08C219269C112DC5997ABB58CE504B7143D2D176B3CE30EB25E7FC1262BDE49C5F42AC9798F59208CD4BC6399D97447CBDC484979DF34B88F0B220BCCC8497459ABF6C5CE17B59105E66C22B48184F845790308108AF30E1151186578C6DF72B2257BDC2845791309108AF0AC2AB4C785584E155518FA7EAC057453ABCCA84D79C135288F09A73420A115E63C26B220CAF11A1B99867794DC4D26B4C78DD39218508AF0BC2EB4C785D84E175719F412A1D5E1784D799F00612A612E10D244C23C21B4C7843D4E36FD0BAC572B19BE80D417883096791309D08679130830867997056C4D259636E3D2B086799F026126612E14D417893096F8A587AD3B5E74AC7551EE9B8096F32E12D24CC22C25B48984D84B798F09608C35BEE15AA64EA4EA8B704E12D26BC8D843944781B097389F03613DE1684B7454B91BA0BE06D41789BC7C67F25C6C66BBED118598F576A0D6398770CB2770DB2F70CB2F70DB20F0CB20F0DB28F0CB28F0DB24F0CB24F0DB2CF0CB27306D97983EC7383EC0BC3D8AE16537A1EA5742DA6F47C4AE95A4EE95A51E26A9D1277CF099D970A8E534AD78A94AEE5BCF48E73520D11DE714EAA21C23B4C7847E4A5778CB5C63B82F00E13DE754EAA21C2BBCE493544789709EF8A12F7AEB117FEAE20BCCB84F79C936A88F09E73520D11DE63C27B220CEFB9EFAA5BBC8308EF09C27B4C78DF39A98608EF0BC2FB4C785F84E17DB152D88E08EF8BF6E17D267C8084C544F800094B88F001133E10840F5CFBB3D3BDBF0F44183E60C28748584A840F91B08C081F32E14391973E34EEAEFB50103E64C24748584E848F905045848F98F09108C347C6307C24081F31E163245413E16341F898091F8BDEDFC762549A9AE9FF58A4C3C74CF8C439F786089F38A7D210E113267C2262E913F7BC23EF26FA44103E61C2A7CEB93744F81409AB88F029133E15844F8DFDCB4F91B09A7F9B227CE69C454384CF90B096B43E63C267A23C7CE62E0F3C3BF09908C3674C3887847544382708E798704EA4F439577F29BD0BE39C48E9734C388F84F544382F08E799705EA4F479F7CA399FED7D5E84E13C133E77CEB921C2E7CE393744F89C099F8B74F85C9C3A3B80089F0BC2E74CF8C239E786085F3827C310E10B267C21085F50ED7D186BEFD4FD805F08C217D44EF7528B1B2B35C897BD751E69B55467F275CF2A49CF9FD0B6DF5A500CCEFD548CA190522D54A36FE311FD3EF56DF8F3F9F4B2CD9C263F53D7E57F0B12E71C1ED17F1E93C382807E8ED72F30681654041FE2F5232CFA1614AA8FF1FA0916230B32E8A778FD0CB3A4058D502D5EDFC166C7820AFD5DBCBE8755B80595E3FB78FD00AB430B3AA2AFE3F50DEC7A5AD0A93B8BD737B11B674107E92DBCBE8D5D220B064167F0FA120E7B2C1850BC8CD75770086141E7FC55BCBE86DD710B86E2CFE1F5791C7C5B30AC7D01AF2FE240D68221E229BC9EC641A1A59EC029254B3D89133F967A0AA7672CF5344EA258EA199CEAB0D4B3382161A9877062D3520FE3F4A3A51EC149424B3D8A1378967A0CA7D92CF5384E8659EA042E0E59EA3E5CC2B1D4FDB8D062A9077039C4522771B2D7520FE294ACA5EEC685494B1DC5E5434BDD838B7C96BA1797E22C750C17CC2C751C97B52C751097C72D750897AE2D751817982D750497812D75272ED65AEA2E5C52B5D42DB835C352B7E2060A4B1DC06D0E96BA0D372358EA76DC3260A93B7061DF52D7E3B6204BEDC7CD3B96BA01B7D858EA46DC0863A99B70BB8AA56EC64D2596BA16B7565A6A0F6E80B4540D6EEFB2D45EDC8465A9EB70AB94A5F6E186264BEDC06DBD96BA1A37DF5A6A276E91B5D435B891D552BB70BBA9A576E3A6504B6DC22DE596DA8C1BBF2DB505B7675B6A2B6EA2B6D436DCEA6CA9EDB821D9C20376F4752DDE7460A975786B80A5D6E3067E4B6DC06DF696DA889BE12D558D37D558EA2ABCF5C5522BF006154BADC49B472CB50A6FF1B0D46ABC11C3528BF1462F4B2DC1DBB12C2CACFABA0C6F6DD20FDF598ED72ABC31C8520BF066594B5D8EB7B45AEA0ABCF1D45257E2EDA1965A8837715A6A11DE6A69A9D978A336945FBC9DDA5273F1A6674BCDC35B932D351F6F20B6D465789BAFA5A6E27101969A8637F55B6A3ADE706FA919785BBCA566E2CDEB969A85B7985B6A3C1E5561A90978A084A526E2B10F969A848733586A321EA160A92978D081858718EBEB683CD6C48261C618BC56E2C120961A8BC777586A1C1EB261E141D1FA3A028F8BB2A0DA1A89D7723C70C982EA2C89D70A3CEAC5C2C727EA6B0C0F2DB3541C8F16B354028FFDB2A0821B8AD761788496858F4BD5D7201EA067E1E354F5D5C6C3E82C15C683E22C7CACA2BE0EC0A3222D35100F74B4D4203C76D15283F170444B0DC1230C2D5586C70B5A503DF7C26B6F3C4CD4527DF0C84F4BF5C583391BA97E787CA6A5FAE3219796EA8A473D5BAA1B1EC86CE1A3BAF4B53B1E0A6BA91E7874ABA57AE201AB966A8FC78C5BAA031E066EA98E7864B7054D7A27BC76C6E3AF2DA8D6BBE0B5251E716FA9567810BDA55AE371F1966A8387BA5BAA2D1EBD6EA9767840BA05CD4D53BC36C3872058AA393EAAC08246A2055E8BF1D87F4B95E0E1FC163EA6C3878F49698CD7027C6086058D7B215E9D474E58AA081F0C61D1A3901AD1C39C2CFCF3E183591AE1D58F0F3EB1541E3E9E04CA55413B70E9060BB4EBE0D5688CA227D7FCE575212F1F46A1527F8238F4E3137C143EB3457F2EA0EB5F5EFF735F7FAA83F4F659C67CF1E5FE077EFDBB692B8A9F3E54A006F63DFD037DA2690DE50FFD7D1C9FFFA4E8743985E7B4E8DEA9BE8F593F3F45DF15A89F7DB183F2D83F807257D2AD58BE76A5BEE32EF333F64EF7FCDDF77FD3F93B3E7CFFD36BD71EEAFA1D5FA306F26F36FBADEF9EFFEE89219D8A8F1C05FB07FDEE396DFF33C4D3DFEB1397DA91DDFA9935F3F1E9768EFDDAEE15F44CBE0D149E1D14BE5B5DE16944CF922B226E43D7AEC50E533FAD68D68AAAAA2D41D5B4D8F1A62B45E9673FFFD5AF7F8F1EFA2EA4FCFEA9AE11547C3A2D4B0B9C78A875BE1ADB9D3C2D9DB272D9A6F59BD7576F299D565DBD72595569E58E65556B4A438180ED8366783D746D364073BF14EF45BDB0977E428A3B3FE5F21B1D076B2F621D76A1FC8BFDFA6FCDD7396FD4CAEAEA383E900833C610CCA043E2EA3789531BFFD244FE8F7EFD3F89D64DAC]
}
Add(FileStream,13440710,406,224)
{
FileName="1.exe"
Mode=1
AutoCopy=0
Point(doCopyFromStream)
link(FileName,5019405:Var3,[(412,172)])
}
Add(DoData,10247076,343,238)
{
link(onEventData,13440710:doCopyFromStream,[])
link(Data,9600868:Stream,[])
}
Add(StrCat,16633203,294,119)
{
link(Str1,16481472:CurrentDir,[])
link(Str2,14682019:Data1,[(307,89)(153,89)])
}
Add(Dir,16481472,294,42)
{
}
Add(Hub,13101000,161,119)
{
link(onEvent1,16633203:doStrCat,[])
link(onEvent2,5900161:doFileExists,[(203,132)(203,258)])
}
Add(FileTools,5900161,238,231)
{
link(onEnd,2433285:doCase,[])
link(FileName,5019405:Var1,[(244,172)])
}
Add(Case,2433285,287,231)
{
Value=Integer(0)
link(onTrue,10247076:doData,[])
}
Add(GetDataEx,5019405,294,167)
{
link(Data,16633203:Result,[])
}
END_SDK
Add(LineBreakEx,9027771,147,28)
{
Caption="Имя "
Type=2
}
Add(Hub,9804788,672,350)
{
@Hint=#49:без хаба работает и то и другое, но вместе никак.|
link(onEvent1,4865845:doAdd,[(707,356)(707,335)])
link(onEvent2,8282714:doNext,[])
AddHint(-240,55,198,26,@Hint)
}

я эту проблему решил разделением программ,
отдельно обработчик в автозапусе и интерфес пользователя.
но всеже на будуюшее хочу знать как совместить.

Редактировалось 2 раз(а), последний 2017-08-26 22:59:13
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 497
Рейтинг: 16
#2: 2017-08-26 23:02:18 ЛС | профиль | цитата
FPC? это что то с компонентами из вкладки Логика (в панели для получения процентов) без процентов работает

--- Добавлено в 2017-08-26 23:06:26

File not found: 'hiFT_Math.dcu'
пока можно без процентов

Add(ProgressBarRush,16035786,1148,91)
{
Left=15
Top=111
Width=375
Height=25
DrawProgress=1
Point(doMax)
}
Add(LineBreakEx,12817326,840,91)
{
Caption="прогрес"
Type=1
link(OnEvent,2226295:Cable,[(916,97)(916,99)])
}
Add(CableEvent,2226295,931,93)
{
link(Wire1,16035786:doPosition,[(1047,99)(1047,97)])
link(Wire2,16035786:doMax,[(1047,106)(1047,104)])
}


Редактировалось 1 раз(а), последний 2017-08-26 23:06:26
карма: 1
        ]  
0
Ответов: 12
Рейтинг: 0
#3: 2017-08-26 23:21:32 ЛС | профиль | цитата
RAWY_EX
нет там процентов, мож что побилось.
вот в zip
https://yadi.sk/d/ZsV8NmQB3MMGhA
карма: 0

0
Ответов: 497
Рейтинг: 16
#4: 2017-08-26 23:33:02 ЛС | профиль | цитата
comar, я об этом

Add(MultiElement,12325891,854,21)
{
}
BEGIN_SDK
Add(EditMulti,9150291,21,21)
{
EventCount=1
WorkCount=1
link(doWork1,14826275:Cable,[(49,27)(49,99)])
}
Add(Memory,14148284,182,37)
{
Default=Integer(100)
}
Add(Math,3760010,133,37)
{
OpType=3
Op2=100
ResultType=0
link(onResult,14148284:doValue,[])
}
Add(Math,14032774,175,93)
{
OpType=3
ResultType=0
link(onResult,9150291:onEvent1,[(264,99)(264,27)])
link(Op2,14148284:Value,[])
}
Add(CableEvent,14826275,77,93)
{
link(Wire1,14032774:doOperation,[])
link(Wire2,3760010:doOperation,[(112,106)(112,43)])
}
END_SDK
карма: 1
        ]  
0
Ответов: 12
Рейтинг: 0
#5: 2017-08-27 10:13:10 ЛС | профиль | цитата
нет там процентов
Сори, это я туплю.

File not found: 'hiFT_Math.dcu'
странно, там вроди стандартные элементы

у меня вылет происходит как только я ставлю хаб на событие onQuery, и не важно куда дальше идут данные, хоть на 2 массива.

попробуйте так

Add(MainForm,15416892,154,119)
{
Width=419
Height=261
link(onCreate,9581446:doWork1,[])
}
Add(LineBreakEx,12280247,343,259)
{
Caption="Имя "
Type=2
}
Add(Hub,14895446,287,280)
{
OutCount=4
link(onEvent1,2271599:In,[(313,286)(313,265)(247,265)(247,244)])
link(onEvent2,5926953:doStrCat,[])
link(onEvent3,8389943:doMessage,[(324,300)(324,370)])
}
Add(Message,8389943,350,364)
{
Message="Ок"
}
Add(DoData,10878444,1351,609)
{
}
Add(Button,8513360,161,280)
{
Left=155
Top=45
Width=100
Height=30
Caption="старт"
link(onClick,15393440:doStart,[])
}
Add(Thread,15393440,231,280)
{
Delay=200
FastStop=0
link(onExec,14895446:doEvent1,[])
}
Add(Memory,6423116,567,133)
{
Default=String(compl_24.08.17.xls)
}
Add(LineBreakEx,8130615,567,175)
{
Caption="Имя "
Type=3
link(_Data,6423116:Value,[])
}
Add(DS_ODBC,9220204,511,378)
{
Name="odbc_driver"
Point(onError)
link(onCreate,4912858:doEvent1,[(583,384)(583,377)])
link(Driver,6939220:FString,[])
link(onError,2774394:doWork,[])
}
Add(Memory,4937846,518,280)
{
}
Add(Dir,154286,336,210)
{
}
Add(FilePart,5229429,448,287)
{
link(onPath,4937846:doValue,[(497,293)(497,286)])
link(onName,7579850:doEvent1,[])
}
Add(StrCat,5926953,336,287)
{
link(onStrCat,16714654:doEvent1,[])
link(Str1,154286:CurrentDir,[])
link(Str2,12280247:getVar,[])
}
Add(Hub,16714654,399,287)
{
OutCount=3
link(onEvent1,5229429:doPart,[])
link(onEvent2,6939220:doString,[(442,300)(442,335)])
link(onEvent3,9220204:doOpen,[(427,307)(427,384)])
}
Add(FormatStr,1359034,630,301)
{
Mask="SELECT * FROM `%1.xls`.`sheet1$`"
Point(FString)
}
Add(FormatStr,6939220,511,329)
{
Mask="DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};\r\nFIL=Excel 12.0;\r\nDBQ=%1;\r\nDefaultDir=%2;\r\nFirstRowWhasNames=1;\r\nReadOnly=false;\r\nScanRows=0;"
Point(FString)
link(Str2,4937846:Value,[])
}
Add(LineBreakEx,2774394,560,385)
{
Caption="error"
}
Add(LineBreakEx,2469851,700,434)
{
Caption="error"
}
Add(FormatStr,9473098,679,287)
{
Mask="SELECT COUNT(*) FROM `%1.xls`.`sheet1$`"
Point(FString)
}
Add(LineBreakEx,122388,728,385)
{
Caption="error"
}
Add(Hub,7579850,567,294)
{
link(onEvent1,9473098:doString,[(607,300)(607,293)])
link(onEvent2,1359034:doString,[])
}
Add(DSC_Query,12487484,658,420)
{
DSManager="odbc_driver"
link(onQuery,9804788:doEvent1,[])
link(onError,2469851:doWork,[])
link(SQL,1359034:FString,[(664,351)(636,351)])
}
Add(DSC_Query,10256676,679,371)
{
DSManager="odbc_driver"
link(onQuery,524522:doText,[(741,377)(741,349)])
link(onError,122388:doWork,[])
link(SQL,9473098:FString,[])
}
Add(Hub,4912858,616,371)
{
link(onEvent1,10256676:doQuery,[])
link(onEvent2,12487484:doQuery,[(647,384)(647,426)])
}
Add(MT_MTArrayRW,4865845,847,385)
{
link(Array,13076694:Array,[])
}
Add(MT_MTArray,13076694,847,301)
{
}
Add(LineBreak,16163899,749,301)
{
Caption="clear_mt"
link(Out,5782863:doEvent1,[])
Primary=[2271599,-490,-63]
}
Add(Message,8158759,770,147)
{
Caption="Ошибка XLS"
}
Add(LineBreakEx,13650324,714,147)
{
Caption="error"
Type=1
link(OnEvent,8158759:doMessage,[])
}
Add(MultiElement,9581446,252,133)
{
@Hint=#8:файл xls|
link(Data1,9027771:getVar,[])
AddHint(81,4,56,13,@Hint)
}
BEGIN_SDK
Add(EditMulti,14682019,21,21)
{
WorkCount=1
DataCount=1
Width=482
Height=312
VOffset=21
HOffset=126
link(doWork1,13101000:doEvent1,[(53,48)(53,125)])
}
Add(MemoryStream,9600868,343,182)
{
Stream=[ZIP00FC000078DAED9D077C54D795F0EF3C4642421489DE11BDA3997953691A01A2F76E6CD325D37B3306238C71C536C53636601BF7DE00776CCBBD819D2FD96C92DD24EBCD26FB6537FB659D6CF6DB6453F49D7BDE9933EF8CAEC683C363BFDD5F46BFAB3773E6CCFD9FDBEBBBEF5B5F947CF9E08B1DFF5E65BC46AA46EA4F75852ADF25F391C357B15257D3E73FD5D5D5A5C4757F79FDB77AFD11DC35906E8DC0F9C1E581D369DE185C01B842704DC015816B0AAE19B8E6E05A38594095806B09AE15B8D6E0DA806B0BAE1DB8F6E03A80EB08AE13B8CEE0BA80EB0AAE1BB85270DDC1F500D7135C2F70BDC1F501D7175C3F70FDC10D003710DC207083C10D0157062E002E082E04CE061706170117051703170797003714DC3070C3C18DC0BCAD5439B824B80A70A3C08D0637065C25B8B1E0C6811B0F6E02B889E026819B0C6E0AB8A9E0A6819B0E6E06B899E066819B0D6E0EB8B9E0E6819B0FEE32700BC05D0EEE0A7057825B086E11B8C5E096805B0A6E19B8E5E0AAC05583BB0ADC0A702BC1AD02B71ADC1A706BC1AD03B71EDC06701BC16D02B719DC16705BC16D03B71DDC0E2A9BDAED72BD77BF66824FEBE197A510F27570DD84A53AF7575BC83129BF2C9DA60516CA6B9DAF7554AABB567DFE1F3775FD8EAFE6EEB7D71E82EB4E1DF78E1AC4D37A60AE8638D076AC5617FA6AA92C9FDF55EFE4F21B8DFED6BF38EFF320E5B642ACAE8594D0619F00B1508D3669C91688FFF518DF0DBDFA01DF47E52757BE7EBDA052FC314058863654610A5C983D71E0BBD33317B6B6F587F4BEB0004A717E9E7AAADBF9C69FD4F8543E44E6DF430CBDE07F07E3E927986F37E87AA162F9DA95EB4A2FD16B14DAB0C4A76DA885081E01EF7CEA04488BA14EB19C94C77A47FF7F1EF5CEE2FF11581F4169EC75A4657B6EB792A8771BFEEF81FF9B2BEDE32BF89BBF4149106AAA933A1DF71CD43FB1CEA93C5F05C4FC4A88F935FF85DF0E707FEB3FA79AF946432E580BDF2F83723B0BB4D641F92F85BA69166B3753B969F75167D27E373AA78A507B2BD2ABE07F29D47655509B68CD8F73D4EC8AB9AB4051689A34064D1D929550CAB5764AA3F06B35425FA3E103CA592BBB4693AC1A83A0F40ECEAAE1FF5A0D4DF97A8DAFB7B430ABC60A831D6BE9FB251C632DBF364E5B7F8D860575FAD7F9D1E422680C6950A3ABBF0CEA9B36CAD7139AFC9EF01780229BF40F81FFC3A0321AACEACBBBFA13D06DE968FEC9E5D0425741EB7A65833F1E06FD9D4EEE1F0F01D730557EDBD55F09895B9AEDE70D5990E9D16A28BDB6F22D02A501E0637D53F5378E35D9BE4FFDBE075C7B18BE4BE27F8DEB6FC62D829F2C02EB1AC2C9EF25AEFE7729DC35F0FB61269C8C8686A0262D892E87BF86437B0D7422B3E0BF2ECC26ADFAF886436FAB47A057ECCA2457E00FDF2CAD9FBFD2DF74F58F508F42C7B9819F3594AFDC1E94ABC7A0D75D2F73364CCFFCBEAB7F827A1CDE67F5227B0E777BB6513D013D744332A4951A4A824C0D19FDA66FD339FD49734ED73F5A043FCA864C7F5F1F28BF4BE1F6AAA76094D16056FBFA909AF5EA67B76C61BE463D9D2DBF7F5DC84D5A66034C71F0258E0695FAF7BAEEAE9E676DE95FE4DEC87D7A345D2CE54D501FE46748EC3FD380FCBE06E4A71B90DFDC80FC7803F2B317A8FFF605DA73F402FD3F86F2A206F48B1AB0A7A8017BEACBDFBC40FFEF6B40FED805DAF34403F2A7BF91FF4D53F23B4B4ADA16B52D4AD9D9CC252FF017F853F9A1793D7D47DE2225FF2B9C326995CA9FC5425ED32C252F49CB4B8DF2DFC87CDE32ADBF44A93EEC7F2BB6A7BADAB1D34997D60DF8D3A6817CD2B69EFC6194B76BC09FBC94FC4449C9D1A2A345297FDAA7ED5CEC4CB539FA1D1AF0A76303F92D3F55DEDB4BFDC62887D8D8E1F3B5D3D6F94B32E4C5BE9AA2B4BC00E5509FC47D25ED14D849FE14B2BCB8A4A6282DCFC711734FA58667CAC9FFB849DEB39E3C6D4F89EFA8CB9E42833DBB0A5AAB5D05EED98BD1EA8EA2D595BB0B2AD46E212FC6998D66E04FA3D43C35354CCD21AA2D3F7E5155EDC7C946A779ABEF49496E9EE465F5A4656E9EE467F5A4556E9E34CEEA49EBDC3C29C8EA499BDC3C29CCEA49DB5C3C3937397BEAB4CBCD93ECA9D33E374FB2A74E87DC3CC99E3A1D73F3247BEA74CACD93ECA9D35978A2CC9E84ECECA9D325374FB2A74ED7DC3CC99E3ADD72F3247BEA94E6E649F6D4E99E9B27D953A7472E9E38CB370D7BD233374FB2A74EAFDC3CC99E3ABD73F3247BEAF4C9CD93ECA9D337374F64EA1CCAF0A41FDAAA3DD15373E5E5DBEAEA79A2BFA83B776F5DCA93C624DBB3674F5D6AD854E092A58655852E599206574D5CB29409F58DEA9F6154B9D9A85FFFFAD7F58CD2CA99466959A6515A966914821A346A8030EA3F77ABDC8DBA7831959907068A3CD028330F14E454B806E5E2495D79764F06E7E24966253C38C39321B8BED5A027BB0BE664FCA00C03D760FBD1D8107E779CA412A57E6A0738B51B2C5C3A751E7DF4510FB36066F404B3468FAF7EA2843851B4E727AA1AC8B375BF3851D770CADAD21395DF80271F7D5ED770CA86D974CED432657764FC2082D5397B5E778E7F908AE753A74ED5A5A8056E19254061A60C12A049A60C12A07E88A322C4F58A7A0A5657E36376FD10C74488EB94CA0C7126352EA8301834C7F387FF9A0EF111AB1B8C1C9A295F0822BD37E4AEC1E08AFD43FD63FD11FF08FF287F501D2E9802CEB50DC6DFB5AE996A585FDBE083C173637F55F5DFFEEC577579FABDB36FA6AEB7B643334BB2314306668F2CCC509A995755FDEB1FFDD0CC6C998D691B987DB230ED3433BFAAFA9F7FF52333B3553666D8C01C9085194E331B5755FFECCB7F31335B6763460CCC2159989134B300D2F397FF6666B6C9C68C1A98A12CCC689A595855FDC77FFA8199D95633C317906FBB01339C43BE3D37F9D5733F3533DB65639AF26DCF2C4C77BE3D37F91F5F7BD5CC6C9F8D69CAB77DB330DDF9F6DCE4EFFDF4AC99D9211BD3946F076661BAF3EDB9C9E76AFFC6CCEC988D69CAB7655998EE7C7B6EF2CB3FFAB999D9291BD3946FED2C4C77BE3D37F90FDF3D636676D6CCE805E4DB52604673C8B721FBAED3DF7398B41D87995DB2314DF9B65716A63BDF86EC1F1CBDCBCCEC9A8D69CAB7FDB230DDF93664BFFBD7C7CCCC6ED998A67C3B280BD39D6F43F6A9073F32334BB3314DF9369085E9CEB721FBC8F91F9999DDB3314DF9369C85E9CEB721FB3F6B0F9A98AD601CDE58F932F36A4506A74B5DE306F3A752D3F6BE69F6BB67A6DF2183DFDD33FC76E743A56AA74F31FBDD2BD36FDBE077EF0CBFDDF94DA9E36F5C66F6BB77A6DF6183DFFD33FC76E72BA56A963F64F6BB4FA6DF1183DF8333FC76E71FA5263DF3A1D9EFBE997E470D7E0733FC76E713A5FEE3EEB126BF5BA87E7A28D1D21FF28FF487FDA5E0E756E9AFD51A7E97FE5E0F93B49F7975CE2C411EBDD75309E867BE6A8E02DDE7F781B2FB5381F854283E695BFA3BB64C225A7D5BDAA02DA9EFDDB6E87178DA9672698B16A46D713E15884F85E2D311AB038CFF9B38B68CF3C7FD15FE6118AB71F87FB8604F86556DEB9A28936643F6E911C69F19579DD44055A47CEDFC01BF0D71310C9C8E93A19042BA9C4F9216362AAE2B52665D9D47305FC0F0B2DB84DD8E5DDA927405A069831AA2850CB4920668A16CB4BAF2276A7F4CB4C10DD16C03AD6503343B1BCD697C2DA40D6988A66B871119B4560DD09C016F3DDA11AB992A8361ADAF3D94C891F0ABFAF677A8F3ABD4B77A9AA25E2F24DF951A4E2E497DCA07FBFB4333D152F93AC2EF75A94FA25D93E17DC03F0DEC9A06B932E24F808D0160DF919173DBD5B554B9FCD29D93F51C48BD9AC45DD2F24549CB17252D5F94346D7F1BC88405CAD705283188CD0097B258463CB5A82B50995AA638F7E9340DE934ED82F6EB9005286493E0F3E18209D2675F674853B36EAA06C5DAEE1727B804EBA9154A5FD0A95175870B7A6578AAA03AEEEA0F62B590F24C41784B2063E62B5F37CC3D95E0B445E5193FEE0451E3D610767CF479DA0E959FB2A31D64C142EDEF4848BD0A40A6EBAB4446AA47EA0A557DBD545CA6AA19F2B7838AE89AB01BC44CDC3F1CF4C6B9D2685D86CF4DA0263469EAB91DB6BFEE5C5D2ABBE8799974C5E77C2A109F0AC5A723566FE817152B5F77C804D3202B688039ABCFC930AD7D5DB1FABA5FA52A0C5149A7ACD3D33F3AC30E563118B4FB7AC0AF8642048E023FCA21C811689046FB9D775178EF44EB34B0645A86254575AD55AEBF76274A5D7A58D24AC57589EC0D89A88BED78D0D5D928A34BE0EB087950EAB833929E594AF9ADA79FD0EFDB0BE6ABDB5D9E1CC475E612351B3496AA35AA4ACD525BD4D5F86E0A6EA25B89B70084D47478B70D6FCF486B4C06D9556A057C0E42BA1D563FC1592FAC37144E7CD2BF3A0C1E660E284D4A172955436F6AE8430DB8DADA5AB8824EE96250AD5527BFFC522DD6E54F2BD7D4C2F7E0C717756A25F8F365DD97EA47274EABD377FC520D58FF3B55FEEA7935FEFAA8BAEB4085BA7DE1287572E94EB574DA33AA4BD95BAA5FF536BC9BA672A44FADEAD74AED4FAC521343FB55ED0F6BD5639F7EC536A13D354AD854F7FBAFD4C9938FA86042A91FEC1FA9AE286E4E93C8A93B1C16E3B6FDFD908FFE7AAFC215A7592BAAAAB6048F15B457C70AE42D6BA95B3E1E2E2806276F853800AD4363F87BCE070D0AF4F8DAE98A93BE7BC757004EA92EBFF0A93FA86EA59560C2161F267747EC2C95285F6BEC9F94630F25AEDB2C78A78B4085DA007F3ABDA0949682760C72DF10ED7967D01C066F47C2AF46C1B5B153510F839F8FC3829DE7B49C43B15E86DC158DD8B12192940042EE7FF56DD2D29590BB96405ED37D08085429046E60D960E0C523B148C04B9E0DCD775847453A9801888AC91072150CDAF1B8A7F40A78BF49112A617B89D2F75CAC03A7A358476C3818085E0A9ECE34413B38C83B1610128178D0A3D0ACC07B9CAA30AB8C235628742958B3309D20EE467B4D0BEBACA8870B581D4C82C6BD548D8272300E9843B1B91F01B5C6703FD457CBD66FB8BAB4A2A2024C8BD801BD5760C5CAAB56946A3114DC81208E052389AA4B6571126B33DD4DD756C71BB07B1068EB721DC6EE90B6467F3B09DACCA1D8FD2A55719469ED72960DC7567AAADF096A78CCA50AD338FF0CB06E449674D0652A16883BD92374090C9B956306D1C91FB1A3DA30DB8E545E3AC3728AB35828A87B48897024E479918AE41E63F170DCFBCC15C939A2B0350A061395DE9B34FA828C0AC4C2C14B104FB9E67532295479E94CCA299E12C140C41EEFB5515170D3E1BBAD78FB668EF195088412C10997DEB4DCF25728108F8EBE14C6E51A5BA1782454A47C23516CE357BA6F5E0A83B579CAB138181B73A92CCE2DF381CD365EED50EC12A4F4AC6F940D83A1586CE27F85713916E0502C3AE6D2989773560C45C29597CEA41CF35A2812F3BCA28B7DA31C06A6C5275C7AD3728EB7C8E84B61DC05C45662CCA53228C7380AC7BCCFF0B354E505F5F9237622EC8D4DEB71CC3E1BCF50580616EA11689619A5A9783C8ABED51F5BF51874392E865D53F05C884DE0F96670D578128CEEE5DB2A00D7C93811998242DB171DEA2D34A2CAB0FB65AB503D3C843948D79087618FA01999F0A01D0DCEF4121ACE88F0523506DEEB631174A65D09D20B1A4DC413F1E4C530379DEDB434084686D0D00B184304A3E181DE9812D1B3C2763811F4C2FB20DEFF5C46EF82888A5C9C49B5FA288D40C0C599E732014214168DC239C2702814F524E642AE98D38B14C00A85627A1E206C47A351AF904E00F53B9BDEC5E13D50ED5820ACCBB00D8DF0282FE8112C1299E5B50C277E83D89BCFFCAEA952EED38EB0868906ECB1DE5817AA57B7E4DC00422689CDF0C2AA2867126D5D9CDF25E05D19BCB331A396611F557FA3ABE4CD7808D61AF82B03FF62204F4BB0F4E8E5FEA81D0F17D41FC2E94C98085D9CB15BFDB044D0D610BCB3E95D0C43B81457EBCA5027CE3A3AE4CBB0080622A161DE58A463CDE16AA7DFC529C62358429C92110F45B1B9880613A32FBE1D214CD132BC86F01AC4749C09ADE06048E928A676EA73AA724283C2A1B863582890F0C6B00815509BB259CA88009AE12C10250298ADA2C3BC30215502429C7F6CAE3A23D4FC203E96F406EF14B0286507C7901066168D0F73D245A8A18DC4C7786348EE65A60C3B67FA0FEBF57050CF3143260E5C7CC36C8C17DD73DF0CBDF325CA591A4D0CF78614C1A00530F66DAA106DAC0EA5057630429DAA081A140F7812745D0432C0B6DE1D188AD991CBBC0206A0592AA38A3F41499D4AF6185C63545243943136534311C2065FFF4FE7E304EB3A9590CE2E51DBD6D9381A9AEB450886AB4E800B05CAA201F817833C5996B00381D2CD6B97AC59539688F0DBA9097AE73400E1A417D6A4EAB528159E322C5CA9121FA5B88C52E1C368B1B183160C0DF2C69E488A13C6FF5E74DA6D574D1AC560FBB1FE0CAEBCF82C276B6AD66808DC602AC2116EF362D8DA39995757A73A9A7750AF3046B5FB66B2547F5AE27A5F4D5937C6D95FBFB7052D88FD07288E541D785105469093AE070815F363773592F08218A4F62FC4573918D775513C1174F63804067961829357B12B9908604720168F8FF782645FC058DA5931D79B2987D37A39AE47D8112F46D711AE1662B62771EC141F1DC78958D823027572C3A160A899694D27E81FA24683C3B6219898ED8515E94E770807A4CE3B9B65E929AF546512C1E26DE3FB280E741250F8537B7BCAD47C67440D43E918465F14D7FEA121C1114E3CD0D414D40ADC8F8C7B0512210FF24B34959CB1683CE891FFB6B3392714F3C4FF606A44140C2DF2CAFF20D76CA98E7794DFC578B41BA05E6F14474B416C4B6CD25CA696E3885767A528659DD4F8B88C7EEB74D66341FC1F99E95D60DCC3714766670CD2B53486759C5B1AA3A6CD2DC5C62CE645DF234A034B8C0E5D5642D00559E00DC7C6E672199EB7AC67FB87500285B03F5AFF1B9DB0E66F9C7E5B2CE31BDA2812087A617EE62C91D3D2861A61A118E40D31D5CAC44383BD03E06CA79D0825C678C5D0B57525753D9D762740C536E67A67537F3C4645346ED3544762BC378645FE8CCE051694B03DCC1BCB623C3889BBDEC579C01271268DE34EEEC3D9DB50241299E7853576969597CD17B4F262EEA2054389E0D4FFBF0D7726C9436BBCB25227719C27BCA234D5BB0CDF3BD339A9499F522C1D8E5E25357F119A182BA366500F9CD670FD19A46FD27E46589A1AF36EC6EC148EC471A23D1E08547A11D2F0379F6687D8B73DA901533328588E62180B319CD48CC70779C34B2D65C5139E00B8A719817AC193288BA5E7E7A3B16004DB0EEC5D472376D443E26667E3BE33B68DD891A837A820E6D2A920D986654E3F55443F5F4477DE63D1D0C88B4F758297FB76E678CC2EF7D68ADCF62EC76D2F8632B1D4E40DC476D813FF6928930804E333BCF0DFBC9CD870833814EF972BF78FC69B239D9DFEEE4652D7168960C02B53B5B14EF382202F56D8D3A08C05C944D21B58BAD14B37A901EE4985787297B20254275E4CB2C4A883AD6BE34410E7751376D01B4E9C3BD271678D10724C2832D50B987DD1B6E2E8526EC7420BBCB032423579E6C8D1E63ADEFC8D79841AA34D0CEE6F74B2C643514F324E7AC22892B03D18FEC42FA8B63777DC03B170CC1904DB116F2C8CE37652FD0C25BD2F702E3E49693B0DBCC353BD6006EBE5ED09F8D431FD0427BD43720BEE494CDD98BC254BDDAE5B98483438DF0B2BEBB730FAD955B9A6E3D7B5374EFC468297C2728715ADF48615FA46E30DACA7BDE8FEC7558277700462012FF24682CAF564AC872F24D4B9E78DB06D577A61F99FB10D2B118EC43CB229F28D621327362276B0DC0BA3EC0BEBA847A37674DAC5B76334E4E5C1BC2C13A455D7F4FB10369DA9F5D8002ECDA4B59C1DAA31DA06A9B7071C6A8ECD5D308077EC4613092F4C0EB9568F426C66EA3DAE1CC19836E0F4D822577A6182CDF1915A372EE5350F2909D6934484C426F32B6951CC8963D7FA773C1E0EE354403881BDDCB017554E2A4441A4DB1CA9D27227374859B45E6802F524CE503012C4AD8BA1706CB0170188A6A30C46D731DB0B468C93682A340483B97F178C04075C7C5E25ED2B8ED85E2C6756E2D009378F84232BBCF1DFD92E12E3F5E1286F7D88F29EC428ED8B5A87C3B9180FEC22BC7D2435DC5B46FA51D73736D504B6EB97B1D4924B3810C06D1C016F522786B167C3C0D31BDF83582DC4A87A883A8BC311E874380B89C1F0C5C74EA5558BA9848DD236348CCC90935912C3BCE1DABCE3B994A7CAA7624B99FAAC831F0C2570B632E8C546CDA9386A73E363D877487F8E63AA3866AD741B66C77121271C882CF4CEAECCCDE1917A6BD1CE4A8394A6B75C656A3BA5AC3A7395DA8E87BC09459CF372944210A36B9CAE095E194ED50911DE1656891B0B9C6B84CA46FA662A9B4B3F6F8AC33E40D89B7B73A6E22E04678E3EE291FF5167436E281EF3C2FF44F681AF6D87E3B637DC088EA3C641E1718A5214EB9760D063DC28C6E16EA85070A0573C0C4EC0B9B524E111055B9F502CE1C5A6C8A9105B4BA05ED3333633D418BA5D2118EE7FF151F3531B3E82744F5F62A41790D085AD8AC0F0D81B2B521DEBF9BCA1B6509F17AB07E8117F0C5CD21F82FF4EBDE2C53D19F3B19D9D4F43A6086D3B0FF1DD094EB58B3D8C68C81995EB1381A2713B3AC00B6B62A9DB50829E783F59D5A99DBE026507153EEB312FA4D48FF5217B70FDBE4FA927C34A5D07C5F59388520F4138BF8829F544BE521D872AF56F054AED1CAED4AC22908F0039786027C19F164ADD314AA915254A3D3E46A99A564A558F55AABC0DF83B0EFC6DABD40D13945AD45EA9AF2682DF1D947A78B252BB3A29F5DA54A50E7751EADD694A1DEFAAD4BE1910C560CF3FCE54EA04D8F3EA6CA5D6813D3DE72AF503B0E7CD794A6D067B9E9DAFD4B2C6C05DA05465A152FDAE80703451AAC342B00DECCA5FACD4D9E64AFD7289528F142BD56319D801F61D5CAED458B0EFFA6AA586827D952B94FA3DD8D77315F80FF60D5D033676546ACE3AA58AC0AE773628B5BD9B526F6C526A26D8F3EF9B953A6029F587AD4A1D017B266C57EA4B48B121572BF501D8F3EE4EA52E037B76EC52AA05C4D3F3BB8107F654EC017E33B0B9A02D38F98C3CE7B0C2BB0B8AC1A5BF19F5339F3A0EB2E319471B1E00D9818C230DF5D34E0B41AEF28BD553DDCE37FEA4C6A7F2C1BA226B10EB7C4B3FBD679F520B0E2B75EC41A56A5F50EA9FDF86907CAE547BC802B53F53AA193EEDB129FC5FAE5AE0018A25F8BF5815A83F3CF9AB6F4F593ABD7C11EA0C40F940FC7F1D4A6A54DAA8DEFA3C57C8697BE19B77FCADE98182FB50FB7AFCDF87B57F5EDED7F5BE1FBFFFAABCBFEBFD83F844B43A7D6023FCF931769CD797E57C2D3D51D0479DC8881BF7AB29BF9B035614A8DD2949E3045AA53F6BFF6B3AA53F5BFADDF8F4E746F057D322FD591F353CA720FD1932A76F4E93047ABB05D2648B483FC82A56734E0FE76165055631BDFF0AAF495F0B94F950D6C5E7965906592383CC6F90E51964F906596383ACC0202B34C89A18644506595383AC9941D6DC206B6190151B642506594B83AC9541D6DA206B6390B535C8DA1964ED0DB20E06594783AC9341D6D920EB62907535C8BA65C8FE88A906751FFE773EF95405E6BFB7F093059F2A209F39DFF9D530CC87CEA73CF8D4883FE5C3273F7F6A0C9FF2E893F66D38E637E7930FFA9FF854582B1FDE5BF0C99137522330B7BDA9CFE306BF46C2FBCA24FCAF1993CC239D7C55EE3C39167FDB5825516E21A109112C24149196C5044B102C22946B821A41040B094DF9B72942232434234223243427AD464C6824088D1C42CD78248C2742234168C4043F125A10C18F8462D2F233C12F087E87909CAE09B5D388E017043F13F2905042843C24B424AD3C26E409421E856104107C358F11214F10F298908F845644C847426BD2CA6742BE20E43B84DA99184B3389902F08F94C688C843644688C84B6A4D598098D05A131A574570CC30D44682C088D9950808476442840427BD22A60420113AEB5F42787D033D908EAF802889191AA1A5F3D928EB63BDF1630AB10591D885588AC8EA455C8AC426475A2D01422CBF7FD233A34C5472834858250C8842648E84C842682D084094D90D085084D1CC2C93B3561718AD004095DF9B729421112BA11A10809A5A455C48422912245145F8331CD0711A14884A188094D91D09D084D91D083B49A32A1A988A5A6C6586A2AD2BC29139A21A127119A094233263413B1D4CC184BCD442C3563427324F422427324F426ADE64C682EC2D0DC1886E682D09C092D90D087082D04A105135A8830B43086A18520B460423112FA12A11809FD48AB9809C5220CC5C630148B942E66420912FA13A144104A985022C250620C4389084309135A226100115A22612069B564424B416869CCAD2D05A125135A216110115A21613069B562422B41686524B41284564C688D842144688D8432D26ACD84D682D0DA48682D08AD99D006090122B4414290B4DA30A18D20B43112DA08421B26B4454288086D916093565B26B41584B646425B4168CB8476480813A11D1222A4D58E09ED04A11DB576094D48C689D04E10DA31A13D12A244688F841869B567427B41686F24B41784F64CE8808438113A2021415A1D98D041103A502C453096C244E820081D98D011094389D051103A32A123128611A123856134F6CD4611A1A328D31D99D00909C389D009092348AB13133A8930743286A193084327267446C24822741684CE4CE82CC2D0D91886CE220C9D99D00509E544E88284246975614217D1C67521C228EC9B5510A18B084317267445420511BA226114697565425741E86A24741584AE4CE88684D144E8868431A4D58D09DD04A11B119C3EF248227413846E48F81EF8F52934726BACA54AFEAD514B2FE04F8F524A0D2397EE06590F83ACA741D6CB20EB6D90F531C8FA1A46E7FD0C7AFD0DB20106D940836C904136D8201B629095196401832C6890850C32DB200B1B6411832C6A90C50CB2B8419630C8861A64C30CB2E106D908836CA441566E1811976249A9A492528A25652CE5F6522E29A5A2A4941A4B4AA92829A55C16BB23611C11BA23613C697567427741E84E843149A7DECA231D37A13B137A206102117A20612269F560420F41E86124F410841E4CE889844944E88984C9A4D593093D05A1A7BBD6AD4DD5BA3D05A127137A21610A117A21612A69F562422F41E86524F412845E4CE88D846944E88D84E9A4D59B09BD45DBD49BDAA621A217D25B8C2C7A33A10F126610A10F126692561F26F41161E843840224F889D04784A10F13FA8AF99BBE387F338BE66FFA8AF99BBE62FEA6AF98BFE92BE66FFA8AF99B7E1886D9FC4987610ED9D18FC3D04F84A11F85A12F86A13785A19F08433F0E437F24CC25427F24CC23ADFE4CE82FD2A13F117A21A10711FA0B427F260C40C27C220C1084014C1820FA080388D00F097D883040F41106306120122E23C240242C20AD814C18286269A03376997FB71EBB7C7C2711060AC240260C42C2E5441884842B486B10130609C2209A5DC13E824A95874122B70E62C260245C4984C14858485A83993058100613619E2694CE23C2604118CC8421485844842148584C5A43983044CCAE0C7162E9CB0D38BB320467578EDDAB5FBEA4A3ED660D615619B29610AB0C594B49AB8C59658255E6B0D43A6495B96672ACA4A3ED6695312B80AC65C40A206B3969059815103117705835D59836BF2DCF231D3721C0842012AA8810444235690599101484A08BE0AB59426913148420134248B88A082124AC20AD101342627C1F7208C92A4108891C1C62828D849544B005C16682CDE55CA7818D84547AEB34B2315534D3D17697789B596164AD22561859AB492BCCACB0084DD8982261119A30132248584384882044981011B55684EA143F1214C55744A44884095124AC25421409EB482BCA8428A7B9F3C90FBF5E4FF9398A71A554CBA4F39D9B13654E0C391BC88718723692568C393191B762149229D85B984C218909428C0971246C22421C099B492BCE8438A786B63D2ECA7DBC5EB98F8B7489332B81AC2DC44A0856825909912E092AF75B920E318F74DCA14930612812B61261A8200C65C250246C23C2508AAF624D38B985084345188632611812B6136118127690D630260C132932CC98B78689300C63C270245C4D84E148D8495AC399305C948FE14E2C2DDEA1C350BA9D08C345188633610412AE21C2084118C18411A2B48F408253E31663691FE19476603ADAEED08C60D64864ED22D64864ED26AD91CC1A294233D2090D84C349F93CD271D7272399508E846B89502E08E54C2817B9AA9C52A433A6487B22948B3094F3F8F9B7C6F1B31C4BAF11A3EA15627CBD86C6CF49C338A7C2201B65908D36C8C618649506D958836C9C4136DE209B60904D34C8261964930DB22906D954836C9A4136DD209B6190CD34C8661964B30DB23906D95C836C9E4136DF20BBCC205B60905D6E905D61905D69902D34C81619C6CF492C297BA8A424B1A4D4506E4F7249498ABA3E492DEF5EACEB93AE7E97D3722545A94C72A9AC40D65E6255085605B32A44A9AC70AD072AD5914A6585A8C52A98300A09D711611412F691D628268C1235F1282228D18F182508A398301A09D713613412F693D668268C66828EA1D1F57A45A345AF68B4A86346336B0CB26E20D61864DD485A63983546D493635CE351DFB736527C8D11A119C3844A24DC44844A41A86442A548914A77EBBB7833112A05A192096391703311C622E116D21ACB84B12245C6D22AD196A413923CD27113C632611C126E25C238241C20AD714C182762691C85E17A1D860DD711619CC8B7E398301E09B71161BC208C67C278114BE31DC2574858BC8F08E3454A8F67C20424DC4E84098230810913C488778268AF5225638288A5094C9888843B8830110907496B2213268A589AE88EA52F6B8830511026326112120E116192204C62C224114B931C42F14D4927AEF248C71D4B9398301909878930190947486B3213268B304C36F6B3268B949ECC842948B893085304610A13A688304C21424BD1CF9A22C23085095391701711A622E16ED29ACA84A9A23C4C358661AA4887A94C988684A3449886847B486B1A13A6891A7D1A115A638D3ECDD57B2F493ADA6ED634664D47D6BDC49A2E58D399355DC4D77451A3B7A5D04C1729329D093390708C083390709CB46630618648F31944682AC60733448ACC60C24C249C20C24C4198C98499220C335D69AE3979A4E326CC64C22C24DC47845948B89FB46631619648F359AE11489A304BA4C32C26CC46C20344988D8493A4359B09B3452CCD76D7E3A59B88305BA4C36C26CC41C2834498230873983047C4D21C6318E608C21C26CC45C24344988B8487496B2E13E60AC25C22948A3A70AE88A5B94C9887844788304F10E631619EA865E7116100B6A78788304F10E631613E121E25C27C243C465AF399305FA4C37C1186CE44982F08F3997019121E27C265827019132E13B17419D5B24792CE2C6F1EE9B873EB654C5880842788B000094F92D602262C1061584061E883ADDD6D445820C2B080099723E129225C2E089733E1723122BFDC3593AF77A8E4918E9B703913AE40C2D344B80209CF90D6154CB84294B82B88E0ACD02689708588A52B987025129E25C29548788EB4AE64C29582702511703F818A11E14A11862B99B01009CF136121125E20AD854C5828080B89D05ED4AD0B056121131621E145222C42C229D25AC48445222F2D224230E9ECEEC8231D77995EC4A3E41FE328794DD6B5E53539AC322F368C669618644B0DB26506D97283ACCA20AB36C8AE32C85618642B0DB25506D96A836C8D41B6D6205B6790AD37C83618641B0DB24D06D966836C8B41B6D520DB66906D37C8761864571B643B0DB26B0CB25D06D96E83EC5A836C8F6194BC184BCA692A298B454959CC2565319694335452168B7D31369594C5A2A42CE6B2B804092F116109125E26AD254C58226ADD2544E88E6D536AAFEC124158C284A5487885084B05612913968AD2BE94083D924E2F3D8F74DC75E252262C43C2AB44582608CB98B04CD4EBCBC40AED40222C1384654C588E84D788B05C1096336139B7E0BA37BBDC35FA76F6FC2E77F56F4B93CE2FDCBCE5CCAB42DEEBC4AB12BC2AE65521EF0DEA4B5751887A23ABCA353BD22BE968BB5955CCAA46D659625523EB4DD2AA665635B374EC5513CBC679FD00C55EB5A8EFAB99701512DE22C25548789BB4AE62C255227DAE72FA0E2FE09ED0D2C344B84A10AE62C20A24D412610512DE21AD154C5821664756B86691BBE3ECC80A677604F29BA3ED66AD60D64A64BD4BAC95C87A8FB456326BA528312B8D733D2B056125135621E17D22AC1284554C58254ACC2A1E49E9F99DAD145FAB449AAF62C26A247C4084D548F890B4563361B568E357BBC2905EC55B2D4AFD6A26AC41C247445883848F496B0D13D688585AE39E4352EB88B046C4D21A26AC45C22744582B086B99B056C4D25A22B44D3AE3833CD27187612D13D621E15322AC43C267A4B58E09EB44BE5D47EB059B309652F360EB443AAC63C27A249C23C27A249C27ADF54C582FC2B09EC2D05FF4AAD78B585ACF840D48F89C081B046103133688B1C7062244B174A75A900D220C1B98B011095F10612312BE455A1B99B051E4A58D5C57B9FBED1B45183632611312FE17113621E1DBA4B589099B440DB5C9D823DD24527A13133623E13B44D88C84BF22ADCD4CD82C72EB66774A736EDD2C62693313B620E1BB44D822085B98B045A4F416D77C643A2F6D1161D8C284AD48F86B226C45C2F7486B2B13B68A74D8EABE372899BA3768AB08C356266C43C2F789B00D093F20AD6D4CD82662691BADFDEF14B354DB444A6F63C27624FC0D11B60BC276266C17B1B4DD9D0EC9D4ACCB761186ED4CD88184BF25C20E41D8C1841DA247B5C35D2FF1BCCE0E41D8C184AB91F043225C8D841F91D6D54CB85AA4C3D5C6BDCC570BC2D54CD889841F13612712FE8EB4763261A720ECA43D6F4E8B1D22C24E910E3B99700D12BE24C23548F87BD2BA8609D78894BEC64987DAED62D6E51A915BAF61C22E24FC8408BB04611713768994DEE5CA4BE9DA7B9708C32E26EC46C23F106137127E4A5ABB99B05BC4D26EF758BC26B55B7AB74887DD4CB816093F23C2B548F847D2BA9609D78A58BAD63547985E63B85610AE65C21E24FC6F22EC11843D4CD82362690F113A8AF5E43D82B08747CA3F11EBC91BD49A6FB81FBBC630A2D96B905D6790ED33C8AE37C8F61B64371864371A64371964371B64B71864B71A64070CB2DB0CB2DB0DB23B0CB28306D92183ECB04176C420BBD320BBCB20BBDB203B6A90DD6390DD6B901D33C88E1B64270CB2FB0CB2FB0DB2070C23E51A2C293FA79252234A4A0D97941AD157AB71AD64A5D7CA6A4449A9E1B2B81709FF4484BD48F867D2DACB84BDA23ED94B84DF96EB3EC24222EC1535D65E265C87845F10E13A24FC0B695DC784EB4469BFCEB827E93A41B88E09FB90F07F88B00F09BF24AD7D4CD8276AAC7DC6167C9F88A57D4CB81E09FF4A84EB05E17A265C2FC2703DB5E037269D55BF3CD27113AE67C27E247C4584FD82B09F09FB458F76BFE833F723C27ED136ED67C20D48F815116E40C2AF49EB0626DC2062E906D1DF4CB54D3708C20D4CB81109FF46841B05E14626DC2862E946BE7FD83D2772A348E91B997013127E43849B90F0EFA47513136E12B9F526D78A407A55F42641B889093723E1FF12E16624FC0769DDCC849B45186E36EE75BA59106E66C22D48F82D116E41C2EF48EB1626DC2208B71809B708C22D4CB81509FF49845B91F07BD2BA9509B70AC2ADAEB90F5FFB6344B855106E65C20124FC81080790F047D23AC084038270C0B82FFE80201C60C26D48F813116E43421D69DDC684DB444ADF46BD411CE141AF338F74DC25EE3626DC8E047D4483F349137C3E47EB7626DC2E08B71BFB39B78B30DCCE843B906011E10E243422C21D4CB84310EE30DE01718720DCC1848348F013E12012F28870900907C53EEF834CD0F34507EBED2D3D2858079975C839CB8258879CB32C887588598744FD71C8B8667948100E31E130120A887058100E33E1B0C855878DFB360E8B343FCC8423482824C211243421C211261C118423C6301C116138C2843B915044843B91D094087732E14E91E67752BE9D88848944B85384E14E26DCE59CC74184BB9CF33888701713EE1261B8CB78C7C85D220C7731E16EE73C0E22DCED9CC74184BB9970B708C3DD22969A13E16E41B89B09479DF3388870D4398F830847997054108E1221907466B8F348C71D4B4799708F731E0711EE11847B98708F88A57B9C16FB89E3A20EBC4710EE61C2BD48684D847B91D08608F732E15E11867B290C03458B7DAF88A57B99700C096D89700C09ED88708C09C744EFEF9858512C23C2314138C684E348684F84E348E84084E34C382E08C7E9AE179C5DA9994E84E322968E33E104123A12E104123A11E104134E08C2090AC364244C22C2094138C184FB9C733E88701F12BA10E13E26DC2708F711618608C37D82701F13EE47425722DC8F846E44B89F09F78B94BEDF38377EBF4887FB99F000124A89F00012BA13E101263C20C2F080FB1E68BEBFE9014178E06BEE50BEB0D5633D4A396918B93C68903D64903D6C903D62903D6A903D66903D6E903D61903D69903D65903D6D903D63903D6B903D67903D6F90BD6090BD68909D32C84E1B64670CB2970CB2970DB2570CB2570DB2D70CB2D70DB2370CB2B306D99B06D95B06D9DB8611F1492C293DA8A49CC492D2934ACA492E292745593C496571A438EFEAA428ED27B92C3EE89C574384079DD36488F020131E148407893021E99C7A95473A6EC2834C78C839AF86080F21A12F111E62C24382F010CD69EBBBCDD4C9E5447848101E62C2C348E847848791D09F080F33E161D1577BD8D8F37C588CF51E66C223CE6932447844101E61C223E20E97475C6B9316AE4D3EE2AC4DD66C4C3ADA6ED623CC7A14590389F528B20611EB51663D2A42F3A8FB9E235E397C54C4D7A34C780C098389F098203CC684C7446FE131D7C8558F2EF348C74D788C098F3B27D710E171E7E41A223CCE84C745181E77FA23076B92CE1A681EE9B863E971263CE19C5C43842704E109263C21C2F004ED65DB9774EE40C8231D77189E60C293480812E149417892094F8A398A278DF3B64F0AC2934C78CA391B87084F3967E310E129263C2562E929E3BD4C4F89587A8A094F3B67E310E16941789A094F8B587A5AACAFA6D2E1691186A799F00C12224478060951223CC3846744E97E86EE2EBB0D73EB2D447846B4E5CF30E15924C488F02C12E244789609CF8A303C2BFA85A9BD0DCF8A303CCB84E7909020C27348184A84E798F09CE88F3CE7DADDA2F723E7918E9BF01C139E47C230223C8F84E144789E09CF0BC2F346C2F322969E67C20B4818418417903092082F30E10591975E70ADF6A4EF547C4184E10526BCE89C8D43841705E14526BC28D2E145BAB313E71D6B53F38E2F8ADCFA22134E212149845348A820C229269C1225EE947B170BA7F429114BA798701A09A388701A09A389709A09A7452C9D769507DFE2DD44382D62E93413CE20610C11CE08C219269C112DC5997ABB58CE504B7143D2D176B3CE30EB25E7FC1262BDE49C5F42AC9798F59208CD4BC6399D97447CBDC484979DF34B88F0B220BCCC8497459ABF6C5CE17B59105E66C22B48184F845790308108AF30E1151186578C6DF72B2257BDC2845791309108AF0AC2AB4C785584E155518FA7EAC057453ABCCA84D79C135288F09A73420A115E63C26B220CAF11A1B99867794DC4D26B4C78DD39218508AF0BC2EB4C785D84E175719F412A1D5E1784D799F00612A612E10D244C23C21B4C7843D4E36FD0BAC572B19BE80D417883096791309D08679130830867997056C4D259636E3D2B086799F026126612E14D417893096F8A587AD3B5E74AC7551EE9B8096F32E12D24CC22C25B48984D84B798F09608C35BEE15AA64EA4EA8B704E12D26BC8D843944781B097389F03613DE1684B7454B91BA0BE06D41789BC7C67F25C6C66BBED118598F576A0D6398770CB2770DB2F70CB2F70DB20F0CB20F0DB28F0CB28F0DB24F0CB24F0DB2CF0CB27306D97983EC7383EC0BC3D8AE16537A1EA5742DA6F47C4AE95A4EE95A51E26A9D1277CF099D970A8E534AD78A94AEE5BCF48E73520D11DE714EAA21C23B4C7847E4A5778CB5C63B82F00E13DE754EAA21C2BBCE493544789709EF8A12F7AEB117FEAE20BCCB84F79C936A88F09E73520D11DE63C27B220CEFB9EFAA5BBC8308EF09C27B4C78DF39A98608EF0BC2FB4C785F84E17DB152D88E08EF8BF6E17D267C8084C544F800094B88F001133E10840F5CFBB3D3BDBF0F44183E60C28748584A840F91B08C081F32E14391973E34EEAEFB50103E64C24748584E848F905045848F98F09108C347C6307C24081F31E163245413E16341F898091F8BDEDFC762549A9AE9FF58A4C3C74CF8C439F786089F38A7D210E113267C2262E913F7BC23EF26FA44103E61C2A7CEB93744F81409AB88F029133E15844F8DFDCB4F91B09A7F9B227CE69C454384CF90B096B43E63C267A23C7CE62E0F3C3BF09908C3674C3887847544382708E798704EA4F439577F29BD0BE39C48E9734C388F84F544382F08E799705EA4F479F7CA399FED7D5E84E13C133E77CEB921C2E7CE393744F89C099F8B74F85C9C3A3B80089F0BC2E74CF8C239E786085F3827C310E10B267C21085F50ED7D186BEFD4FD805F08C217D44EF7528B1B2B35C897BD751E69B55467F275CF2A49CF9FD0B6DF5A500CCEFD548CA190522D54A36FE311FD3EF56DF8F3F9F4B2CD9C263F53D7E57F0B12E71C1ED17F1E93C382807E8ED72F30681654041FE2F5232CFA1614AA8FF1FA0916230B32E8A778FD0CB3A4058D502D5EDFC166C7820AFD5DBCBE8755B80595E3FB78FD00AB430B3AA2AFE3F50DEC7A5AD0A93B8BD737B11B674107E92DBCBE8D5D220B064167F0FA120E7B2C1850BC8CD75770086141E7FC55BCBE86DD710B86E2CFE1F5791C7C5B30AC7D01AF2FE240D68221E229BC9EC641A1A59EC029254B3D89133F967A0AA7672CF5344EA258EA199CEAB0D4B3382161A9877062D3520FE3F4A3A51EC149424B3D8A1378967A0CA7D92CF5384E8659EA042E0E59EA3E5CC2B1D4FDB8D062A9077039C4522771B2D7520FE294ACA5EEC685494B1DC5E5434BDD838B7C96BA1797E22C750C17CC2C751C97B52C751097C72D750897AE2D751817982D750497812D75272ED65AEA2E5C52B5D42DB835C352B7E2060A4B1DC06D0E96BA0D372358EA76DC3260A93B7061DF52D7E3B6204BEDC7CD3B96BA01B7D858EA46DC0863A99B70BB8AA56EC64D2596BA16B7565A6A0F6E80B4540D6EEFB2D45EDC8465A9EB70AB94A5F6E186264BEDC06DBD96BA1A37DF5A6A276E91B5D435B891D552BB70BBA9A576E3A6504B6DC22DE596DA8C1BBF2DB505B7675B6A2B6EA2B6D436DCEA6CA9EDB821D9C20376F4752DDE7460A975786B80A5D6E3067E4B6DC06DF696DA889BE12D558D37D558EA2ABCF5C5522BF006154BADC49B472CB50A6FF1B0D46ABC11C3528BF1462F4B2DC1DBB12C2CACFABA0C6F6DD20FDF598ED72ABC31C8520BF066594B5D8EB7B45AEA0ABCF1D45257E2EDA1965A8837715A6A11DE6A69A9D978A336945FBC9DDA5273F1A6674BCDC35B932D351F6F20B6D465789BAFA5A6E27101969A8637F55B6A3ADE706FA919785BBCA566E2CDEB969A85B7985B6A3C1E5561A90978A084A526E2B10F969A848733586A321EA160A92978D081858718EBEB683CD6C48261C618BC56E2C120961A8BC777586A1C1EB261E141D1FA3A028F8BB2A0DA1A89D7723C70C982EA2C89D70A3CEAC5C2C727EA6B0C0F2DB3541C8F16B354028FFDB2A0821B8AD761788496858F4BD5D7201EA067E1E354F5D5C6C3E82C15C683E22C7CACA2BE0EC0A3222D35100F74B4D4203C76D15283F170444B0DC1230C2D5586C70B5A503DF7C26B6F3C4CD4527DF0C84F4BF5C583391BA97E787CA6A5FAE3219796EA8A473D5BAA1B1EC86CE1A3BAF4B53B1E0A6BA91E7874ABA57AE201AB966A8FC78C5BAA031E066EA98E7864B7054D7A27BC76C6E3AF2DA8D6BBE0B5251E716FA9567810BDA55AE371F1966A8387BA5BAA2D1EBD6EA9767840BA05CD4D53BC36C3872058AA393EAAC08246A2055E8BF1D87F4B95E0E1FC163EA6C3878F49698CD7027C6086058D7B215E9D474E58AA081F0C61D1A3901AD1C39C2CFCF3E183591AE1D58F0F3EB1541E3E9E04CA55413B70E9060BB4EBE0D5688CA227D7FCE575212F1F46A1527F8238F4E3137C143EB3457F2EA0EB5F5EFF735F7FAA83F4F659C67CF1E5FE077EFDBB692B8A9F3E54A006F63DFD037DA2690DE50FFD7D1C9FFFA4E8743985E7B4E8DEA9BE8F593F3F45DF15A89F7DB183F2D83F807257D2AD58BE76A5BEE32EF333F64EF7FCDDF77FD3F93B3E7CFFD36BD71EEAFA1D5FA306F26F36FBADEF9EFFEE89219D8A8F1C05FB07FDEE396DFF33C4D3DFEB1397DA91DDFA9935F3F1E9768EFDDAEE15F44CBE0D149E1D14BE5B5DE16944CF922B226E43D7AEC50E533FAD68D68AAAAA2D41D5B4D8F1A62B45E9673FFFD5AF7F8F1EFA2EA4FCFEA9AE11547C3A2D4B0B9C78A875BE1ADB9D3C2D9DB272D9A6F59BD7576F299D565DBD72595569E58E65556B4A438180ED8366783D746D364073BF14EF45BDB0977E428A3B3FE5F21B1D076B2F621D76A1FC8BFDFA6FCDD7396FD4CAEAEA383E900833C610CCA043E2EA3789531BFFD244FE8F7EFD3F89D64DAC]
}
Add(FileStream,13440710,406,224)
{
FileName="1.exe"
Mode=1
AutoCopy=0
Point(doCopyFromStream)
link(FileName,5019405:Var3,[(412,172)])
}
Add(DoData,10247076,343,238)
{
link(onEventData,13440710:doCopyFromStream,[])
link(Data,9600868:Stream,[])
}
Add(StrCat,16633203,294,119)
{
link(Str1,16481472:CurrentDir,[])
link(Str2,14682019:Data1,[(307,89)(153,89)])
}
Add(Dir,16481472,294,42)
{
}
Add(Hub,13101000,161,119)
{
link(onEvent1,16633203:doStrCat,[])
link(onEvent2,5900161:doFileExists,[(203,132)(203,258)])
}
Add(FileTools,5900161,238,231)
{
link(onEnd,2433285:doCase,[])
link(FileName,5019405:Var1,[(244,172)])
}
Add(Case,2433285,287,231)
{
Value=Integer(0)
link(onTrue,10247076:doData,[])
}
Add(GetDataEx,5019405,294,167)
{
link(Data,16633203:Result,[])
}
END_SDK
Add(LineBreakEx,9027771,252,98)
{
Caption="Имя "
Type=2
}
Add(Hub,9804788,777,420)
{
@Hint=#49:без хаба работает и то и другое, но вместе никак.|
link(onEvent1,4865845:doAdd,[(812,426)(812,405)])
link(onEvent2,1927187:doAdd,[])
AddHint(-240,59,198,26,@Hint)
}
Add(MT_MTArrayRW,1927187,910,413)
{
link(Array,1820228:Array,[])
}
Add(MT_MTArray,1820228,910,308)
{
}
Add(Hub,5782863,819,301)
{
link(onEvent1,13076694:doClear,[])
link(onEvent2,1820228:doClear,[])
}
Add(Label,524522,770,343)
{
Left=75
Top=175
}

[color=gray][size=9]Редактировалось 1 раз(а), последний 2017-08-27 10:15:52[/size][/color]
карма: 0

0
Ответов: 497
Рейтинг: 16
#6: 2017-08-27 14:57:08 ЛС | профиль | цитата
comar писал(а):
странно, там вроди стандартные элементы

да нет это я пытался другие элементы подставить
comar писал(а):
у меня вылет происходит

сегодня запустил первую схему и работает правда з потоком на ~36 программа просто закрывается но без потока спокойно 100
карма: 1
        ]  
0
Ответов: 12
Рейтинг: 0
#7: 2017-08-27 15:13:35 ЛС | профиль | цитата
RAWY_EX спасибо!
значит у меня что-то не то, буду разбираться.
карма: 0

0
Ответов: 497
Рейтинг: 16
#8: 2017-08-27 16:09:32 ЛС | профиль | цитата
MT_MTArrayRW


unit hiMT_MTArrayRW; { Компонент MT_MTArrayRW (доступ к массиву MT-потоков) ver 1.00 }

interface

uses Kol,Share,Debug;

type
ThiMT_MTArrayRW = class(TDebug)
private
FItem:TData;
public
_prop_Index:TData;
_data_Index:THI_Event;
_data_Value:THI_Event;
_data_Array:THI_Event;
_event_onRead:THI_Event;

destructor Destroy; override;
procedure _work_doRead(var _Data:TData; Index:word);
procedure _work_doWrite(var _Data:TData; Index:word);
procedure _work_doAdd(var _Data:TData; Index:word);
procedure _var_Count(var _Data:TData; Index:word);
procedure _var_Item(var _Data:TData; Index:word);
end;

implementation

destructor ThiMT_MTArrayRW.Destroy;
begin
FreeData(@FItem);
inherited;
end;

procedure ThiMT_MTArrayRW._work_doRead;
var Arr:PArray;
Ind:TData;
begin
Arr := ReadArray(_data_Array);
if Arr=nil then exit;
Ind := ReadData(_Data,_data_Index,@_prop_Index);
if not Arr._Get(ind,FItem) then exit;
_hi_CreateEvent(_Data,@_event_onRead,FItem);
end;

procedure ThiMT_MTArrayRW._work_doWrite;
var Arr:PArray;
Ind:TData;
dt:TData;
begin
Arr := ReadArray(_data_Array);
if Arr=nil then exit;
Ind := ReadData(_Data,_data_Index,@_prop_Index);
dt := ReadMTData(_Data,_data_Value);
CopyData(@dt,@dt);
Arr._Set(ind,dt);
FreeData(@dt);
end;

procedure ThiMT_MTArrayRW._work_doAdd;
var Arr:PArray;
dt:TData;
begin
Arr := ReadArray(_data_Array);
if Arr=nil then exit;
dt := ReadMTData(_Data,_data_Value);
CopyData(@dt,@dt);
Arr._Add(dt);
FreeData(@dt);
_hi_CreateEvent(_data,@_event_onRead,Arr._Count);
end;

procedure ThiMT_MTArrayRW._var_Count;
var Arr:PArray;
begin
Arr := ReadArray(_data_Array);
if Arr=nil then exit;
dtInteger(_data,Arr._Count);
end;

procedure ThiMT_MTArrayRW._var_Item;
begin
_Data := FItem;
end;

end.
могу предложить так
заменить весь код на тот что выше
тогда вот так работает
new


Add(MainForm,434716,175,98)
{
Width=419
Height=261
link(onCreate,9581446:doWork1,[])
}
Add(LineBreakEx,12280247,364,238)
{
Caption="Имя "
Type=2
}
Add(ProgressBarRush,16035786,959,105)
{
Left=15
Top=111
Width=375
Height=25
}
Add(LineBreakEx,12817326,805,105)
{
Caption="прогрес"
Type=1
link(OnEvent,12325891:doWork1,[])
}
Add(LineBreakEx,12526161,1001,350)
{
Caption="прогрес"
}
Add(Hub,14895446,308,259)
{
OutCount=4
link(onEvent1,2271599:In,[(334,265)(334,244)(268,244)(268,223)])
link(onEvent2,5926953:doStrCat,[])
link(onEvent3,8389943:doMessage,[(346,279)(346,349)])
}
Add(Message,8389943,371,343)
{
Message="Ок"
}
Add(CableWork,2369502,966,350)
{
link(Cable,12526161:doWork,[])
}
Add(Button,8513360,182,259)
{
Left=155
Top=45
Width=100
Height=30
Caption="старт"
link(onClick,15393440:doStart,[])
}
Add(Memory,6423116,588,112)
{
Default=String(compl_24.08.17.xls)
}
Add(LineBreakEx,8130615,588,154)
{
Caption="Имя "
Type=3
link(_Data,6423116:Value,[])
}
Add(DS_ODBC,9220204,532,357)
{
Name="odbc_driver"
Point(onError)
link(onCreate,13192344:doEvent1,[])
link(Driver,6939220:FString,[])
link(onError,2774394:doWork,[])
}
Add(Memory,4937846,539,266)
{
}
Add(Dir,154286,357,189)
{
}
Add(FilePart,5229429,469,266)
{
link(onPath,4937846:doValue,[])
link(onName,7579850:doEvent1,[])
}
Add(StrCat,5926953,357,266)
{
link(onStrCat,16714654:doEvent1,[])
link(Str1,154286:CurrentDir,[])
link(Str2,12280247:getVar,[])
}
Add(Hub,16714654,420,266)
{
OutCount=3
link(onEvent1,5229429:doPart,[])
link(onEvent2,6939220:doString,[(463,279)(463,314)])
link(onEvent3,9220204:doOpen,[(448,286)(448,363)])
}
Add(FormatStr,1359034,651,301)
{
Mask="SELECT * FROM `%1.xls`.`sheet1$`"
Point(FString)
}
Add(FormatStr,6939220,532,308)
{
Mask="DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};\r\nFIL=Excel 12.0;\r\nDBQ=%1;\r\nDefaultDir=%2;\r\nFirstRowWhasNames=1;\r\nReadOnly=false;\r\nScanRows=0;"
Point(FString)
link(Str2,4937846:Value,[])
}
Add(LineBreakEx,2774394,581,364)
{
Caption="error"
}
Add(LineBreakEx,2469851,749,413)
{
Caption="error"
}
Add(FormatStr,9473098,700,231)
{
Mask="SELECT COUNT(*) FROM `%1.xls`.`sheet1$`"
Point(FString)
}
Add(LineBreakEx,122388,749,371)
{
Caption="error"
}
Add(Hub,7579850,588,273)
{
link(onEvent1,9473098:doString,[(628,279)(628,237)])
link(onEvent2,1359034:doString,[(626,286)(626,307)])
}
Add(DSC_Query,12487484,700,399)
{
DSManager="odbc_driver"
link(onQuery,4865845:doAdd,[])
link(onError,2469851:doWork,[])
link(SQL,1359034:FString,[(706,366)(657,366)])
}
Add(DSC_Query,10256676,700,357)
{
DSManager="odbc_driver"
link(onQuery,2369502:Wire2,[])
link(onError,122388:doWork,[])
link(SQL,9473098:FString,[])
}
Add(MultiElement,12325891,910,105)
{
link(onEvent1,16035786:doPosition,[])
}
BEGIN_SDK
Add(EditMulti,9150291,21,21)
{
EventCount=1
WorkCount=1
link(doWork1,6017396:Cable,[(49,27)(49,99)])
}
Add(CableEvent,6017396,77,93)
{
link(Wire1,14032774:doOperation,[])
link(Wire2,3760010:doOperation,[(112,106)(112,43)])
}
Add(Memory,14148284,182,37)
{
}
Add(Math,3760010,133,37)
{
OpType=3
Op2=100
ResultType=0
link(onResult,14148284:doValue,[])
}
Add(Math,14032774,175,93)
{
OpType=3
ResultType=0
link(onResult,9150291:onEvent1,[(264,99)(264,27)])
link(Op2,14148284:Value,[])
}
END_SDK
Add(MT_MTArrayRW,4865845,896,385)
{
link(onRead,2369502:Wire1,[(947,391)(947,356)])
link(Array,13076694:Array,[])
}
Add(MT_MTArray,13076694,896,308)
{
}
Add(LineBreak,331861,805,308)
{
Caption="clear_mt"
link(Out,13076694:doClear,[])
Primary=[2271599,-525,-91]
}
Add(Message,8158759,952,154)
{
Caption="Ошибка XLS"
}
Add(LineBreakEx,13650324,896,154)
{
Caption="error"
Type=1
link(OnEvent,8158759:doMessage,[])
}
Add(MultiElement,9581446,273,112)
{
@Hint=#8:файл xls|
link(Data1,9027771:getVar,[])
AddHint(81,4,56,13,@Hint)
}
BEGIN_SDK
Add(EditMulti,14682019,21,21)
{
WorkCount=1
DataCount=1
Width=482
Height=312
VOffset=21
HOffset=126
link(doWork1,13101000:doEvent1,[(53,48)(53,125)])
}
Add(MemoryStream,9600868,343,182)
{
Stream=[ZIP00FC000078DAED9D077C54D795F0EF3C4642421489DE11BDA3997953691A01A2F76E6CD325D37B3306238C71C536C53636601BF7DE00776CCBBD819D2FD96C92DD24EBCD26FB6537FB659D6CF6DB6453F49D7BDE9933EF8CAEC683C363BFDD5F46BFAB3773E6CCFD9FDBEBBBEF5B5F947CF9E08B1DFF5E65BC46AA46EA4F75852ADF25F391C357B15257D3E73FD5D5D5A5C4757F79FDB77AFD11DC35906E8DC0F9C1E581D369DE185C01B842704DC015816B0AAE19B8E6E05A38594095806B09AE15B8D6E0DA806B0BAE1DB8F6E03A80EB08AE13B8CEE0BA80EB0AAE1BB85270DDC1F500D7135C2F70BDC1F501D7175C3F70FDC10D003710DC207083C10D0157062E002E082E04CE061706170117051703170797003714DC3070C3C18DC0BCAD5439B824B80A70A3C08D0637065C25B8B1E0C6811B0F6E02B889E026819B0C6E0AB8A9E0A6819B0E6E06B899E066819B0D6E0EB8B9E0E6819B0FEE32700BC05D0EEE0A7057825B086E11B8C5E096805B0A6E19B8E5E0AAC05583BB0ADC0A702BC1AD02B71ADC1A706BC1AD03B71EDC06701BC16D02B719DC16705BC16D03B71DDC0E2A9BDAED72BD77BF66824FEBE197A510F27570DD84A53AF7575BC83129BF2C9DA60516CA6B9DAF7554AABB567DFE1F3775FD8EAFE6EEB7D71E82EB4E1DF78E1AC4D37A60AE8638D076AC5617FA6AA92C9FDF55EFE4F21B8DFED6BF38EFF320E5B642ACAE8594D0619F00B1508D3669C91688FFF518DF0DBDFA01DF47E52757BE7EBDA052FC314058863654610A5C983D71E0BBD33317B6B6F587F4BEB0004A717E9E7AAADBF9C69FD4F8543E44E6DF430CBDE07F07E3E927986F37E87AA162F9DA95EB4A2FD16B14DAB0C4A76DA885081E01EF7CEA04488BA14EB19C94C77A47FF7F1EF5CEE2FF11581F4169EC75A4657B6EB792A8771BFEEF81FF9B2BEDE32BF89BBF4149106AAA933A1DF71CD43FB1CEA93C5F05C4FC4A88F935FF85DF0E707FEB3FA79AF946432E580BDF2F83723B0BB4D641F92F85BA69166B3753B969F75167D27E373AA78A507B2BD2ABE07F29D47655509B68CD8F73D4EC8AB9AB4051689A34064D1D929550CAB5764AA3F06B35425FA3E103CA592BBB4693AC1A83A0F40ECEAAE1FF5A0D4DF97A8DAFB7B430ABC60A831D6BE9FB251C632DBF364E5B7F8D860575FAD7F9D1E422680C6950A3ABBF0CEA9B36CAD7139AFC9EF01780229BF40F81FFC3A0321AACEACBBBFA13D06DE968FEC9E5D0425741EB7A65833F1E06FD9D4EEE1F0F01D730557EDBD55F09895B9AEDE70D5990E9D16A28BDB6F22D02A501E0637D53F5378E35D9BE4FFDBE075C7B18BE4BE27F8DEB6FC62D829F2C02EB1AC2C9EF25AEFE7729DC35F0FB61269C8C8686A0262D892E87BF86437B0D7422B3E0BF2ECC26ADFAF886436FAB47A057ECCA2457E00FDF2CAD9FBFD2DF74F58F508F42C7B9819F3594AFDC1E94ABC7A0D75D2F73364CCFFCBEAB7F827A1CDE67F5227B0E777BB6513D013D744332A4951A4A824C0D19FDA66FD339FD49734ED73F5A043FCA864C7F5F1F28BF4BE1F6AAA76094D16056FBFA909AF5EA67B76C61BE463D9D2DBF7F5DC84D5A66034C71F0258E0695FAF7BAEEAE9E676DE95FE4DEC87D7A345D2CE54D501FE46748EC3FD380FCBE06E4A71B90DFDC80FC7803F2B317A8FFF605DA73F402FD3F86F2A206F48B1AB0A7A8017BEACBDFBC40FFEF6B40FED805DAF34403F2A7BF91FF4D53F23B4B4ADA16B52D4AD9D9CC252FF017F853F9A1793D7D47DE2225FF2B9C326995CA9FC5425ED32C252F49CB4B8DF2DFC87CDE32ADBF44A93EEC7F2BB6A7BADAB1D34997D60DF8D3A6817CD2B69EFC6194B76BC09FBC94FC4449C9D1A2A345297FDAA7ED5CEC4CB539FA1D1AF0A76303F92D3F55DEDB4BFDC62887D8D8E1F3B5D3D6F94B32E4C5BE9AA2B4BC00E5509FC47D25ED14D849FE14B2BCB8A4A6282DCFC711734FA58667CAC9FFB849DEB39E3C6D4F89EFA8CB9E42833DBB0A5AAB5D05EED98BD1EA8EA2D595BB0B2AD46E212FC6998D66E04FA3D43C35354CCD21AA2D3F7E5155EDC7C946A779ABEF49496E9EE465F5A4656E9EE467F5A4556E9E34CEEA49EBDC3C29C8EA499BDC3C29CCEA49DB5C3C3937397BEAB4CBCD93ECA9D33E374FB2A74E87DC3CC99E3A1D73F3247BEA74CACD93ECA9D35978A2CC9E84ECECA9D325374FB2A74ED7DC3CC99E3ADD72F3247BEA94E6E649F6D4E99E9B27D953A7472E9E38CB370D7BD233374FB2A74EAFDC3CC99E3ABD73F3247BEAF4C9CD93ECA9D337374F64EA1CCAF0A41FDAAA3DD15373E5E5DBEAEA79A2BFA83B776F5DCA93C624DBB3674F5D6AD854E092A58655852E599206574D5CB29409F58DEA9F6154B9D9A85FFFFAD7F58CD2CA99466959A6515A966914821A346A8030EA3F77ABDC8DBA7831959907068A3CD028330F14E454B806E5E2495D79764F06E7E24966253C38C39321B8BED5A027BB0BE664FCA00C03D760FBD1D8107E779CA412A57E6A0738B51B2C5C3A751E7DF4510FB36066F404B3468FAF7EA2843851B4E727AA1AC8B375BF3851D770CADAD21395DF80271F7D5ED770CA86D974CED432657764FC2082D5397B5E778E7F908AE753A74ED5A5A8056E19254061A60C12A049A60C12A07E88A322C4F58A7A0A5657E36376FD10C74488EB94CA0C7126352EA8301834C7F387FF9A0EF111AB1B8C1C9A295F0822BD37E4AEC1E08AFD43FD63FD11FF08FF287F501D2E9802CEB50DC6DFB5AE996A585FDBE083C173637F55F5DFFEEC577579FABDB36FA6AEB7B643334BB2314306668F2CCC509A995755FDEB1FFDD0CC6C998D691B987DB230ED3433BFAAFA9F7FF52333B3553666D8C01C9085194E331B5755FFECCB7F31335B6763460CCC2159989134B300D2F397FF6666B6C9C68C1A98A12CCC689A595855FDC77FFA8199D95633C317906FBB01339C43BE3D37F9D5733F3533DB65639AF26DCF2C4C77BE3D37F91F5F7BD5CC6C9F8D69CAB77DB330DDF9F6DCE4EFFDF4AC99D9211BD3946F076661BAF3EDB9C9E76AFFC6CCEC988D69CAB7655998EE7C7B6EF2CB3FFAB999D9291BD3946FED2C4C77BE3D37F90FDF3D636676D6CCE805E4DB52604673C8B721FBAED3DF7398B41D87995DB2314DF9B65716A63BDF86EC1F1CBDCBCCEC9A8D69CAB7FDB230DDF93664BFFBD7C7CCCC6ED998A67C3B280BD39D6F43F6A9073F32334BB3314DF9369085E9CEB721FBC8F91F9999DDB3314DF9369C85E9CEB721FB3F6B0F9A98AD601CDE58F932F36A4506A74B5DE306F3A752D3F6BE69F6BB67A6DF2183DFDD33FC76E743A56AA74F31FBDD2BD36FDBE077EF0CBFDDF94DA9E36F5C66F6BB77A6DF6183DFFD33FC76E72BA56A963F64F6BB4FA6DF1183DF8333FC76E71FA5263DF3A1D9EFBE997E470D7E0733FC76E713A5FEE3EEB126BF5BA87E7A28D1D21FF28FF487FDA5E0E756E9AFD51A7E97FE5E0F93B49F7975CE2C411EBDD75309E867BE6A8E02DDE7F781B2FB5381F854283E695BFA3BB64C225A7D5BDAA02DA9EFDDB6E87178DA9672698B16A46D713E15884F85E2D311AB038CFF9B38B68CF3C7FD15FE6118AB71F87FB8604F86556DEB9A28936643F6E911C69F19579DD44055A47CEDFC01BF0D71310C9C8E93A19042BA9C4F9216362AAE2B52665D9D47305FC0F0B2DB84DD8E5DDA927405A069831AA2850CB4920668A16CB4BAF2276A7F4CB4C10DD16C03AD6503343B1BCD697C2DA40D6988A66B871119B4560DD09C016F3DDA11AB992A8361ADAF3D94C891F0ABFAF677A8F3ABD4B77A9AA25E2F24DF951A4E2E497DCA07FBFB4333D152F93AC2EF75A94FA25D93E17DC03F0DEC9A06B932E24F808D0160DF919173DBD5B554B9FCD29D93F51C48BD9AC45DD2F24549CB17252D5F94346D7F1BC88405CAD705283188CD0097B258463CB5A82B50995AA638F7E9340DE934ED82F6EB9005286493E0F3E18209D2675F674853B36EAA06C5DAEE1727B804EBA9154A5FD0A95175870B7A6578AAA03AEEEA0F62B590F24C41784B2063E62B5F37CC3D95E0B445E5193FEE0451E3D610767CF479DA0E959FB2A31D64C142EDEF4848BD0A40A6EBAB4446AA47EA0A557DBD545CA6AA19F2B7838AE89AB01BC44CDC3F1CF4C6B9D2685D86CF4DA0263469EAB91DB6BFEE5C5D2ABBE8799974C5E77C2A109F0AC5A723566FE817152B5F77C804D3202B688039ABCFC930AD7D5DB1FABA5FA52A0C5149A7ACD3D33F3AC30E563118B4FB7AC0AF8642048E023FCA21C811689046FB9D775178EF44EB34B0645A86254575AD55AEBF76274A5D7A58D24AC57589EC0D89A88BED78D0D5D928A34BE0EB087950EAB833929E594AF9ADA79FD0EFDB0BE6ABDB5D9E1CC475E612351B3496AA35AA4ACD525BD4D5F86E0A6EA25B89B70084D47478B70D6FCF486B4C06D9556A057C0E42BA1D563FC1592FAC37144E7CD2BF3A0C1E660E284D4A172955436F6AE8430DB8DADA5AB8824EE96250AD5527BFFC522DD6E54F2BD7D4C2F7E0C717756A25F8F365DD97EA47274EABD377FC520D58FF3B55FEEA7935FEFAA8BAEB4085BA7DE1287572E94EB574DA33AA4BD95BAA5FF536BC9BA672A44FADEAD74AED4FAC521343FB55ED0F6BD5639F7EC536A13D354AD854F7FBAFD4C9938FA86042A91FEC1FA9AE286E4E93C8A93B1C16E3B6FDFD908FFE7AAFC215A7592BAAAAB6048F15B457C70AE42D6BA95B3E1E2E2806276F853800AD4363F87BCE070D0AF4F8DAE98A93BE7BC757004EA92EBFF0A93FA86EA59560C2161F267747EC2C95285F6BEC9F94630F25AEDB2C78A78B4085DA007F3ABDA0949682760C72DF10ED7967D01C066F47C2AF46C1B5B153510F839F8FC3829DE7B49C43B15E86DC158DD8B12192940042EE7FF56DD2D29590BB96405ED37D08085429046E60D960E0C523B148C04B9E0DCD775847453A9801888AC91072150CDAF1B8A7F40A78BF49112A617B89D2F75CAC03A7A358476C3818085E0A9ECE34413B38C83B1610128178D0A3D0ACC07B9CAA30AB8C235628742958B3309D20EE467B4D0BEBACA8870B581D4C82C6BD548D8272300E9843B1B91F01B5C6703FD457CBD66FB8BAB4A2A2024C8BD801BD5760C5CAAB56946A3114DC81208E052389AA4B6571126B33DD4DD756C71BB07B1068EB721DC6EE90B6467F3B09DACCA1D8FD2A55719469ED72960DC7567AAADF096A78CCA50AD338FF0CB06E449674D0652A16883BD92374090C9B956306D1C91FB1A3DA30DB8E545E3AC3728AB35828A87B48897024E479918AE41E63F170DCFBCC15C939A2B0350A061395DE9B34FA828C0AC4C2C14B104FB9E67532295479E94CCA299E12C140C41EEFB5515170D3E1BBAD78FB668EF195088412C10997DEB4DCF25728108F8EBE14C6E51A5BA1782454A47C23516CE357BA6F5E0A83B579CAB138181B73A92CCE2DF381CD365EED50EC12A4F4AC6F940D83A1586CE27F85713916E0502C3AE6D2989773560C45C29597CEA41CF35A2812F3BCA28B7DA31C06A6C5275C7AD3728EB7C8E84B61DC05C45662CCA53228C7380AC7BCCFF0B354E505F5F9237622EC8D4DEB71CC3E1BCF50580616EA11689619A5A9783C8ABED51F5BF51874392E865D53F05C884DE0F96670D578128CEEE5DB2A00D7C93811998242DB171DEA2D34A2CAB0FB65AB503D3C843948D79087618FA01999F0A01D0DCEF4121ACE88F0523506DEEB631174A65D09D20B1A4DC413F1E4C530379DEDB434084686D0D00B184304A3E181DE9812D1B3C2763811F4C2FB20DEFF5C46EF82888A5C9C49B5FA288D40C0C599E732014214168DC239C2702814F524E642AE98D38B14C00A85627A1E206C47A351AF904E00F53B9BDEC5E13D50ED5820ACCBB00D8DF0282FE8112C1299E5B50C277E83D89BCFFCAEA952EED38EB0868906ECB1DE5817AA57B7E4DC00422689CDF0C2AA2867126D5D9CDF25E05D19BCB331A396611F557FA3ABE4CD7808D61AF82B03FF62204F4BB0F4E8E5FEA81D0F17D41FC2E94C98085D9CB15BFDB044D0D610BCB3E95D0C43B81457EBCA5027CE3A3AE4CBB0080622A161DE58A463CDE16AA7DFC529C62358429C92110F45B1B9880613A32FBE1D214CD132BC86F01AC4749C09ADE06048E928A676EA73AA724283C2A1B863582890F0C6B00815509BB259CA88009AE12C10250298ADA2C3BC30215502429C7F6CAE3A23D4FC203E96F406EF14B0286507C7901066168D0F73D245A8A18DC4C7786348EE65A60C3B67FA0FEBF57050CF3143260E5C7CC36C8C17DD73DF0CBDF325CA591A4D0CF78614C1A00530F66DAA106DAC0EA5057630429DAA081A140F7812745D0432C0B6DE1D188AD991CBBC0206A0592AA38A3F41499D4AF6185C63545243943136534311C2065FFF4FE7E304EB3A9590CE2E51DBD6D9381A9AEB450886AB4E800B05CAA201F817833C5996B00381D2CD6B97AC59539688F0DBA9097AE73400E1A417D6A4EAB528159E322C5CA9121FA5B88C52E1C368B1B183160C0DF2C69E488A13C6FF5E74DA6D574D1AC560FBB1FE0CAEBCF82C276B6AD66808DC602AC2116EF362D8DA39995757A73A9A7750AF3046B5FB66B2547F5AE27A5F4D5937C6D95FBFB7052D88FD07288E541D785105469093AE070815F363773592F08218A4F62FC4573918D775513C1174F63804067961829357B12B9908604720168F8FF782645FC058DA5931D79B2987D37A39AE47D8112F46D711AE1662B62771EC141F1DC78958D823027572C3A160A899694D27E81FA24683C3B6219898ED8515E94E770807A4CE3B9B65E929AF546512C1E26DE3FB280E741250F8537B7BCAD47C67440D43E918465F14D7FEA121C1114E3CD0D414D40ADC8F8C7B0512210FF24B34959CB1683CE891FFB6B3392714F3C4FF606A44140C2DF2CAFF20D76CA98E7794DFC578B41BA05E6F14474B416C4B6CD25CA696E3885767A528659DD4F8B88C7EEB74D66341FC1F99E95D60DCC3714766670CD2B53486759C5B1AA3A6CD2DC5C62CE645DF234A034B8C0E5D5642D00559E00DC7C6E672199EB7AC67FB87500285B03F5AFF1B9DB0E66F9C7E5B2CE31BDA2812087A617EE62C91D3D2861A61A118E40D31D5CAC44383BD03E06CA79D0825C678C5D0B57525753D9D762740C536E67A67537F3C4645346ED3544762BC378645FE8CCE051694B03DCC1BCB623C3889BBDEC579C01271268DE34EEEC3D9DB50241299E7853576969597CD17B4F262EEA2054389E0D4FFBF0D7726C9436BBCB25227719C27BCA234D5BB0CDF3BD339A9499F522C1D8E5E25357F119A182BA366500F9CD670FD19A46FD27E46589A1AF36EC6EC148EC471A23D1E08547A11D2F0379F6687D8B73DA901533328588E62180B319CD48CC70779C34B2D65C5139E00B8A719817AC193288BA5E7E7A3B16004DB0EEC5D472376D443E26667E3BE33B68DD891A837A820E6D2A920D986654E3F55443F5F4477DE63D1D0C88B4F758297FB76E678CC2EF7D68ADCF62EC76D2F8632B1D4E40DC476D813FF6928930804E333BCF0DFBC9CD870833814EF972BF78FC69B239D9DFEEE4652D7168960C02B53B5B14EF382202F56D8D3A08C05C944D21B58BAD14B37A901EE4985787297B20254275E4CB2C4A883AD6BE34410E7751376D01B4E9C3BD271678D10724C2832D50B987DD1B6E2E8526EC7420BBCB032423579E6C8D1E63ADEFC8D79841AA34D0CEE6F74B2C643514F324E7AC22892B03D18FEC42FA8B63777DC03B170CC1904DB116F2C8CE37652FD0C25BD2F702E3E49693B0DBCC353BD6006EBE5ED09F8D431FD0427BD43720BEE494CDD98BC254BDDAE5B98483438DF0B2BEBB730FAD955B9A6E3D7B5374EFC468297C2728715ADF48615FA46E30DACA7BDE8FEC7558277700462012FF24682CAF564AC872F24D4B9E78DB06D577A61F99FB10D2B118EC43CB229F28D621327362276B0DC0BA3EC0BEBA847A37674DAC5B76334E4E5C1BC2C13A455D7F4FB10369DA9F5D8002ECDA4B59C1DAA31DA06A9B7071C6A8ECD5D308077EC4613092F4C0EB9568F426C66EA3DAE1CC19836E0F4D822577A6182CDF1915A372EE5350F2909D6934484C426F32B6951CC8963D7FA773C1E0EE354403881BDDCB017554E2A4441A4DB1CA9D27227374859B45E6802F524CE503012C4AD8BA1706CB0170188A6A30C46D731DB0B468C93682A340483B97F178C04075C7C5E25ED2B8ED85E2C6756E2D009378F84232BBCF1DFD92E12E3F5E1286F7D88F29EC428ED8B5A87C3B9180FEC22BC7D2435DC5B46FA51D73736D504B6EB97B1D4924B3810C06D1C016F522786B167C3C0D31BDF83582DC4A87A883A8BC311E874380B89C1F0C5C74EA5558BA9848DD236348CCC90935912C3BCE1DABCE3B994A7CAA7624B99FAAC831F0C2570B632E8C546CDA9386A73E363D877487F8E63AA3866AD741B66C77121271C882CF4CEAECCCDE1917A6BD1CE4A8394A6B75C656A3BA5AC3A7395DA8E87BC09459CF372944210A36B9CAE095E194ED50911DE1656891B0B9C6B84CA46FA662A9B4B3F6F8AC33E40D89B7B73A6E22E04678E3EE291FF5167436E281EF3C2FF44F681AF6D87E3B637DC088EA3C641E1718A5214EB9760D063DC28C6E16EA85070A0573C0C4EC0B9B524E111055B9F502CE1C5A6C8A9105B4BA05ED3333633D418BA5D2118EE7FF151F3531B3E82744F5F62A41790D085AD8AC0F0D81B2B521DEBF9BCA1B6509F17AB07E8117F0C5CD21F82FF4EBDE2C53D19F3B19D9D4F43A6086D3B0FF1DD094EB58B3D8C68C81995EB1381A2713B3AC00B6B62A9DB50829E783F59D5A99DBE026507153EEB312FA4D48FF5217B70FDBE4FA927C34A5D07C5F59388520F4138BF8829F544BE521D872AF56F054AED1CAED4AC22908F0039786027C19F164ADD314AA915254A3D3E46A99A564A558F55AABC0DF83B0EFC6DABD40D13945AD45EA9AF2682DF1D947A78B252BB3A29F5DA54A50E7751EADD694A1DEFAAD4BE1910C560CF3FCE54EA04D8F3EA6CA5D6813D3DE72AF503B0E7CD794A6D067B9E9DAFD4B2C6C05DA05465A152FDAE80703451AAC342B00DECCA5FACD4D9E64AFD7289528F142BD56319D801F61D5CAED458B0EFFA6AA586827D952B94FA3DD8D77315F80FF60D5D033676546ACE3AA58AC0AE773628B5BD9B526F6C526A26D8F3EF9B953A6029F587AD4A1D017B266C57EA4B48B121572BF501D8F3EE4EA52E037B76EC52AA05C4D3F3BB8107F654EC017E33B0B9A02D38F98C3CE7B0C2BB0B8AC1A5BF19F5339F3A0EB2E319471B1E00D9818C230DF5D34E0B41AEF28BD553DDCE37FEA4C6A7F2C1BA226B10EB7C4B3FBD679F520B0E2B75EC41A56A5F50EA9FDF86907CAE547BC802B53F53AA193EEDB129FC5FAE5AE0018A25F8BF5815A83F3CF9AB6F4F593ABD7C11EA0C40F940FC7F1D4A6A54DAA8DEFA3C57C8697BE19B77FCADE98182FB50FB7AFCDF87B57F5EDED7F5BE1FBFFFAABCBFEBFD83F844B43A7D6023FCF931769CD797E57C2D3D51D0479DC8881BF7AB29BF9B035614A8DD2949E3045AA53F6BFF6B3AA53F5BFADDF8F4E746F057D322FD591F353CA720FD1932A76F4E93047ABB05D2648B483FC82A56734E0FE76165055631BDFF0AAF495F0B94F950D6C5E7965906592383CC6F90E51964F906596383ACC0202B34C89A18644506595383AC9941D6DC206B6190151B642506594B83AC9541D6DA206B6390B535C8DA1964ED0DB20E06594783AC9341D6D920EB62907535C8BA65C8FE88A906751FFE773EF95405E6BFB7F093059F2A209F39DFF9D530CC87CEA73CF8D4883FE5C3273F7F6A0C9FF2E893F66D38E637E7930FFA9FF854582B1FDE5BF0C99137522330B7BDA9CFE306BF46C2FBCA24FCAF1993CC239D7C55EE3C39167FDB5825516E21A109112C24149196C5044B102C22946B821A41040B094DF9B72942232434234223243427AD464C6824088D1C42CD78248C2742234168C4043F125A10C18F8462D2F233C12F087E87909CAE09B5D388E017043F13F2905042843C24B424AD3C26E409421E856104107C358F11214F10F298908F845644C847426BD2CA6742BE20E43B84DA99184B3389902F08F94C688C843644688C84B6A4D598098D05A131A574570CC30D44682C088D9950808476442840427BD22A60420113AEB5F42787D033D908EAF802889191AA1A5F3D928EB63BDF1630AB10591D885588AC8EA455C8AC426475A2D01422CBF7FD233A34C5472834858250C8842648E84C842682D084094D90D085084D1CC2C93B3561718AD004095DF9B729421112BA11A10809A5A455C48422912245145F8331CD0711A14884A188094D91D09D084D91D083B49A32A1A988A5A6C6586A2AD2BC29139A21A127119A094233263413B1D4CC184BCD442C3563427324F422427324F426ADE64C682EC2D0DC1886E682D09C092D90D087082D04A105135A8830B43086A18520B460423112FA12A11809FD48AB9809C5220CC5C630148B942E66420912FA13A144104A985022C250620C4389084309135A226100115A22612069B564424B416869CCAD2D05A125135A216110115A21613069B562422B41686524B41284564C688D842144688D8432D26ACD84D682D0DA48682D08AD99D006090122B4414290B4DA30A18D20B43112DA08421B26B4454288086D916093565B26B41584B646425B4168CB8476480813A11D1222A4D58E09ED04A11DB576094D48C689D04E10DA31A13D12A244688F841869B567427B41686F24B41784F64CE8808438113A2021415A1D98D041103A502C453096C244E820081D98D011094389D051103A32A123128611A123856134F6CD4611A1A328D31D99D00909C389D009092348AB13133A8930743286A193084327267446C24822741684CE4CE82CC2D0D91886CE220C9D99D00509E544E88284246975614217D1C67521C228EC9B5510A18B084317267445420511BA226114697565425741E86A24741584AE4CE88684D144E8868431A4D58D09DD04A11B119C3EF248227413846E48F81EF8F52934726BACA54AFEAD514B2FE04F8F524A0D2397EE06590F83ACA741D6CB20EB6D90F531C8FA1A46E7FD0C7AFD0DB20106D940836C904136D8201B629095196401832C6890850C32DB200B1B6411832C6A90C50CB2B8419630C8861A64C30CB2E106D908836CA441566E1811976249A9A492528A25652CE5F6522E29A5A2A4941A4B4AA92829A55C16BB23611C11BA23613C697567427741E84E843149A7DECA231D37A13B137A206102117A20612269F560420F41E86124F410841E4CE889844944E88984C9A4D593093D05A1A7BBD6AD4DD5BA3D05A127137A21610A117A21612A69F562422F41E86524F412845E4CE88D846944E88D84E9A4D59B09BD45DBD49BDAA621A217D25B8C2C7A33A10F126610A10F126692561F26F41161E843840224F889D04784A10F13FA8AF99BBE387F338BE66FFA8AF99BBE62FEA6AF98BFE92BE66FFA8AF99B7E1886D9FC4987610ED9D18FC3D04F84A11F85A12F86A13785A19F08433F0E437F24CC25427F24CC23ADFE4CE82FD2A13F117A21A10711FA0B427F260C40C27C220C1084014C1820FA080388D00F097D883040F41106306120122E23C240242C20AD814C18286269A03376997FB71EBB7C7C2711060AC240260C42C2E5441884842B486B10130609C2209A5DC13E824A95874122B70E62C260245C4984C14858485A83993058100613619E2694CE23C2604118CC8421485844842148584C5A43983044CCAE0C7162E9CB0D38BB320467578EDDAB5FBEA4A3ED660D615619B29610AB0C594B49AB8C59658255E6B0D43A6495B96672ACA4A3ED6695312B80AC65C40A206B3969059815103117705835D59836BF2DCF231D3721C0842012AA8810444235690599101484A08BE0AB59426913148420134248B88A082124AC20AD101342627C1F7208C92A4108891C1C62828D849544B005C16682CDE55CA7818D84547AEB34B2315534D3D17697789B596164AD22561859AB492BCCACB0084DD8982261119A30132248584384882044981011B55684EA143F1214C55744A44884095124AC25421409EB482BCA8428A7B9F3C90FBF5E4FF9398A71A554CBA4F39D9B13654E0C391BC88718723692568C393191B762149229D85B984C218909428C0971246C22421C099B492BCE8438A786B63D2ECA7DBC5EB98F8B7489332B81AC2DC44A0856825909912E092AF75B920E318F74DCA14930612812B61261A8200C65C250246C23C2508AAF624D38B985084345188632611812B6136118127690D630260C132932CC98B78689300C63C270245C4D84E148D8495AC399305C948FE14E2C2DDEA1C350BA9D08C345188633610412AE21C2084118C18411A2B48F408253E31663691FE19476603ADAEED08C60D64864ED22D64864ED26AD91CC1A294233D2090D84C349F93CD271D7272399508E846B89502E08E54C2817B9AA9C52A433A6487B22948B3094F3F8F9B7C6F1B31C4BAF11A3EA15627CBD86C6CF49C338A7C2201B65908D36C8C618649506D958836C9C4136DE209B60904D34C8261964930DB22906D954836C9A4136DD209B6190CD34C8661964B30DB23906D95C836C9E4136DF20BBCC205B60905D6E905D61905D69902D34C81619C6CF492C297BA8A424B1A4D4506E4F7249498ABA3E492DEF5EACEB93AE7E97D3722545A94C72A9AC40D65E6255085605B32A44A9AC70AD072AD5914A6585A8C52A98300A09D711611412F691D628268C1235F1282228D18F182508A398301A09D713613412F693D668268C66828EA1D1F57A45A345AF68B4A86346336B0CB26E20D61864DD485A63983546D493635CE351DFB736527C8D11A119C3844A24DC44844A41A86442A548914A77EBBB7833112A05A192096391703311C622E116D21ACB84B12245C6D22AD196A413923CD27113C632611C126E25C238241C20AD714C182762691C85E17A1D860DD711619CC8B7E398301E09B71161BC208C67C278114BE31DC2574858BC8F08E3454A8F67C20424DC4E84098230810913C488778268AF5225638288A5094C9888843B8830110907496B2213268A589AE88EA52F6B8830511026326112120E116192204C62C224114B931C42F14D4927AEF248C71D4B9398301909878930190947486B3213268B304C36F6B3268B949ECC842948B893085304610A13A688304C21424BD1CF9A22C23085095391701711A622E16ED29ACA84A9A23C4C358661AA4887A94C988684A3449886847B486B1A13A6891A7D1A115A638D3ECDD57B2F493ADA6ED634664D47D6BDC49A2E58D399355DC4D77451A3B7A5D04C1729329D093390708C083390709CB46630618648F31944682AC60733448ACC60C24C249C20C24C4198C98499220C335D69AE3979A4E326CC64C22C24DC47845948B89FB46631619648F359AE11489A304BA4C32C26CC46C20344988D8493A4359B09B3452CCD76D7E3A59B88305BA4C36C26CC41C2834498230873983047C4D21C6318E608C21C26CC45C24344988B8487496B2E13E60AC25C22948A3A70AE88A5B94C9887844788304F10E631619EA865E7116100B6A78788304F10E631613E121E25C27C243C465AF399305FA4C37C1186CE44982F08F3997019121E27C265827019132E13B17419D5B24792CE2C6F1EE9B873EB654C5880842788B000094F92D602262C1061584061E883ADDD6D445820C2B080099723E129225C2E089733E1723122BFDC3593AF77A8E4918E9B703913AE40C2D344B80209CF90D6154CB84294B82B88E0ACD02689708588A52B987025129E25C29548788EB4AE64C29582702511703F818A11E14A11862B99B01009CF136121125E20AD854C5828080B89D05ED4AD0B056121131621E145222C42C229D25AC48445222F2D224230E9ECEEC8231D77995EC4A3E41FE328794DD6B5E53539AC322F368C669618644B0DB26506D97283ACCA20AB36C8AE32C85618642B0DB25506D96A836C8D41B6D6205B6790AD37C83618641B0DB24D06D966836C8B41B6D520DB66906D37C8761864571B643B0DB26B0CB25D06D96E83EC5A836C8F6194BC184BCA692A298B454959CC2565319694335452168B7D31369594C5A2A42CE6B2B804092F116109125E26AD254C58226ADD2544E88E6D536AAFEC124158C284A5487885084B05612913968AD2BE94083D924E2F3D8F74DC75E252262C43C2AB44582608CB98B04CD4EBCBC40AED40222C1384654C588E84D788B05C1096336139B7E0BA37BBDC35FA76F6FC2E77F56F4B93CE2FDCBCE5CCAB42DEEBC4AB12BC2AE65521EF0DEA4B5751887A23ABCA353BD22BE968BB5955CCAA46D659625523EB4DD2AA665635B374EC5513CBC679FD00C55EB5A8EFAB99701512DE22C25548789BB4AE62C255227DAE72FA0E2FE09ED0D2C344B84A10AE62C20A24D412610512DE21AD154C5821664756B86691BBE3ECC80A677604F29BA3ED66AD60D64A64BD4BAC95C87A8FB456326BA528312B8D733D2B056125135621E17D22AC1284554C58254ACC2A1E49E9F99DAD145FAB449AAF62C26A247C4084D548F890B4563361B568E357BBC2905EC55B2D4AFD6A26AC41C247445883848F496B0D13D688585AE39E4352EB88B046C4D21A26AC45C22744582B086B99B056C4D25A22B44D3AE3833CD27187612D13D621E15322AC43C267A4B58E09EB44BE5D47EB059B309652F360EB443AAC63C27A249C23C27A249C27ADF54C582FC2B09EC2D05FF4AAD78B585ACF840D48F89C081B046103133688B1C7062244B174A75A900D220C1B98B011095F10612312BE455A1B99B051E4A58D5C57B9FBED1B45183632611312FE17113621E1DBA4B589099B440DB5C9D823DD24527A13133623E13B44D88C84BF22ADCD4CD82C72EB66774A736EDD2C62693313B620E1BB44D822085B98B045A4F416D77C643A2F6D1161D8C284AD48F86B226C45C2F7486B2B13B68A74D8EABE372899BA3768AB08C356266C43C2F789B00D093F20AD6D4CD82662691BADFDEF14B354DB444A6F63C27624FC0D11B60BC276266C17B1B4DD9D0EC9D4ACCB761186ED4CD88184BF25C20E41D8C1841DA247B5C35D2FF1BCCE0E41D8C184AB91F043225C8D841F91D6D54CB85AA4C3D5C6BDCC570BC2D54CD889841F13612712FE8EB4763261A720ECA43D6F4E8B1D22C24E910E3B99700D12BE24C23548F87BD2BA8609D78894BEC64987DAED62D6E51A915BAF61C22E24FC8408BB04611713768994DEE5CA4BE9DA7B9708C32E26EC46C23F106137127E4A5ABB99B05BC4D26EF758BC26B55B7AB74887DD4CB816093F23C2B548F847D2BA9609D78A58BAD63547985E63B85610AE65C21E24FC6F22EC11843D4CD82362690F113A8AF5E43D82B08747CA3F11EBC91BD49A6FB81FBBC630A2D96B905D6790ED33C8AE37C8F61B64371864371A64371964371B64B71864B71A64070CB2DB0CB2DB0DB23B0CB28306D92183ECB04176C420BBD320BBCB20BBDB203B6A90DD6390DD6B901D33C88E1B64270CB2FB0CB2FB0DB2070C23E51A2C293FA79252234A4A0D97941AD157AB71AD64A5D7CA6A4449A9E1B2B81709FF4484BD48F867D2DACB84BDA23ED94B84DF96EB3EC24222EC1535D65E265C87845F10E13A24FC0B695DC784EB4469BFCEB827E93A41B88E09FB90F07F88B00F09BF24AD7D4CD8276AAC7DC6167C9F88A57D4CB81E09FF4A84EB05E17A265C2FC2703DB5E037269D55BF3CD27113AE67C27E247C4584FD82B09F09FB458F76BFE833F723C27ED136ED67C20D48F815116E40C2AF49EB0626DC2062E906D1DF4CB54D3708C20D4CB81109FF46841B05E14626DC2862E946BE7FD83D2772A348E91B997013127E43849B90F0EFA47513136E12B9F526D78A407A55F42641B889093723E1FF12E16624FC0769DDCC849B45186E36EE75BA59106E66C22D48F82D116E41C2EF48EB1626DC2208B71809B708C22D4CB81509FF49845B91F07BD2BA9509B70AC2ADAEB90F5FFB6344B855106E65C20124FC81080790F047D23AC084038270C0B82FFE80201C60C26D48F813116E43421D69DDC684DB444ADF46BD411CE141AF338F74DC25EE3626DC8E047D4483F349137C3E47EB7626DC2E08B71BFB39B78B30DCCE843B906011E10E243422C21D4CB84310EE30DE01718720DCC1848348F013E12012F28870900907C53EEF834CD0F34507EBED2D3D2858079975C839CB8258879CB32C887588598744FD71C8B8667948100E31E130120A887058100E33E1B0C855878DFB360E8B343FCC8423482824C211243421C211261C118423C6301C116138C2843B915044843B91D094087732E14E91E67752BE9D88848944B85384E14E26DCE59CC74184BB9CF33888701713EE1261B8CB78C7C85D220C7731E16EE73C0E22DCED9CC74184BB9970B708C3DD22969A13E16E41B89B09479DF3388870D4398F830847997054108E1221907466B8F348C71D4B4799708F731E0711EE11847B98708F88A57B9C16FB89E3A20EBC4710EE61C2BD48684D847B91D08608F732E15E11867B290C03458B7DAF88A57B99700C096D89700C09ED88708C09C744EFEF9858512C23C2314138C684E348684F84E348E84084E34C382E08C7E9AE179C5DA9994E84E322968E33E104123A12E104123A11E104134E08C2090AC364244C22C2094138C184FB9C733E88701F12BA10E13E26DC2708F711618608C37D82701F13EE47425722DC8F846E44B89F09F78B94BEDF38377EBF4887FB99F000124A89F00012BA13E101263C20C2F080FB1E68BEBFE9014178E06BEE50BEB0D5633D4A396918B93C68903D64903D6C903D62903D6A903D66903D6E903D61903D69903D65903D6D903D63903D6B903D67903D6F90BD6090BD68909D32C84E1B64670CB2970CB2970DB2570CB2570DB2D70CB2D70DB2370CB2B306D99B06D95B06D9DB8611F1492C293DA8A49CC492D2934ACA492E292745593C496571A438EFEAA428ED27B92C3EE89C574384079DD36488F020131E148407893021E99C7A95473A6EC2834C78C839AF86080F21A12F111E62C24382F010CD69EBBBCDD4C9E5447848101E62C2C348E847848791D09F080F33E161D1577BD8D8F37C588CF51E66C223CE6932447844101E61C223E20E97475C6B9316AE4D3EE2AC4DD66C4C3ADA6ED623CC7A14590389F528B20611EB51663D2A42F3A8FB9E235E397C54C4D7A34C780C098389F098203CC684C7446FE131D7C8558F2EF348C74D788C098F3B27D710E171E7E41A223CCE84C745181E77FA23076B92CE1A681EE9B863E971263CE19C5C43842704E109263C21C2F004ED65DB9774EE40C8231D77189E60C293480812E149417892094F8A398A278DF3B64F0AC2934C78CA391B87084F3967E310E129263C2562E929E3BD4C4F89587A8A094F3B67E310E16941789A094F8B587A5AACAFA6D2E1691186A799F00C12224478060951223CC3846744E97E86EE2EBB0D73EB2D447846B4E5CF30E15924C488F02C12E244789609CF8A303C2BFA85A9BD0DCF8A303CCB84E7909020C27348184A84E798F09CE88F3CE7DADDA2F723E7918E9BF01C139E47C230223C8F84E144789E09CF0BC2F346C2F322969E67C20B4818418417903092082F30E10591975E70ADF6A4EF547C4184E10526BCE89C8D43841705E14526BC28D2E145BAB313E71D6B53F38E2F8ADCFA22134E212149845348A820C229269C1225EE947B170BA7F429114BA798701A09A388701A09A389709A09A7452C9D769507DFE2DD44382D62E93413CE20610C11CE08C219269C112DC5997ABB58CE504B7143D2D176B3CE30EB25E7FC1262BDE49C5F42AC9798F59208CD4BC6399D97447CBDC484979DF34B88F0B220BCCC8497459ABF6C5CE17B59105E66C22B48184F845790308108AF30E1151186578C6DF72B2257BDC2845791309108AF0AC2AB4C785584E155518FA7EAC057453ABCCA84D79C135288F09A73420A115E63C26B220CAF11A1B99867794DC4D26B4C78DD39218508AF0BC2EB4C785D84E175719F412A1D5E1784D799F00612A612E10D244C23C21B4C7843D4E36FD0BAC572B19BE80D417883096791309D08679130830867997056C4D259636E3D2B086799F026126612E14D417893096F8A587AD3B5E74AC7551EE9B8096F32E12D24CC22C25B48984D84B798F09608C35BEE15AA64EA4EA8B704E12D26BC8D843944781B097389F03613DE1684B7454B91BA0BE06D41789BC7C67F25C6C66BBED118598F576A0D6398770CB2770DB2F70CB2F70DB20F0CB20F0DB28F0CB28F0DB24F0CB24F0DB2CF0CB27306D97983EC7383EC0BC3D8AE16537A1EA5742DA6F47C4AE95A4EE95A51E26A9D1277CF099D970A8E534AD78A94AEE5BCF48E73520D11DE714EAA21C23B4C7847E4A5778CB5C63B82
карма: 1
        ]  
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#9: 2017-08-27 18:30:47 ЛС | профиль | цитата
Попробуйте ODBC заменит на OLE. У меня с ODBC выдает ошибку, а с OLE все прекрасно работает.

Редактировалось 1 раз(а), последний 2017-08-27 18:33:10
карма: 22

0
Ответов: 12
Рейтинг: 0
#10: 2017-08-29 21:20:48 ЛС | профиль | цитата
nesco писал(а):
Попробуйте ODBC заменит на OLE. У меня с ODBC выдает ошибку, а с OLE все прекрасно работает.


я когда только начинал этот проект, начинал на OLE, и сразу столкнулся что OLE не отрабатывает большие файлы (не помню толи до 1000 строк, толи до 4000 строк)
200 строк которые я дал как образец, OLE отрабатывает прекрасно. но с файлом 9400 строк, у меня OLE даже в MT_MTArray не заливает, не говоря уже о прогрессе.

проверьте пожалуйста, может я не правильно OLE подключаю.
у меня почти тот же вылет, только озу больше жрет 580Mb. (ODBC <=150Mb)
код на OLE (прайс сам скачается. ~2,47 Mb)

Add(MainForm,2953706,56,112)
{
Width=423
Height=230
link(onCreate,4865314:doDownload,[])
}
Add(LineBreakEx,12280247,350,287)
{
Caption="Имя"
Type=2
}
Add(ProgressBarRush,16035786,567,91)
{
Left=15
Top=111
Width=375
Height=25
}
Add(LineBreakEx,12817326,357,91)
{
Caption="прогрес"
Type=1
link(OnEvent,12325891:doWork1,[])
}
Add(Hub,14895446,294,308)
{
OutCount=3
link(onEvent1,2271599:In,[(320,314)(320,293)(254,293)(254,272)])
link(onEvent2,5926953:doStrCat,[])
link(onEvent3,8389943:doMessage,[(331,328)(331,398)])
}
Add(Message,8389943,357,392)
{
Message="Ок"
}
Add(DoData,10878444,1246,539)
{
}
Add(LineBreakEx,8130615,133,175)
{
Caption="Имя"
Type=3
link(_Data,4865314:Var,[])
}
Add(Memory,4937846,525,308)
{
}
Add(Dir,154286,343,238)
{
}
Add(FilePart,5229429,455,315)
{
link(onPath,4937846:doValue,[(504,321)(504,314)])
link(onName,1359034:doString,[])
}
Add(StrCat,5926953,343,315)
{
link(onStrCat,16714654:doEvent1,[])
link(Str1,154286:CurrentDir,[])
link(Str2,12280247:getVar,[])
}
Add(Hub,16714654,406,315)
{
OutCount=3
link(onEvent1,5229429:doPart,[])
link(onEvent2,6939220:doString,[(449,328)(449,363)])
link(onEvent3,11092737:doOpen,[(435,335)(435,426)])
}
Add(FormatStr,1359034,672,322)
{
Mask="SELECT * FROM `%1.xls`.`sheet1$`"
Point(FString)
}
Add(FormatStr,6939220,518,357)
{
Mask="DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};\r\nFIL=Excel 12.0;\r\nDBQ=%1;\r\nDefaultDir=%2;\r\nFirstRowWhasNames=1;\r\nReadOnly=false;\r\nScanRows=0;"
Point(FString)
link(Str2,4937846:Value,[])
}
Add(MultiElement,12325891,434,91)
{
link(onEvent1,16035786:doPosition,[])
link(onEvent2,7933583:doWork2,[])
}
BEGIN_SDK
Add(EditMulti,9150291,21,21)
{
EventCount=2
WorkCount=1
link(doWork1,6017396:Cable,[(49,27)(49,99)])
}
Add(CableEvent,6017396,77,93)
{
Count=3
link(Wire1,14032774:doOperation,[])
link(Wire2,3760010:doOperation,[(119,106)(119,43)])
link(Wire3,9150291:onEvent2,[(206,113)(206,34)])
}
Add(Memory,14148284,182,37)
{
}
Add(Math,3760010,133,37)
{
OpType=3
Op2=100
ResultType=0
link(onResult,14148284:doValue,[])
}
Add(Math,14032774,175,93)
{
OpType=3
ResultType=0
link(onResult,9150291:onEvent1,[(264,99)(264,27)])
link(Op2,14148284:Value,[])
}
END_SDK
Add(MT_MTArrayRW,4865845,847,406)
{
link(Array,13076694:Array,[])
}
Add(MT_MTArray,13076694,847,322)
{
}
Add(LineBreak,6306835,763,322)
{
Caption="clear_mt"
link(Out,13076694:doClear,[])
Primary=[2271599,-497,-56]
}
Add(Message,8158759,567,154)
{
Caption="Ошибка XLS"
}
Add(LineBreakEx,13650324,511,154)
{
Caption="error"
Type=1
link(OnEvent,8158759:doMessage,[])
}
Add(OLEdb_Session,10707432,581,420)
{
link(onCreate,3056747:doQuery,[])
link(dbHandle,11092737:dbHandle,[(587,408)(563,408)(563,471)(524,471)])
}
Add(OLEdb_Query,3056747,665,420)
{
link(onQuery,4865845:doAdd,[])
link(onError,4116822:doWork,[])
link(dbSession,10707432:dbSession,[(671,408)(629,408)(629,468)(587,468)])
link(Text,1359034:FString,[])
}
Add(OLEdb,11092737,518,420)
{
link(onConnect,10707432:doCreate,[])
link(Driver,6939220:FString,[])
}
Add(LineBreakEx,4116822,735,434)
{
Caption="error"
}
Add(MultiElementEx,4865314,133,126)
{
@Hint=#16:качаем прайс xls|
link(onEvent2,13149922:doEvent1,[])
link(onFalse,4530132:doWork,[])
AddHint(51,-41,100,13,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,13021890,21,21)
{
WorkCount=#10:doDownload|
EventCount=#8:onEvent2|7:onFalse|
VarCount=#3:Var|
Width=622
Height=130
link(doDownload,26344:doDownload,[(49,27)(49,258)])
link(Var,15142083:getVar,[])
}
Add(HTTP_Get,26344,77,252)
{
link(onDownload,499728:doConvert,[])
link(URL,3085624:Value,[])
}
Add(Memory,3085624,77,189)
{
Default=String(http://complektuha.com.ua/index.php?show_price=yes)
}
Add(Convertor,499728,126,259)
{
Mode=11
link(onResult,4003481:doSearch,[])
}
Add(BlockFind,4003481,182,259)
{
StartBlock="href="price/"
EndBlock=".xls"
link(onSearch,2978584:doEvent1,[])
}
Add(Replace,16349420,294,266)
{
SubStr="href="price/"
link(onReplace,15468121:doValue,[])
}
Add(Replace,5590204,294,210)
{
SubStr="href=""
DestStr="http://complektuha.com.ua/"
link(onReplace,1076768:In,[])
}
Add(Memory,15468121,350,266)
{
link(onData,1706368:doStrCat,[])
}
Add(Hub,2978584,238,259)
{
link(onEvent1,5590204:doReplace,[(266,265)(266,216)])
link(onEvent2,16349420:doReplace,[])
}
Add(LineBreakEx,15142083,21,126)
{
Caption="Имя"
Type=2
}
Add(LineBreakEx,3961800,350,308)
{
Caption="Имя"
Type=3
link(_Data,15468121:Value,[])
}
Add(MultiElementEx,9091633,602,224)
{
link(onStatus,12473625:Wire1,[])
link(Out,12473625:Wire2,[])
link(onSwitch,12473625:Wire3,[])
link(onEvent2,883984:doWork2,[])
link(Data,1649767:Var,[])
}
BEGIN_SDK
Add(EditMultiEx,7609349,21,21)
{
WorkCount=#8:doEvent1|7:doWork1|7:doValue|
EventCount=#8:onStatus|3:Out|8:onSwitch|8:onEvent2|
DataCount=#4:Data|8:FileName|
Width=461
Height=158
VOffset=21
HOffset=126
link(doEvent1,10859717:In,[(49,48)(49,34)])
link(doWork1,8528277:In,[])
}
Add(HTTPClient,6348577,266,364)
{
Point(RawHeaders)
link(URL,9994908:Value,[])
link(FileName,7609349:Data,[(279,199)(153,199)])
link(onHeadersAvail,3555937:doCompare,[])
link(onFinish,9854373:doEvent,[])
link(onDownloadProgress,1590045:doWork,[])
}
Add(Thread,4549505,98,364)
{
Delay=200
FastStop=0
link(onExec,12070733:doEvent1,[])
}
Add(LineBreakEx,10269870,735,392)
{
Caption="len"
Type=2
}
Add(DoData,4089202,735,420)
{
link(onEventData,3570096:In,[])
link(Data,10269870:getVar,[])
}
Add(LineBreakEx,16033729,273,434)
{
Caption="len"
Type=3
link(_Data,6348577:ContentLength,[])
}
Add(LineBreak,9925975,322,49)
{
Caption="max"
link(Out,7609349:Out,[])
Primary=[3570096,469,371]
}
Add(If_else,3555937,434,364)
{
Type=1
Op2=Integer(4000)
link(onTrue,13800225:doMessage,[(530,370)(530,321)])
link(onFalse,12954654:doEvent1,[(474,377)(474,384)])
link(Op1,2602030:getVar,[])
}
Add(LineBreakEx,2602030,434,329)
{
Caption="len"
Type=2
}
Add(Hub,7297105,553,420)
{
link(onEvent1,4089202:doData,[])
link(onEvent2,16128615:doData,[])
}
Add(Message,13800225,595,315)
{
Message="Прайс лист не найден, либо поврежден."
Caption="Ошибка"
}
Add(Memory,9994908,266,231)
{
}
Add(IndexToChanel,9854373,371,371)
{
Point(Index)
link(onEvent2,7609349:onEvent2,[(423,384)(423,69)])
link(Index,5735670:State,[])
}
Add(Switch,5735670,371,315)
{
DataOn=Integer(1)
DataOff=Integer(0)
Default=0
Point(doOn)
Point(State)
}
Add(Hub,13964544,189,287)
{
link(onEvent1,5735670:doReset,[(339,293)(339,328)])
link(onEvent2,6348577:doExecute,[(227,300)(227,391)])
}
Add(Hub,12954654,483,378)
{
OutCount=3
link(onEvent1,3253426:doData,[])
link(onEvent2,7297105:doEvent1,[(525,391)(525,426)])
link(onEvent3,4549505:doStart,[(509,398)(509,428)(67,428)(67,370)])
}
Add(Hub,12070733,168,364)
{
link(onEvent1,5735670:doOn,[(207,370)(207,335)])
link(onEvent2,6348577:doLoadFile,[])
}
Add(LineBreakEx,1590045,308,378)
{
Caption="progres"
}
Add(LineBreakEx,7633167,406,35)
{
Caption="progres"
Type=1
link(OnEvent,7609349:onStatus,[(471,41)(471,48)])
}
Add(LineBreakEx,9057597,658,427)
{
Caption="progres"
}
Add(DoData,16128615,602,427)
{
Data=Integer(0)
link(onEventData,9057597:doWork,[])
}
Add(LineBreak,11638327,357,56)
{
Caption="visible"
link(Out,7609349:onSwitch,[])
Primary=[2876190,315,322]
}
Add(DoData,3253426,602,378)
{
Data=String(загрузка прайса)
link(onEventData,2876190:In,[])
}
Add(LineBreak,2851096,224,231)
{
Caption="url"
link(Out,9994908:doValue,[])
Primary=[10859717,-147,-203]
}
Add(LineBreak,14518292,105,287)
{
Caption="download"
link(Out,13964544:doEvent1,[])
Primary=[8528277,-42,-238]
}
END_SDK
Add(CableWork,12473625,651,224)
{
Count=3
link(Cable,213957:doWork,[])
}
Add(LineBreakEx,213957,693,224)
{
Caption="прогрес"
}
Add(LineBreakEx,12547630,539,28)
{
Caption="прогрес"
Type=1
link(OnEvent,13021890:onFalse,[])
}
Add(StrCat,1706368,413,266)
{
link(onStrCat,590350:doFileExists,[])
link(Str1,563617:CurrentDir,[])
link(Str2,10354653:getVar,[])
}
Add(LineBreakEx,10354653,420,238)
{
Caption="Имя"
Type=2
}
Add(Dir,563617,413,196)
{
}
Add(FileTools,590350,476,245)
{
link(onEnd,8551796:doEvent,[])
}
Add(IndexToChanel,8551796,525,245)
{
link(onEvent1,9091633:doWork1,[(579,251)(579,237)])
link(onEvent2,883984:doWork3,[(674,258)])
}
Add(LineBreak,9842146,532,224)
{
Caption="url"
link(Out,9091633:doEvent1,[])
Primary=[1076768,-189,-14]
}
Add(HubEx,883984,670,245)
{
Angle=3
link(onEvent,13021890:onEvent2,[(674,27)])
}
Add(LineBreak,493916,413,308)
{
Caption="путь"
Type=1
link(Data,1706368:Result,[])
Primary=[1649767,189,-133]
}
Add(InfoTip,16483166,112,70)
{
Info=#57:прайс: http://complektuha.com.ua/index.php?show_price=yes|
Font=[MS Sans Serif,12,0,0,1]
Width=414
Height=39
}
END_SDK
Add(LineBreakEx,4530132,182,133)
{
Caption="прогрес"
}
Add(Label,16715060,504,98)
{
Left=65
Top=85
}
Add(DoData,9355480,385,126)
{
Data=String(чтение прайса)
link(onEventData,7933583:doWork3,[(480,132)])
}
Add(Hub,13149922,273,126)
{
link(onEvent1,9355480:doData,[])
link(onEvent2,14895446:doEvent1,[(301,139)(301,226)(225,226)(225,314)])
}
Add(HubEx,7933583,476,98)
{
link(onEvent,16715060:doText,[])
}





RAWY_EX писал(а):
могу предложить так
заменить весь код на тот что выше

ради эксперимента я попробую, но перезалейте код "new" он не полный.
удалите из схемы MemoryStream (файл xls) думаю это из-за него.

Редактировалось 12 раз(а), последний 2017-08-29 22:36:04
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#11: 2017-08-29 23:03:16 ЛС | профиль | цитата
Кто-то может объяснить ТС, что для работы с xls совсем ничего не нужно "заливать" в MT_MTArray ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 497
Рейтинг: 16
#12: 2017-08-29 23:53:04 ЛС | профиль | цитата

Add(MainForm,3320495,105,147)
{
Width=419
Height=261
}
Add(LineBreakEx,12280247,294,287)
{
Caption="Имя "
Type=2
}
Add(ProgressBarRush,16035786,889,154)
{
Left=15
Top=111
Width=375
Height=25
DrawProgress=1
Caption=""
Point(doMax)
}
Add(LineBreakEx,12817326,763,154)
{
Caption="прогрес"
Type=1
link(OnEvent,6017396:Cable,[])
}
Add(LineBreakEx,12526161,931,392)
{
Caption="прогрес"
}
Add(Hub,14895446,238,308)
{
OutCount=4
link(onEvent1,2271599:In,[(264,314)(264,293)(198,293)(198,272)])
link(onEvent2,5926953:doStrCat,[])
link(onEvent3,8389943:doMessage,[(275,328)(275,398)])
}
Add(Message,8389943,301,392)
{
Message="Ок"
}
Add(CableWork,2369502,896,392)
{
link(Cable,12526161:doWork,[])
}
Add(Button,8513360,112,308)
{
Left=155
Top=45
Width=100
Height=30
Caption="старт"
link(onClick,15687256:doStart,[])
}
Add(Memory,6423116,518,161)
{
Default=String(compl_24.08.17.xls)
}
Add(LineBreakEx,8130615,518,203)
{
Caption="Имя "
Type=3
link(_Data,6423116:Value,[])
}
Add(DS_ODBC,9220204,462,406)
{
Name="odbc_driver"
Point(onError)
link(onCreate,4912858:doEvent1,[(534,412)(534,405)])
link(Driver,6939220:FString,[])
link(onError,2774394:doWork,[])
}
Add(Memory,4937846,469,308)
{
}
Add(Dir,154286,287,238)
{
}
Add(FilePart,5229429,399,315)
{
link(onPath,4937846:doValue,[(448,321)(448,314)])
link(onName,7579850:doEvent1,[])
}
Add(StrCat,5926953,287,315)
{
link(onStrCat,16714654:doEvent1,[])
link(Str1,154286:CurrentDir,[])
link(Str2,12280247:getVar,[])
}
Add(Hub,16714654,350,315)
{
OutCount=3
link(onEvent1,5229429:doPart,[])
link(onEvent2,6939220:doString,[(393,328)(393,363)])
link(onEvent3,9220204:doOpen,[(378,335)(378,412)])
}
Add(FormatStr,1359034,581,329)
{
Mask="SELECT * FROM `%1.xls`.`sheet1$`"
Point(FString)
}
Add(FormatStr,6939220,462,357)
{
Mask="DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};\r\nFIL=Excel 12.0;\r\nDBQ=%1;\r\nDefaultDir=%2;\r\nFirstRowWhasNames=1;\r\nReadOnly=false;\r\nScanRows=0;"
Point(FString)
link(Str2,4937846:Value,[])
}
Add(LineBreakEx,2774394,511,413)
{
Caption="error"
}
Add(LineBreakEx,2469851,651,462)
{
Caption="error"
}
Add(FormatStr,9473098,630,315)
{
Mask="SELECT COUNT(*) FROM `%1.xls`.`sheet1$`"
Point(FString)
}
Add(LineBreakEx,122388,679,413)
{
Caption="error"
}
Add(Hub,7579850,518,322)
{
link(onEvent1,9473098:doString,[(558,328)(558,321)])
link(onEvent2,1359034:doString,[])
}
Add(DSC_Query,12487484,609,448)
{
DSManager="odbc_driver"
link(onQuery,4865845:doAdd,[(763,454)(763,433)])
link(onError,2469851:doWork,[])
link(SQL,1359034:FString,[(615,379)(587,379)])
}
Add(DSC_Query,10256676,630,399)
{
DSManager="odbc_driver"
link(onQuery,2369502:Wire2,[])
link(onError,122388:doWork,[])
link(SQL,9473098:FString,[])
}
Add(Hub,4912858,567,399)
{
link(onEvent1,10256676:doQuery,[])
link(onEvent2,12487484:doQuery,[(598,412)(598,454)])
}
Add(MT_MTArrayRW,4865845,798,413)
{
link(onRead,2369502:Wire1,[(863,419)(863,398)])
link(Array,13076694:Array,[])
}
Add(MT_MTArray,13076694,798,329)
{
}
Add(LineBreak,5748659,714,329)
{
Caption="clear_mt"
link(Out,13076694:doClear,[])
Primary=[2271599,-504,-63]
}
Add(Message,8158759,882,203)
{
Caption="Ошибка XLS"
}
Add(LineBreakEx,13650324,826,203)
{
Caption="error"
Type=1
link(OnEvent,8158759:doMessage,[])
}
Add(LineBreakEx,9027771,203,126)
{
Caption="Имя "
Type=2
}
Add(CableEvent,6017396,847,154)
{
link(Wire1,16035786:doPosition,[])
link(Wire2,16035786:doMax,[])
}
Add(Thread,15687256,175,308)
{
Delay=1
FastStop=0
link(onExec,14895446:doEvent1,[])
}

карма: 1
        ]  
0
12
Сообщение
...
Прикрепленные файлы
(файлы не залиты)