Script for Focus/Image Stacking with Canon EOS Camera

Anything Really. Just keep it clean!

Moderators: Dorian (MJT support), JRL

kpassaur
Automation Wizard
Posts: 690
Joined: Wed Jul 07, 2004 1:55 pm

Script for Focus/Image Stacking with Canon EOS Camera

Post by kpassaur » Fri Dec 20, 2013 5:28 pm

I haven't had time to help others lately so I though I would contribute this script.

If you know what image/focus stacking is you know that it is a pain to do manually and commercial programs that do it are expensive. I saw a commercial program that offered it as a feature but you had to keep manually editing a AutoHotKey script. So I wrote this one.

This utility utilizes the Remote Control software that comes with Canon cameras. What you do is simple, you set the location of the buttons, enter how much the focus should change, a wait time for the photo to be taken and how many to take. Then you focus to the closest point and click on run.

It works fine as a standalone script but when compiled the main window does not disappear. So, it goes - it still works. If you are a beginner you may find the code somewhat useful to look over. If you have a Canon camera and are into photography you will enjoy it.

I have a compiled version of it with a help file here (you need to remove the spaces to get it)

Ht tp://w ww.edocfile. info/Setup_EOS_Auto_Shoot.exe

and the code is below. Enjoy it, change it, learn from it or whatever.

Code: Select all

// COMPILE_OPTS|C:\Program Files\eDocfile\EOS Auto Shoot\Autoshoot.exe|\\X-SERIES\keith\Icons\camera.ico|CONSOLE=0|INCLUDES=1| /NOSYSTRAY
RegistryReadKey>HKEY_LOCAL_MACHINE,SOFTWARE\edocfile\EOS Auto Shoot,AppFolder,ProgramFolder
Let>APP_TITLE=EOS Auto Shoot

Let>comma=,

Dialog>Dialog1
object Dialog1: TForm
  Left = 1466
  Top = 109
  HelpContext = 5000
  BorderIcons = [biSystemMenu]
  Caption = 'EOS Auto Shoot'
  ClientHeight = 376
  ClientWidth = 496
  Color = clWhite
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = True
  Position = poScreenCenter
  ShowHint = True
  OnTaskBar = False
  PixelsPerInch = 96
  TextHeight = 13
  object Label1: TLabel
    Left = 127
    Top = 190
    Width = 134
    Height = 13
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Enter Shoot Button Location'
  end
  object Label2: TLabel
    Left = 127
    Top = 218
    Width = 124
    Height = 13
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Enter Fine Focus Location'
  end
  object Label3: TLabel
    Left = 127
    Top = 244
    Width = 138
    Height = 13
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Enter Double Focus Location'
  end
  object Label4: TLabel
    Left = 20
    Top = 121
    Width = 453
    Height = 13
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 
      '1 - Open EOS Remote and Focus on the closest part of the subject' +
      ' with both windows displayed'
  end
  object Label5: TLabel
    Left = 20
    Top = 141
    Width = 399
    Height = 13
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 
      '2 - Set the position of the buttons by moving the cusror and wai' +
      'ting for locked display'
  end
  object Label6: TLabel
    Left = 20
    Top = 160
    Width = 386
    Height = 13
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 
      '3 - Enter Small or Large steps and the amount of them and the ti' +
      'me between shots'
  end
  object Label7: TLabel
    Left = 204
    Top = 313
    Width = 48
    Height = 13
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Wait Time'
  end
  object Label8: TLabel
    Left = 299
    Top = 313
    Width = 79
    Height = 13
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Number of Steps'
  end
  object Label9: TLabel
    Left = 127
    Top = 269
    Width = 136
    Height = 13
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Enter Tripple Focus Location'
  end
  object MSImage1: tMSImage
    Left = 16
    Top = 8
    Width = 449
    Height = 105
    Picture.Data = {
      0954506E67496D61676589504E470D0A1A0A0000000D49484452000001EF0000
      006808020000005729EF4E000000097048597300000EC400000EC401952B0E1B
      0000000774494D4507DD0C140E1F2E63EDA6C30000000774455874417574686F
      7200A9AECC480000000C744558744465736372697074696F6E00130921230000
      000A74455874436F7079726967687400AC0FCC3A0000000E7445587443726561
      74696F6E2074696D650035F70F090000000974455874536F667477617265005D
      70FF3A0000000B74455874446973636C61696D657200B7C0B48F000000087445
      58745761726E696E6700C01BE6870000000774455874536F7572636500F5FF83
      EB0000000874455874436F6D6D656E7400F6CC96BF0000000674455874546974
      6C6500A8EED227000042774944415478DAED9D077C5455DAFF6FBFD36B6632E9
      8D10200901A448112902A258B1BDBAAFEBBBEABAEF16EBEAFED7AE6B59CBAAFB
      EE5AD6B276ACABD8D62E1D09106A126A48EF9349A6CFDC3B73EFFF39E7262160
      2C6030C09E5FC8643273CBB9B91FBEE737CF39E7796855552922222222A2635C
      34A139111111D171204273222222A2E3414739CDA16DF4F76CA1AA344DFFB0A3
      111111111DB73A4A69FED5975F6EDBBEFD8C3316793C69D16834252565E0BB8A
      A2C8B2ECEFE9696F6FFFECF3CFCF3EFBEC828282E16E32111111D170EA28A5F9
      534F3DF5D69B6FDE74D34DB366CF0E8542312C8EE3E0AD4422E172BB4541686C
      A87FE79D77D7AE5973F575D7CE993D67B89B4C444444349C3A1A69DEDCDCFCF4
      3FFEF1C1FBEFCF3DE594871E7E185E79F1F9E7FFFEF8E334CBCA923479D2A447
      1E7DD468346ED9B2F977BFFD0DCF09A72E5C38E18413C0BF8F1B376EB8DB4E44
      4444343C3ABA68DED1D1F1C5E79FD7ECDDBB6BD7AE86FAFA9CDC9C9B6FBBCDA8
      D7373537DD79E75D9F7FFE456666FA837F7EE0EC73CED51B0CAB56ADBCFAB7BF
      B3D9ED1969690CD8769A9A79D2CCB3CE3EDBE5720DF77510111111FDD43A8A68
      DED5D5F5EA2B2F575556D20CD3D6DA1A89449D4EE7C42993F4A268315BA444A2
      A3BD2325C5919991994C262D56EB9E3D7B5F7BED3586A153DD6E4110DBDADB52
      9CCEE9334EBAF4E73F174571B8AF86888888E827D5D142F37038FCE28B2F6EDB
      B285E7B95028545B5BC7308CC96412F402AD52F09C17445110A0C1896482A668
      8E6769856A6C6A0E04FCF178DC6EB75B6DB614879D66B9A9D3A65D78E1853A9D
      6EB8AF89888888E8A7D3514173F0DAEFBEF3CEC7FFFE37786A9AA14D46632C16
      976599A254455595A4A228B0097A4CC09304B45851934A22212B2A7A49A1148E
      E5C1D1BB9C0E8665E1955FFFF63713264C18EECB22222222FAE97454D0BCA9A9
      E9C1871E8886A3E0C175A290979FCFB22C401C7FA107F0E309047360B70C3F64
      F82DA9C8E82D7803409F90E252524DEA441D4DD3B178FC8409275CF5AB5F117B
      4E4444F49FA39F8EE6702230DA2CC3F4BFD237F530BAF4DDA59B2A2A588E85A6
      E874FA82BC5C78379104038E8C3876E4E0C493AA9A047403D915ED4702411D09
      131DD88EAC3D4DC3339D28DE7AC79D1919E9C3FDE725222222FA89F4937AF355
      2B577676760643C1782CCED04C737353A7D7DBD3DD1D8FC74D26134D23E2EB0C
      FABC9C3C06433909244F6A34C73E3C09AE1CF9F37E8063AE2735C68337177901
      68AEA05E833AEDB4D3274F99120806635124BC5C141DD36E778C19335AAFD70F
      F75F9E8888886828F543690E2C6558F67B378B48923F1605030E40ED894663B2
      CC327444927DD108E0F4F3E79FFFEA93CF544A0557EDB03B0C063D05F4A5199E
      E32C160BCB3260C4F540F3DC02ED8C40728C732581422CC88B2751EC3CD18B76
      458BB2A0500C8ABD284951403457E19A148AE3389AA23756549C30F184F3CFBF
      80E3584AA56077BBDD268A82CFD7ED72B9C9FC742222A2E3463F88E6EFBDF75E
      5B5BDBC5975D262513DDE130EC00DEB92B1C8E2500D62C20B53B1A019A02AFC1
      179B449DC871C04DD8C6ACD3B134036F1944119EDF7BE38DD595551CC703D08D
      4623405C459958E0688C4E146916FA00C560308C28180120C6239F5AB8050555
      92BD284FCAC9848A03E6687D3F7E078F88A25F591E084E69170487AAAFADABD8
      BCF995975FBAE467FF3DF072E0D380B7AB0B3E19C8B23C67CE5C6640F0878888
      88E818D5F7D01C10B974E9D237972C299B317DE42973819A1651671404855239
      86B11B8CF008903508A2050F3902C105B0C120B0DC071E4A8A46FFE717BF686D
      69894B1200D46AB5C2A34673D816F642216F55311A8C85230B81E61ABEB5A88A
      82432998EEE845B0E2006B590B9ECB4073C479F886AE05E7DFC23D04C3D6D4D6
      6EDEB265F139E7FCFDF1C73D6969075D1AF408EBCBD7B7B6B69C79E6595ACE00
      222222A26357DF4573E0E39BAFBFFEDED2F7743AE1A69B6E1A5352FAC38FDBDD
      EDEBEEF2F903815028084F3BBCDEAFD7AC6968686058C666B581298E46A3BD0C
      A571B405F88DE3DA469369E4A82286A265347D454DC8329E9F083F1378820B8A
      B4A87DAE5CC16CD79C3A7C43F780BC39A639CB710D0D8D5BB66D05AF7EFAE98B
      7EF5AB5F8D1B3B363D33736023B76CD97CDD35D7FCF297575D74F1C524112311
      11D131ADEFA2F96B4B963CFDCCD36693A978CC987BEEB997E5F981EF8643A1B6
      B616AFD7D7DDD3DDDDDDE3EBEAF2F9BA7CDDDDA15038E8F703AC01C0C0DC6834
      160A0602C1A0DDEEC8C9CE8EC5623E9F0FACBDD3EE409116747A3C6A49219AC2
      2E46A371747131D05D96A5849CC091F3A42425904D47244FE0E9E78AA40D83CA
      28C0A260A2835BA77097006D53F0A704F824B1775F4D5B7B7B381C81AB281B3B
      B6B4B424372FDFE970180C86969696B7DE7E7BE7AE5D534F3CF186DFDF70CA29
      F386FB5E101111111DBEBE95E65F7CF1C55D77DE09EFA6A6BA6193134F9C2AA0
      C1435F6B4B33605B8E4BB1780C301E0C85A3B1183017F84BE364E446B3B968E4
      C89CAC6C4E10BA3A3B9B5B5AFC7E7F08801A8D46226181E7539CCE8CAC2CB3C9
      0CEC0694C3AB407C146DA15174C562B58E1E3D5AA130E7D11828B2DAFB89AD6A
      BF50689EA216345751143D1E8F85C35178049A6BB11B2916F37ABD406D292E41
      5F120CC3770876E05856144596652391087408999919F979F95999997F7EF0C1
      CC039D3B111111D131A4C169BE63C78E1BAEBFBEAEAE2E3323C360D0B7B4B602
      0A6940A414CFCEC9D1EB74B5FBF6711C6F3499396030CBA25039A231A333E8CB
      CACA468C18D1D9D1B165CBD6CD5B36B7B7B5C6E584B69453AB2C0130E5400C23
      C9B2A8170B72F305410456433B048ECBCCCE02176F32E87951A02906350F8762
      E8BED21540776DA853C14F30EB13E170D81F08D4D5D647D064449A016B2FC9DB
      ABAA60778E61059DE074A618743AB4CE08856C92F02E34C166B3994C2620BB14
      8F9FB3F8DCEBAEBB7EB86F07111111D1616A709ABFF0C20B8F3DFA2860D1ED72
      0B22DFEDEB06708643E105F3E7DD72EB6D609F5F7CFEF9E7FEF95C2C86E689F3
      BD111834189991915E3CA6A4B9A971DD86F53B76EC04DFCD72AC161AEF9F3AA2
      62513853B9C7EDCEC9C981F7553CE069B558539C76A7CBC5B24C2C1603678EB0
      7D6013556CBFD1E4740A511BFA109D28E2987AA2CBD7D5D0D0087D006CC1306C
      5B6B6B63733374347DBBAB66930961DDA0872766B38565D89814078B1F97A4B4
      34CFC37F79242B2B6BB8EF08111111D1E168709ADFFCC79B97BEB7D4A8D73B9C
      4E8E67BD5E5F3C1ECFCDC9BEED965B8D6613B8DBA2A2A2F7DF7FEFDD779786C3
      A1503084A6A2ABAA4EA7CBCDCDEDE9F1AF5B5FDED0D8909013BDA6BAAF1A1C87
      27AE68CFB5F36667663A5352D0C494A402504E4DF38882A0249540280874A771
      3F705035395533E878B013197786868F06006851A7E33976D7EEBDB1680450CE
      D234740FF50DF5C150B8BF23D12236F044AFD759CC16B7CB65B7DB059E97508C
      3F71E9A5975E7EC515C37D47888888880E4783D0BCA9A9E9BAEBAEDD515D6D34
      18ED0E878A2D6D5E5E5E3299CCCFCF2F2A2C04F4D6D5D6E5E5E61697963CFFCF
      E73FFBEC53A3C90C3E39D5E59293898A0D1B1A9A9A818E16B379F6EC59B367CD
      B2D9ED959555EF2E5D5A535303469EC5AB9080AA0683213323036C38A2B9A2B8
      5C6E87C301BE3A1C0C029A01C160CFB595FA149A71C8F43D415D0486320EB4E0
      84013CCF415FC2F2426B4B8BD7DB298A02B447E0F84EAFB7A5B58DFDC6BA270D
      EBD0189D2838ED8EACEC6C68707149C93DF7DEEB743A87FBA6101111111DB206
      A1F9B265CB6EBFEDD670282C0882D5664B26C0898F341A4D1B2B2AC68C1E5D5A
      52128D45BF5E571E8944169EB670D3C68A3D7BF688A268321BF53AFDA6CD9BEB
      EAEA01CD3939D9575E7EC5A245A7333443B1B4516F686E6ABAFFFE3F7FB96C59
      5255198C63C0BD2B25454EC88220A6A6A696958D85933636348C1A3DBAB07044
      7D7D3D0A85D7D501E201B5F158CC6CB6C08EC160102D25753ABB7C3E20380237
      45F5F404C0C46767E7F4F87BB66ED91A9725403FD87CB0FCADED6DB2240F3A01
      11F504D8AAA73853323333E083C52DB7DE32766CD970DF14222222A243D62034
      7FF38D37EEBFEF3E0EEC2EC3D8C02CD37434160B20F9019A921407045A2C1697
      DB6DB558D09C711C4FB13AAC3D5D3DABD7AC01D4DAEDB6DFFCE6D7A79D7A2ACD
      B01CCB093A31214B668BD9E7F5DD7EFB1D9F7CF6195018E00A961FBCFF888202
      C0775656663412696A6C0C86C2D75C73CDF2E55F55546CCE2F28D8B973E7BC53
      E6C2E9366CD8306BD62C685E634363774F4F764EB6BFC70F34F6783CB80ED1EA
      EAAA4AF8E8909A96168BC676EFD95D5F57DB0AAE9C61FD41248DE683869534FB
      6FD0E9274F9A78FB5D774E9F3E63B86F0A111111D1216B109ABFF2F2CB0F3DF4
      A028EA58867638531C365B5D4383B6BC7E5FEDBE582CA61775191919668B454E
      24186D889365C12537D637D4D6D7C311C696945C7BDDB546A331332BABA4A444
      AF3774B677ACDF586E315BCACBCB6FBBFD0E0A474E9C29CE91230A7373B38B8A
      46415FB1A1BC1CCC787E7EC19D77DEF1EA9225CB962DF77852CF3AF34C455547
      1616565557C3C78248142581819EA6B6B65627EAA04966B3D99DEAFEEACBAF5E
      7BED35BD5E3FA270C48409137C5DBED6B6963D7BF7D6ECDD274B717F3004EDEF
      8BCF50DA90ACF65CFB151EE3F1785E6EEED3CF3C33670E29184D444474EC6910
      9ABFFAEAAB8FFCE52F3C9A73C8586DB682827C96E576EDDC09C01504018CB0D1
      68100411539533180C56AB2D25C5595F57FFD2CB2FA3B9E7AA3A7BE6CC050B16
      A4A6792EBEE467FD218EBABABAD75E5F62319BFEF4A77B7DBE6E41E047158D72
      BBDDC05938570F2A212401B845513CF38C330A4714AC58B9B2B9B1F1B4D34F0F
      F8FDA86BE1E06C9C244B3D3D3DD0025110376DAAC848CF80B35BACE6CD5BB7AE
      58B65C40731F59A3D104ADD289A241AFDFB2756B5B6B6B08A751842EE1BCF316
      C725A9A1BEDEE572EFDAB56BFCF8719D9DDE175F7A094E2A4992C9647AEEB9E7
      162F5E3CDC3785888888E8903508CDDF7AEBCDC71E793421CB0CCB02CD737273
      C68F1BE770D86143B4D6267F445A3ACA1B0EDE16ACB1E6735996EDEEF6FDFCE7
      977EF8E1BF81F813C68F2B2E2E3EFDF4D3CF3EE7DCFEC3C6A291871F7EA8BEBE
      E1E38F3FEEE8F49A8CA692E231B02F1C04713C9960380E8E053856924A565616
      CB320DF50DBC20582D965038CCF33C9C11BA06E0B2A2A8294E676B5BAB5EA7D7
      423D7015E17018655D4CA2848B1C9AE562484B4B0B05839B2A2A02A170341E9B
      3861C20DD75F071BAF5ABD9A63B9CECE8EF9F3E6EDADD977EF7DF781A9D71616
      3DF9E4933FBFECB2E1BE294444444487AC4168BE7AF5AA975E7A69CBE62D0C4D
      D9F17C8FB2B2B239B3678D2E2E8177FDFE9EE5CB5748F1F8A2458BC0A70FDCF1
      B65B6FB9E7DEFB80E61EB77B6451E1690B4FBFEE861BFADF6D6E6CB8E5965BF6
      D5EEABD8B405786DB359F37273E5844CA1C214895E07AFD2406D2D2B8BB66608
      9EE0D45A281D2EDE40452B8F781EA5F71285FE83836FC745E714A537368EF23C
      BA525C2E57CABAAFD7B5B6B74207E0F1784E9C32252EC5BBBB7B5253DD357B6B
      8A8A8A7CDDDD5F7DF5159C549665F0E6CF3CF3CC79E79D37DC3785888888E890
      3508CDB76FDB565757FBE8A37F0D04FC4043A0F9D8D2D2934E3A695451515D43
      83C36EDFBEBDF2B5254BDADADA7E77CD35F3E7CFEFDFF1A107FE7CD3FFFBA328
      8A3CC7391DCEF48CB4CB2FBFE29C73CE7638532A2BB73DFDD4D39F7EF6692814
      EEF2F95886CDC84807A04B723C914018D61AC1E0F6E0C42C714902D4270C4683
      C5644DCB48331B4C0AA508BC08DD49ABB73DD403863B047D0098774110D15A54
      6D9CB377C52882BA5ED4E515E4793BBB366FD922E3EC5D9224F50F87C2E7096D
      CA23B878F8154DA9B4589E7DF6D973CE3967B86F0A111111D1216B109A7FF6D9
      679ED4D4BFFDED6F1B366C484BF3646767979696CE9D7B0A5E5CAFDA1D29FFF7
      7F7F7DE9E5979B9A9A4E983061F59A355AF94D00E595575CF1F22BAFC0AFC818
      5314F09517C54993266666656EAAD8B47BCF1E9A422B7A683C043A6AD428191C
      BE84D267690846CBF1E3923F1030E87469E99913268C9F3777EEF80927887A9D
      A813C13E2304332C98EB6834027B556EADFCE0C3F72B2A2A5A5ADB242906DCEF
      2D04AAF625F15229B7DB9D9E99BE72E5AA2EAFAFA4B8382B3B2B128E98CDA650
      28643299C1F5AF58B1120770D0BC1D9BC5F2E24B2F9D79E699C37D5388888888
      0E5983D0FC85175E183D6A547D6DED9FEEB9272333332727A7B4B464DE3CF0E0
      6A5B6BEB5D77FF69D9F2E5405E70D4E99EB4E5CB97158E2C82BD76EEDC3979F2
      E4582CA6E5B9D50E8B739227353BAC2D04A5718CDB6236E7E7E77779BD38D2A2
      A27CB814E5F375B3343B6FFEBCFFBAE0E2790BE6D30C755024A75FD148486F30
      5128161F85F3BCF7EE7BEFBDBF74E5CA15DD3DDD292E27CB72F8ECAAA2A84683
      A1A4B8A462D3A6DABAFAE9D3A719F406AFB773E20927C889845EAF07A6FFEB9D
      7751AA473C397DFCF8F17F7FFC71781CEE9B4244444474C81A84E68F3FF14466
      BA67F2E429E79DBB58D4EB0B4716969494CC9D734A5E5ECED5BFFBDDB3FF7C9E
      4569B6B8783C3EB2B0705DF93ABBDD017BDD74E38D8F3CFAA8866CED980316F1
      53DA536DB50E3C8E1C59085BFABA7CA8E61B8A9B277D3EDFF8B271D75C7BDDE2
      C58B7BFCDD3B76547BDCA9A3C61403F1239148AA2715CED9BF88B4ADB5C59396
      0E06BFB5A5195E713A5D80F575EBCA9F7DF6D90F3E78CF6836EB74224EB58B8A
      4A17148CE809F82B2BAB3D1E777A5A7A2291808F11144D89822E168FEEA8DE09
      563D0FAE2D2B2B3B27E7F22BAF282B23E5E58888888E3D0D42F3A79E7A6AD7CE
      1D7F7EF0C1575E7EF9C9279E04944F9C78C28C1933C68D9FF0D8A38FDC7CCB2D
      28812DF2DAEC5F1E7EF8EA6BAE85E79F7EFAC92597FCACBBA7472F8A369B0D6C
      AF36955092D020A716CA8073F13C97959909FEDD6C31C3BBD01F288944301832
      1A8D3FBFECB2DFFEF677F1586CC58AE5D9D9593B77EE9A3D77F6B871137ABABB
      A391684A8A133A102D1B4C2FCDD33380E60D0D0DDECE0E8BD9DAD4DC047B39EC
      297FF9CB438F3CF6186C64321AB5FEC4E9743A5252366EDC080D4BF778541AA5
      4087BE84A5698EE58D46BDCD6EF7A47A24390E7F086843C9A114E5202222223A
      4A3408CDDF7FEFBD679E7EFAFC0B2F38EBACB35E79F995CAAACAC211234E9E39
      736CD9381583FBA3F73F088443A79E7AEAA597FE1CB67F6FE9BB37FEFEC6BDFB
      F6A1F14F96B5582D2693C96030C2AF281E1D8D84C221F8157C71467A1AC7F115
      9B36757575F97B7AB04D96A79F34E3E20B2E2A1B37AE624B45F9D7EB3C699E39
      73E7ECACDE397DC674E83FBABB7DD168D46EB30B8200404729D155D5EBED4CF5
      A401CD6B6BF705FC01E81B6AF6EE6D696E195158E8B43957AD59B5E4B5252B56
      AE8446C0367ABD0E00BDB1A2C26EB72F3C75814E073D8DDC57D742C559BD9484
      9C0847C246A3E99A6BAE2F2A1A39DC3785888888E8903508CD57AD5AF9C4134F
      0083172C3CF5A28B2E4A2693D5955506BDBE646CA9DE601CB8E5CE1D3B96BEB7
      F44F77FF29168F036DB58489607B8D2683D564B5D96D568BC56AB3EA0D7A9DDE
      80535C89DECECE6DDBB637B7B602CD61AF5F5CF68BDF5DFDBBE79E7B16B8ECF1
      78E00099995993274FDAB7B766C1FCF923468D4AE21A4382280E3CAF96271D9E
      B4B434FBBABAE0DD9A3D7BE09381D96A59B372756AAA67C1FC0577DE75D75BFF
      7A4BA743D35D264F9ED2E3EFD9BD6BF7198B16B93DA9F158BC2F2BEFFE9FE168
      C4E572DD74D34D1919A466051111D1B1A74168BE76CD9A7F3CF5149E6D92C8CF
      CF9B3D676EF1E8D17129964095399540281C8F46C1C9EEDAB9EBE9679ED9BD7B
      3772CD03921432346D341ACC663398749BD96AB65A01EEA2A817795EE0B9B6F6
      8EAAAA2A54902810B8F0BC0BAEF8C5E54F3EFD64F58EAA9145A3B23232239148
      C1888273CF3D170E08469B61D8EFBD00D82510F0373536565556A7B89C6BD6AC
      85E30397AFBAF2AABBEFB9FBC38F3E828F082525C54E87E3B3CFBF38EDD48570
      7C687FDF30EDFEAB0F8682E9991937DF7C6B4A4ACA70DF14222222A243D62034
      2F2F2F7FF2C92765294E334C301854924920605949592C16F3FABC9D1D9D5E6F
      675B7B5B6D6D5D77770FF05046E5DEF61F8446D9C3F580711BF8728BCD643619
      4D469D4E2F02CB59AEA9A565CBD62D4D4DCD6EB7FBEE3BEEFAE083F7D76F589F
      9B97EB72A7E66465E5E7E7CF99336BDC84898778152A58F8EAEAEAAEAEAE4F3E
      FEA4A1A161DFBE7D63CB4A172D3CE3B63BEFD8B67D5B767656D9D8B1CB96AF9C
      3C71C268D433491AC7F7375B45342F1C5978CB2DB719BE6522CD4FA22AAAA404
      1E0E57C55465253C1CACB72EA02E78EBD08EF4A64A9DFF2D6F1DC6D17A5B7727
      5579C7D0FF9586ECB0C79A86FF46101D5D1A84E61B376E7CF2892722E130CDA2
      023FB22447A211555101EEB0A92C49F1583414898443B8D4663024A3959C07E4
      9BD589A2C564B25AAD16AB153CBAC96400BE7360CD59B6AEBE7E6BE5B6B6D6F6
      99336738EDCE7F7FFC71414181C9642C2D291D3F61C2E4C9930A0AF26D76C70F
      71E507A9A3BD2D140C7CFAC9A7ABD6AC6D6F6BAFD9B7F7B485A73BECCE871F79
      18CE3CEBE4993B76EC74A7BAC6958D93504218455B68D45BF582A242A1E0D8B2
      B25B6FBD9D61E8433DF5D0E908D0FC029A3AACFFF2D4F96F526F7E83E8877D34
      6AE82072570975E7817FA33B2BA93B8A0FF368C7A88E861B41749469109A6FDE
      BCF9F1C7FF0E6444930C71803AA1A0542A920C7E5D8A4968F54E3412098511CD
      63F1585F147B3F04359A9BAD88E720A3D1A8D7EB7896E704BEB6BEFEEBB56B6D
      56FBE9A79DF6FEFBEF452291A2A2A28211234E9C32392333333D3D232F3BDBE5
      496539FE50AF249990E1834375F58E4D9BB69497AF03ABDED9E9BDF8C28B6B1B
      6A3FFCF74753264FB45A6C70B9999959289D8BA22DFFEF45395C02744F274E3D
      F1861B6E1CD6DB31D434FF26F80E490739F4C33683BDAD1B1288BC45D1177CE3
      C5F329F5CD1F7DE4634747C58D203AEA3408CDABAAAAFEFAD863BEAE2E8665E0
      4D7864284A417109459B85128FC7A391B03F18F4FB03E15028168F2A0AD55730
      0E7D8B020F96DC6235DBCC5693D96C34A1615096E544BDAEA1BEE1D3CF3E3BFF
      BCF35B5B5BD6AF5F5F347264D9B8713939D96E972BD5E3C9009AE7E6BAD33C3C
      2F1CEA9500CDE1987BF7EC6D6C6AAEAFABDBB869D3FAF27582205E70C1052FBD
      F232F427A79E7AAA144315A7555AA5F67F5108E68A0A9DD4FC050BAEB8E2CA61
      BD1D03683E04FFE50EEC1BBE23783250034971803D3FACA30DB9BECD930EFA49
      62C055EDEF037E50106960F73068FFF1ED1AD892AABBA8923BBF7F9743FB630E
      E18DF8317F961F717587B9E38FB811FF191A84E6BB76EDFAEBA38FB6B5B531B8
      3E32A315F7C48B8214554DE2129AB158D41F0876F7F40403C15038A42553EC07
      BAC873268B05806EB7580C2613F6E67A8EE74441A8AAACDAB173E78C1933BE5E
      B74E1485B2B2B2348FC79502284F45531833320AF272D332B3E8BE4A9E9AB4C2
      6FDA2A2406EB9B57929025A0F9EEDDBBEBEA1B3ADADA5BDA5AB76EDDB261FD86
      D9B3E6ECDEBB27168BCD9B3B17A5F142B959B49AA27D570E17A520B7BEF8BCF3
      2FB860786FFF11A3F9211CEDDBF61ADAB61D96BEDB937E17D78683E687E4A00F
      2158348437E247FC590EFBEA0EFFCF4268FE3D1A84E6FBF6ED7BE42F7F696969
      61185C619966686D7636A639801B700E700C0603BEEE9E5010681ED6684EF5B9
      7381E7CD98E6568BC5684238D7EB751C2E09BAAE7C3D8B2CBFBAAFB66EE48811
      E959994E8723DD93E64E75A7A7A783311F397284C96C0D04C3DDBEEEA6C6E65D
      3B77EFABAD6FEFF0F6F8FD70663884C366733A9DD9D95913279F909E9E66B55A
      6C36ABD6F2A6C6FA9DD53BEB1A1B5B9B9B5BDB9076EEDCD1E3F3435F129362D3
      A74F83C6A05C8CB83C74AF2FC75457920AF41F975C72C9A2458B86F5761C2334
      A786C59B1FF89F59FB7F7E4028E93BE22D3F3DCD0F3168767837881A2E6F7ED8
      57F763FE2C84E6DFA34168DED8D8F8D0430F3436347234836A78323826DEBB5E
      5F492492922CC522B15028D8ED076F0E300F2714A53F6A0E4F80DB663C0A0A4C
      472C3718F19416B49868E5AA553CC7C56539E8F7178C284871BBC09803CDD333
      D2B3B333CD268BD7DBBDBD724755F5AEFABAA6602824C5E389A482C6606914F3
      C1C957E86452815601D99DCE94A2A2FC2993274D9A3421BF2097A1943DBBF7EE
      DEBBB7A9A9A9A5B5A5B3BDA3B5ADA5A5A99565D82E7FF7D4A9533DA9EE849CF8
      C6F444E8A292BC20FCCF2F7E71CA29A70CEBED18DAB8F9D0D2FCB0C3B5DF32D3
      E6503538B80FFC8B7DEB7FE01F1752F8A6FA033E3FE48CDFE1BB7FF81907DFEB
      90F4CD1B71D87F96C3BEBAA1FEB37CFF8DF80FD220346F6F6F7FF0FE3FEFADDD
      C7E39CB1D899236B8E82E3B4222713525C8E4581E621F0CBE0CD0FA23948E078
      B3D964B698AD88E666BDC1208AA220F0B07F674727ECB2B7A686A56930E62EB7
      DBE3717B5253CD265B5C4AECD953BB7B774D2814460741796E19551BA5ECAB00
      879BD19FF336A9288A9666C06EB3158E2C983C697C56565A341C6A6E6D813E09
      BC797B5BBBB7CB6BB73B58964D75BBA15560C3298A3A2070AE52E0FA7546E3FF
      FEFAD7D3A64D1BD6DB7174D39CFA1153297EE4B4938322AD03D173C05BDFD673
      0C2BCD87E48CDFD68043D5B7C52E0E9BE63FD18EDFF77720341F94E67EBFFFFE
      FBEFAFAEAE16780ED788D002E7DADC0F454EC8B29488C7628150C8EFEF090502
      E1485439F02022CF9B80E288E8F08DEABAE194B61CC3B0F0EBF6AAAA0D1B363A
      1C8EF48CB4541710D6A2AA6C282C43BF108FC71886D38982A224691A05C7E109
      D05BC17350B45600CD591439A77132742D6642419B2409AD4745D9033C4E8B45
      1F09055B5A5A80E7AD6DAD60FD8B478D8AC5E349D42BC00E341A0855286D3814
      FE4909193A9E1B6FBA71B893B41CF534A77EC4848AC38F097C9F011F68DB07BF
      D2E38EE6D490DC88438C5D109A1FDD1A84E6B158ECBE7BEFDDB279B3A8D30124
      81D45AE01CB655926A32918C4B126C03961CB81F0C0422D18369CE739CC964B4
      607F6E341A11CDF502CFF260D061F7B5EBCA5B5B5B80E6A83290C3ADD359A404
      CAA5851361E1CA74342D2593098A460BF0695587579A02BB39F8AC800A354333
      A838E2BBCAA90A07A7A350302889ADBA96BDD16A35E8443612F677767A5BDBDB
      127262F2A449F011013CF8FE792CFBE728A249F40EA7F3F63BEEC8CBCB1BD6DB
      7134C7CD0F4BDF3A43E65074A8F32C07F91C703CD2FC9034F88D20343FAE3408
      CD6559BEFFFEFB36AE5F2FEA50B54CEC8E15146D6128A07922999425793FCD83
      81C837BC39CFB22620B9C962B26843A07A51AFE3395EAF13DB5ADBD77CFD3578
      7C93C1989F57E849CFE6581E4198A65854235489D17482616C829826086E8672
      00CDC1744B718E66D86442666885A2930C17E7791FCBB425D55639D19348D04A
      924F2A3C72EC34B01B7E40D7108D063ABADABABCDE4EAFB7B4A4B8A06004F8F7
      81E172B58FEB922CA5A6A6DE7BEFFDF038ACB7E3B8A3F9101CED5089430D6980
      F85B74CCD17CF01B41687E5C69109A2793C9071EB87FED9AB5BC202AC924D02E
      018E3A89679C2701EDC0D4442C1E0F874340F35028148F4B071D826318B3C56C
      42443703CD75A208365F1050D1B75DBB766FABAC64182A272B6FD2095305419F
      90930A62B442719CCAB06374BA31C07A7F4FB0ABA3A5ABA323297B4368E529B4
      0A9AC13238B93ACF9B8D06372F645B6CB6144FCC6EAF1574BBA4843F91D44197
      2303DCD13029CD31EDEDCDBB7754B6B7B56664664E993C594E26B410FCFE8150
      F440C5A5784E4ECE830F3E6C369B87F5761CB9F9E63F78287248DC74BF06DAEA
      C33BDAE105880FFEEBFDF4836F477214F43034F88D20A3A0C79506A1B9A2280F
      3DF4E0CA152B598ED1529383259751B45C4EC4510804F00D3407C2FA0301948F
      F01B07059A832747C3A066B301BCB90E60AE434599557AE3C68DCD2D4D1E4FD6
      C927CDB5DB6D312929D3AC49A7B328090B9D288E4482BB777DBA6F7795BF2720
      4B9D1415603956143896A3FA62F71A87A16106594AA76913CBDA287A6E5AC698
      5125AD766783C114A0E9405C5693B24E00F833D5DBB7AEFB7A95C56A9D76E289
      020EF57CC39AA33278A3C78CBEEFBEFB7B6BD10D9B8EB2B5A007FC7FFB916D3B
      ACB8F901A1E1EFE5DD814EF380D31D6AE37F3C4486FA8C877FE46F68D0B8F911
      9DA138043B7E8B08CD0768109A831E7DE42F5F7CF1254353491C89C675E3C093
      27F1EA7E09AD058DC722910818F3582C8E474A0F10D0DC6834A22150B3C96034
      E975A8B0273C00FABFFCF22B77AAE7B405673A6C29515965F4FC485ECDEFEA5C
      5759B571EFAEAACEF6564932BADDA93939934E38E1A4A953F372B2333332AC36
      FB41A740352BDADBAA77EF5EB67265F9D7EB92DECEF68646B7A2CE1B5B367FFC
      A4405AF6569A0B46C3169E4B28890F3F5E5A5F5B3375DA54578A0B151E4242D7
      8D8248F8021309F9C4A927DE72CB6D0393410E87863C4FCB8F38E0C1F6F6C7B5
      ED70E6B47C079DBF6D8F6FA7FFD0AEE5F92110F909560F1D8686664ECBB0AC1E
      1A4C84E6033438CDFFFEF7FFFBE8C37F333493547061073C37505510DCF15A50
      19475A228160201C0AC762B1830EC132B411E1DC8416F59B8C069D41D409BC28
      0603FE2D9BB79D73E685A3468DF1C7621E937E627757C3968D2FAE5FFBEF2E1F
      EC583072E4B9679F7DE6198BA64F9B4E0FB6E0F3DBB4AD72FB9237DF5CB766CD
      8AAF961573DCD5534E1C7BE2CC1DA999BBE2712BADD437D6BEFDD66BA9696EAB
      C59A4CE072482AC5B28CC36E67794E55D024FA050B4EBDEEBAEB87FB761C991C
      8A87E1D007F95F74D86D3BDCF9E603632C3F3CEEF41D7B0DE13AFB1F08911F48
      AE43EBEA86F046FCB828F6615FDD10FE5908CD0768709A3FF5D493EFBFFF0185
      D64826F667D4029A536A52969372228A688EB26E81C0AA1F740830F5BDDE1C4D
      68311AF406412F701C1F0C061C0ECFCCE973C3AAEA60E851BB367FF0F9278FD7
      D6835B1E3366F4E9A79D76D185174D9878603A5C556D686C68A86F080402F0B1
      001AC30B021CD893969A9797CFB2DCC06D8381C0ABAFBEFAB7A7FF51BD65EB59
      29CEDFCC99AB9F3A6B3D27500979C5E79FB4B437B9DC2E05C7CD199A6E6B6B83
      A3A5A7A729A83A5DF2ECB3CFBDEAAA5F0DF7ED202222223A4C1D4C732D21E273
      CF3EF7AF7FBD8D73A324293CD31B6F0A965605A42692C9184ABC1501C28680E6
      923418CDD10828A01CCD50D4E9789D88F39E1B664C9B27D81DB9B1907153F9CD
      6FBF511E0AA5A479162F3AE3CC33CF983061BC273D138CBFB7A363FD86F5E5E5
      E5DBB757EA0D7A9E174C46A3D56AB55BADDD3D48D1584C9B66033D4A4969E949
      27CD98306EBCD56EE7799479B166EF9EE75F7AE96F4F3F6DEAE8B87DEAB413CE
      58BC232BA7A3A3FDB37FBFD7E16DE3580EAE42AFD7BB5DAEDD7BF6646664D00C
      7CEC502FB9E467FF7DE9A5C37D3B888888880E5307D05CABABC630CC8B2FBCF0
      C61B6F24952488D68C397E00EAA19C5B8904101C68EE0FF8C3C1D0B7D1DC6402
      636E026B6E4043A062322117974D2C9B727296B79D5DF5F9ED1F7DB036169F36
      75EAF98BCF1D37766C6A9A07CEB0BDB2FADD77DE59B376ADAFBB3B140A190C86
      9F5F7A692412696F6FEFECECECF1FB71FCC664B7D9E0313D3DFDEDB7DF6E6C6A
      B298CD80E613A74E5DB4E8F479F317381C0E5F9777D5EAD54F3CFDCCCACF3EBD
      2823FBBF7F734DCF98D28F96BEF5E9BF974A68653F4ADD2508021C3F2F3797C2
      BDD4E5575C71FEF9E893DA41B9DA898888888E09D103675FA3FC538AC2B2ECAB
      2FBFFCEA922588E689642FDD68B476122DD149A2C839101C95700BF67AF381C9
      CD29AD989C01911CBE74F044AFE758C660B52E3AF3FC925874C7BB6FFD79F5AA
      36413865D6C9A72E58E04A75C31937AC5FBF79CBD6D5AB57874261A64FDAA951
      ABF017FEDC40F5AE4DEDD3FED14C45D189E2ACD9B3E7CF9F57909F0FACF7F7F4
      BCF2F6DB1F7FFCF11936C765575DBDD76E7DF6B927BC2D2D82206A6B4AED763B
      B40EF6862BBBFADA6B162E3C4DFB68C21C4AC89E888888E868D0013457D07860
      0260F6E61B6F2C59F2AA2CC90074BC552F55F172CB24B8734992C21114370F87
      42DFA4396C6ED4EB4D6693416FD4E991E0D8A527CEF843D9A4AF5E78EAEAE5CB
      F41ECFDC1933CAC695C90979DDD7E51D9D9D5BB66C8143E3348B6C5F7B14ADD8
      9BB64054A733688114785D92E2B28496E9F7266EC46B5501C1783C3321F0424A
      8A73D2E4C9F3E7CD7338EC5BABAB5F7DF9955304FEF63FDEFEF8AE9D5F7FBD4A
      8FC33EB817C00B4B930ACBB037DFFCC7E9D367C0D1A00184E6444444C79C0EA0
      B996ED169EBCFBEEBB4B5E7D1507556494D6042CB096EF4A416B41D166E0CD63
      115C492E2CC983D05CAFD31B71F64470E6222FCA3C77F582338CD55BAF7CEB0D
      3A2565FAA44979B979ADED6DEBD695373635C1194551EC0F7124510A725A40D2
      BBDD2EABD5062847F913F71F9E4A2492E148A4BBA7ABC7E78DC563D02694A20B
      2D01655102804442A1A89CECAC934F3EB9B07064D5DEBDEFBCFBEE6D638AC7CC
      9C75EF9A556C42EAEB333467AF702C77F7DD77978D1B071C67B148BC858888E8
      D8D27E9A03D400DFF1389A3FFEE1871FBEF1FAEB608125192536E98F7820F38B
      D78202CDA388E62110DA66309A1B8C98E77A7D9265F3DDEE2B525C377CF87E9D
      A24E2A2BCD4ACFF0F9BAD7AE5D1B8A44C071F7A313B9FF6412F6733A5CA9A969
      D013A854425BB7049F09E0F4546F9C85012F2EF0A2208AF0728FDFDFD1D1DAD3
      DDA5A230110787817E80E53968A4280A134E98585458B8ABB161FBAA35B74E38
      61B351BFADCBA767D8FEFCE6C944123E3DDC73DF7D852347B2389E4E684E4444
      74CC693FCD01A312303A1A05A07FF6D9276FBEF1662CBE9FE6741FCD937D9116
      6DF550241246EB710EAC0B0ABFE9C04E1B10CD4551C7E97597E7E7ADDFBC6549
      7DFDE8C2C2F4B4345FB7AFBAAA3A2ECB0357EBE0853C6A76767E4646A64E60E1
      F068263B6A1F8E992B6AFF09F08705345A0B67E2394E6730F1822E1808B5B634
      F8FD5D2CC3C1A660B705910752530A5532B6243B2B73EBDE1A7B73CB051326BC
      EEF7C3278CBE13ABB224E7E4E6DE74D34DD9D9D91C1C4DA723342722223AE644
      F7176EC0353FA570380C40FFF2CB2FDFF9D75B91680CDC3AA5A8034623D55E0B
      2F49B16834180C229AF779F3FE6F3C19510FCE1A804EE9C409EED431C9E463E5
      E5A2D399E9F18482C1DAFA7AE83C06A01C2CB9A213F5999959999999D1288AC9
      2B9456BB0E7FE1A4E60385464859168F93A20BE058DE62B532ACD0D8D4D0E56D
      47A52D681434E1708A769E1772B2B38D66D39EBAFA0B535214B7FBABCE4E03BE
      28B8A2783C76DAE98BFEEBBFFECB66B301CA455104A6139A1311111D5BDA4F73
      AD3E1CD01C1CF7D75FAF7DFDF5D751AEAB4452EDA7399E0782E7B9A0F243D1C8
      C134A7FA800EDBA3480B26BA68364DB0D96BF6ECA9E8E9C94A4D85BEC2D7D5A5
      68CE1A0B7724C9CC8CDCFCFC3CAD0909546D08F71B789412ADF7C1CFA8DE8F11
      E87302CD2258A3800BAB653B471329054134182CD0D33435D6C2A1588E67D108
      290DFBC22676BB5DE5393614BAB2B8E4CB48A4391412692A168B8F1A3DFAD2CB
      2ECBCFCFC7ED35109A1311111D8B3A80E6516CB741DBB66DFBE73FFF190987B1
      2BEEA5B936CB040F8202CDE5382A0D1A4491199466767FE01B1F504534371858
      51F0381CF3533DAF94970759566019BF3F40F5CD31D44E0DE7CDC8C82B2A1A19
      0AF5C46351E82D541C23C7C978D1141A94BE5155F0ACF0BE0A44B8E52CF6E60C
      C77278E812B80E6F711C6B31DBA584525FBF3799907916C8CCC16E700C9E6374
      7ABD3F1C5D98E671A5A77FD0D0A057D5ACACAC0B2FBAA8A4B4D48845BC391111
      D131AA03681E89A0692A3D3D3D7575754F3EF184CFE7034AF6CEF2C6B6186115
      E15C8ECB09291E0B85C25A9C3D89F293A3C83B6C0C38C4A97051D5217856E4B0
      17C9F25DCB960BA29890242D29236CC6739C363DC6ED4E2B291EEB0F74C9525C
      EDEB2DB4B992686A4A6F11E6645F33B5AE053DB00C8B9D39109CC3646700DD18
      EC94C96C4F24A8C6C61A1585597830E649942317DE6422B26C4E2A679596369B
      4D764FDAA40913C6141703C7A1BDE0CD51AE47320A4A4444740C6A709AB7B5B5
      BDFCD24B7B76EFD6E674339A95C64B6E34CECA6839683C128E00CD259459114D
      66F4783C279D74524A4A8AD562412BF20511F868F4F9BE5CBAF48DAA4A91E57A
      279100F175BA245E506A325B4B4BC6298968381A468B93E0C8E81BA553475F1A
      D7B5A2428A06F6DEC14F6813B09C018E637E03A63904739E0376A3DF299BDD03
      D7D2D4B80F686ED0EBE5848C4AD071B4A252CD6D1D0B4B4B2FFDE555D6BC5C23
      26B8051A8C9F68C6BC7FE112111111D1B1A283232DA876734F4F6767E78A152B
      B66EDE1404FB1D0EE34A159AA7464407C602BB2514E48E4AF1782C1A0F8543A2
      4E77C10517CC9A35AB9F89005581E3BAD6AEFDF5030F744B1287288CE6AC0335
      E150D158148E565C5C66B7597ABABB14DC5524B4BC0158DA4A545C27035E0C47
      6349554101104150791E700DD4E6701C05B97206A19C1378A039A7C54900E256
      9BBBADADD9DFD365329AE0F548344253807DD617F027E2F1FBEEB9E7A4D9B3E1
      CA0D58787ABBA02D5F22AB878888888E390D320A1A08047C3E5F5D5DDDF2655F
      01D9C12B07D1D8681808ABE2B48A0AE66C0C4F6B8946C2C110E05E39F7DC7317
      2D5A84CA53E081441E8195675575E3F3CFFFF61FFF50509083D192C0988CC658
      1C7D6564E616E4E705FC5D28408E6A1A2550993A59822F5CED08BE954432120A
      4A0C9D9B913E4E101C71097E6D0847F7D17417609CE3444473F4047EC209C19D
      0B18F02C786B83C128EA8C2D2D757064ABC586E65FC6633CCABAA5D4D4D6FEFA
      7F7F7DFDF5D7A376C251B40663574EC22C444444C7A20699A108F6BCBBBBBBAB
      AB6BDFBE7D9B2A36C213806D2402248CC550A50AA02D7AD4E69B03CFC14D8F1B
      3FFEBA6BAF4D4B4B43A11534C75C44465714833EDFFDBFFDEDEB6BD63082C0E0
      19E526B3190C7097D72BEAF4A347958A3A06FA0334EC9954C0EC27D1B224F891
      841F98E6B14028E1719D7BE3F5374C9B56DCDE9EDC515DFBF59AED2B57AF8E4A
      9B59AE9A61659ED501CD3516A34F038228F01C9A99C8A0E98F0EA70B3E5E7476
      B69B4D26F8C8E0F707680605DC5B5A5B4E9937FF91471EB15AAD28888F2DB9C6
      714DC37D5F888888880E4D07AF1EEA2FDF0CF61C98DED2D2525959D9585F1FC1
      A39DE0A8D11AD058348202E61194218B65C78C1973F1C5178F1B370E0F7C9AFA
      27F901D93797975FF2B39F35B5B501D9B5B3D82C164555E1D07A8361F4A83168
      25268A8DA3D04D12456F2414C1418116392E4513329BE6FAF9030FDE75DE454E
      4AA12A36C636ACDFF9E6EB5F966FD8A9A8315EACA6A81D6A52E5051145CCD1F2
      4F547AB437FEC2713445EB8D265134B4B434805DB7DBEDFE801FFA0994693D10
      70389D6FBDFD767E7E3E4A4D83336D917C5B444444C7AE0E5ED9AF2D07ED07BA
      167569696EDEB3678FB6881F27508C27F1302510B9A4A464E2C489E9E9E91ACA
      B5497E08A91C0758FFBFBFFEF50F7FFC230628A7256371DAEC1DDE4E388EC964
      1E357A8C1C8FF4B11C3DA055FC721C211D79F3885177E66DB73CFC9BEBF2A079
      AD4DD496ADCD2F3CF3D1479FAC9692D08B482C1D359AEA23914686068AF3BD31
      13203B8F92B568023ADBECAE2E6F3B5C93CB9D0A3D503010E4781E7A0E6F57D7
      DB6FBF3D6BD62CA53F7B17B1E4444444C7AC0EA0797FAA160DE801AC509F5050
      4596153CD50FD009D4067CDB6C362D566EB15800E5E0C7799EEF8F415F77DD75
      8F3DF69836471076341A0C2E97ABB6AE0E7E4D4BCFCACCC88886038AAA24B033
      47136324FC85C663C3265366F1C89B9F7AE6F2BC02CADF4DEDD8D1F5C2731FBD
      F1AFCFE25284E5248A0AAB6AC8E95025B9211C0EE980E6021A02C534077BCEA2
      93B2C8695B6DAE5038E8EFF1A5A6A6C2C7822EAF178C3B5C787373F3030F3EF8
      CB5FFE72B86F01111111D110E8E0FCE6DA7C12145489C534A66B1C473173290E
      D65C1BC9442E58A74373FA743A6DDD0D4E7CABD75CB9867238E625975CB264C9
      1211875980E6E0DE5DA9EE9ABD35E09D478D2E3119F5917010CD5949E088B98C
      5338E2C158458D66A52F1C5374F92FFF778628D25595356FBEFDC5FAF55BA444
      84656540394545543560D08BA91EA6B16137CBB028600E484734C74E9DE3D0D2
      7F86D6EB4D708A9E6E6F4A4A8A41AF6F696D0507CEB02CD0FC97575D75FFFDF7
      0FF72D202222221A021D5C7B088550F08C724942639D9A4FD79EA35C8689A4B6
      25F01A80A98D7602C4452C0DE503A7859C75D659EFBFFF7E3FCD1D767B8ACBB5
      6BD72ED8ACB4641C58E4680C455A7A9D390EB4C0A9629138C34BC5A32FD1B127
      CF3C394F51636FBFF345F5CE4A8EA75946D2504E5151A0B92818468F49AFAADA
      445334201CBE444123796FE81C7D8C10446851C0EFB3D9EC56ABB5B1B1112E13
      DE6D6D6939EB9C739E79E699E1BE054444444443A083EB826A890C9358F281C2
      13087B69CEE2C8347FA0FAA785F48F259E79E6991F7CF0413FCD5D29CE14B7BB
      AAB20A362E2D1DC7326A241A45D3CCF18AA15E9AE3C1D684129B36F5425F5B59
      76B6DD1FF0965754488910CB4A1AC7F1BF5832E9CBC8C84A4DB5556EDFA2057F
      D03C1A940B17CF54ECA5390D9D0EC3F28180CFE970DAACD6BAFA7AAD2C465B6B
      EBFC534F7DE9A59786FB16101111110D810EA639D55784A89FE91AC435F56FAC
      557AD3F0AD4D0DECE7F8C0B1C483689EE274A4A5A76DDDBA1D605A525CC6F154
      3412D53E0A206F8E992E01D063F170243C75EA492C35AF664FA72C07BCFE5686
      D5200E348F6B408FC7037366CF6E6AA9ADADD9A713451C5E1144E854C09EF7D2
      1C9AC408A29E65587FC0E771A79AADE67D35B51ACDDBDBDBE6CD5F40684E4444
      747C68109A537D31F47EAC2B7D1AB8CDC0EA9DDAE337676A0FA43974060E8723
      273B7BD3E64D1C278C1E5DAAD7F1D168180EAB4D31C74530D018A824A1D0B9CD
      6E3AE3F45F7FF179675DE36E8E9318A617E22A155195982C771715958C2C2C58
      B1F2CB5834A6D7E9D0870320398F4641B519E72887224BEBF426B84C7F8F373B
      3B4714859ABD352AAA74C1B5B5B79F71C6194F3FFDF470DF02222222A221D0E0
      34EF973A4083EC3C40DFDC115E5CBC78F13BEFBCD34F739BCD36BAA868D3962D
      9224E5E48C70BB1C288F391A7AD5A69BA3B543A8CE109EDC1289454715151615
      CDDF59EDAF6FD8118975A9548C52632C1B1504CEED4A1F3DAA60C7AECAC6C626
      64CCB5B88FC001CD795E2B27871E189AB25A53A08F08FA81FE45916874EFDEBD
      7ABD8E61B98E8EF6CB2EFB9FFBEEBB6FB86F01111111D110E87B68FE4DA9FD09
      72BF731B6DEACB95575EF9ECB3CF0A82A0E54D04E28E2D2DE9EEF1EDDAB5C761
      4F292C2C90A4184E7CAB254E4C6A13DE81E628857A5C8AC6A2A9A9AEA953E618
      0DE9BBF6D4FA7C5E8A969D0EE39851053129B27CD917EDDE4E5D7FC89EC73C47
      C6BC7F081465CD75D83DDD3D5E9A56C61417D7EEAB45CB58E371E8883A3A3BEE
      BAEB6E68E170DF02222222A221D021D3FC87488BB90352EFBEFBEE7BEFBD5741
      E53AD13A7B80F5E851A36C76DBDAB55F9B4DA6C2C2512A2527134A5F805EC671
      73249C6DABB7641DCDA8A52563C78C19AB2834C3529214AFAEDE0E161BF8CFE3
      A83D9A3189198E798E7FF6E641A40C06B3DE60F676B6783CA9A99EB49D3B762C
      3EF7DC77DE7D37168BF97CBE25AFBD76F2C9270FF72D202222221A020D3DCDB5
      38BB3664BA7CF9F24B2FBDB4B3B313EC39BC0506DC95E21A3F7E5C4545853F10
      2C2929E3380AE5695129344F11CD9AD18CB9021E1DA7C455B4F9EF88EF8A82AA
      1AA1E353BDA3AFBDF11416558CE3719C9C617994A605BD8368CE50769B5B92E3
      A14077D9B871C16068C7CE9D634B4B6B6A6AA04BD01B0C6FBDF5766E6EEE70DF
      02222222A221D091A2B996F4DCEBF52E5CB870F7EEDD625F9E1678F1E4993301
      D6ABD7AC2DC82FCCCCCAECE9EEEC2D1587E32D684414B0AE24507AF3A4E6D193
      BD45E5B416F7C5EB716A730EE7D74248C7D61CA53887071A3E0AA8AADE60B458
      1C5D5D6D568BB9B474ECC60D1B227839AB2808F1787CC6CC990F3DF490CD661B
      EE5B4044444434043A223407FE6AAB490381C08D37DEF8CE3BEFF03CAF21185E
      74D8ED7366CD5ABF714347A7AFB4642CC731A1901FCD9DA15434B12589561261
      8403D055A59FE5B830287C6943AEB886B356A882E9AD578133E26A195A509550
      8675385C0939DEDDD33569D2947038BC69E3C6118585FE9E9EB8247575755D71
      E5957FF8C31FFABB19222222A2635A4784E660B1B55C8CA02FBEF8FC9A6BAE05
      260371E1313D2D4D8B934C9932F9830F3EE47861D4A89264221689041595C689
      D3B538BA92EC2D3C84AB842AE80B57B3537119698AD18AC831A89A1C836B0FC1
      0F1E1B751A55A4A01C8E54388ED7DB9E86E4D9BC6973464686C562A9ADAB037B
      0E0D7BF0A187162F5EACA59D19EEBB40444444F463754468DE5FC60854535373
      CBCD7FDCBE7D3BCBF3525C3A79E6CCC211239EFDE73FA74F9B06467CC3FA0DE9
      19993939F9B158488AC7543C9151492A7881287AA6E23A725A09BBFDA7A02854
      DF59A3385EB4A479748DEFE0DC6D36974EA76B6B6F32198D33679EBC79F3E6DA
      7DFB8A4615C562F18ECECE50303065CA890F3EF430505E33F6C37D1788888888
      7EAC8E08CDB5B4BA80729FCFD7D3D3F3AFB7DEFEDBDFFFC60B3C60DA6CB19CBE
      70E1868D1BC1232F5A74FABE9A7DDB2BB76564E482229100ECA585DD2945D568
      4EA152A014E2BBBA3F6E4E6934D74AC8D1F81F9A5A8E3C3BBC6AB3394541EC6C
      6F11447EDAB4E95E6FE7E64D5B00E570E4DDBB77F33C0F47BEF1C61B2FBCF042
      380E409FD09C8888E838D011A779201058BD7AF5A38F3CE2F7FB550ADE928B8B
      8BD3D3D256AF596BB55A4E3A69466D6D6DE5B6ED6EB7273B274F4EC4C3A100CE
      0643F74659B4F2CE14AA1BAA6AEE1C90AD711B5717A2718D3A1C4B575996B3DB
      DDE0D03BDA5B4C66E3E42953BABC5D1515156563C7666666AE5CBD5AC6C59526
      4D9A7CD7DD77399D4E9C0292D09C8888E878D0918DB46805A35B5B5B5F7CE185
      E5CB9783934EE052CE93264E74381CCB57AC48713A67CF9AD5D8D050BD630780
      3937770445276539168FC98A920442238AE3C98E035AA9E281509AC2F16E8652
      C1A8A3C542BC68329925291E0D8752D33CE3C78D6B686CDCBC69735656564971
      71F9FAF5C1205A776AB1587EFFFBDF4F993245CBE52B8A22A1391111D171A023
      3B0A0A34F77ABDE0D0C120BFF8E20BEDEDED40E124AE897122E6E9CA55AB5C29
      29230B0BF3F3F35B5A5BB66DAF32180C56ABDDA037C4E351F8874A4BF7552EC5
      B3CD71A37B17A3AA3875A2A8371881E63194B337EE723A4A4A4BE10341636363
      CDBE7D02CFE7E6E642BF823E19A82AC3B2975C72C969A79D6602F0F715A426A3
      A0444444C7818EE00CC54824A295A3EBC45ABE7CD9471F7E049E1DB691641918
      EA76B9027E3F9A5CAE2AC0DCE9D367300C5DBEAEBCB3D3AB3798AC569B5EA743
      4E1FA7E35251201D79F4DE5C8DA8BA90C8F3BCAA50125294E739D42B14E4EFDC
      B9ABBAAA0AB69E3B674E281CDEB06103205BFBC4B0E88C33CE3DF75CABD56AC6
      D28ADE119A1311111D073A82AB87B4D2455AB00504C67CC5F215CB962F93E371
      3825D0966318B44694A12905509B6039766C69E9F80913C2A1D0BEDA5AD82516
      97189AE5C07DEB459C71179586C3C7579524623C3CE179D66EB766676765A467
      F87CDDEB376CF07575712CEB76BB67CC9851BE7E7D5B7B3B74124A3239E3A499
      679D7596CBE5B2D96C5ADD3BAD1A35A1391111D171A023B8B23F168B813D0F85
      425D5D5D5E2C00FADAB56BD7AC59130987F13C1434C390A67AC3E0D01059962C
      66CB9831C5F905797A51178946BA7B7AC0BF87826119A7E55211BE0520B8C1A0
      B7DA6C4E678AD964646806D0BF73D7AEB6B6368E450971B51546688A3A8D4653
      E145E824162E5C989E9E6EC302941B0C062D5D1729EE4C4444741CE80866DD02
      7BAE015D8BB700CD01EB60D5B76EDDBA7CF9F2EEAEAEDEF9E298A788E978B261
      329194E2715E10D2B15C292E8BD52A8A3A2D8F166A302A7C81D68882F7071B8E
      5D7F5B2018E2054E14F5BDC532F0BA536D19A9DEA02F2E2E99376F9E8672BBDD
      6E329900E5FD75EF08CD8988888E031D299A6B63A1DAFA7EB0E78140A0BBBBDB
      870570AFABABFBEAABAF1AEAEB598E13045E45D911F1727DBAB7F88542A9B284
      126F69D5474D16B380AB09017C35E38F2A5AE0DCB6B0B14E10599ED3A62DF6E6
      5A079B8F4B9B1AF4FA99B3679F38654A6A6AAAD50A6EDEA60D7EEA70750BADDA
      C670DF02222222A221D011A139D567CF07023D180C823107A6C3233CEFE8E8A8
      A8A8D8B87123F05B2FEAE292A4E295422C5E0C8456EEF74E2B47F95B708E965E
      0FAD019FEFCB9E8832A76BD3CF91B9A7B5F302E8619FDCBCBC59B3668D292E06
      8E5B2C160DE57ABD5E43394EE74213634E4444747CE808D2BC1FE85AC8251C0E
      6B33053569EBFEABAAAA2A2B2B9B1A1B79CCD6048E8D50A84C1D86365AB64FE1
      B809B2D0E8A10FBE6CEF6BE84D1C81A1925A3E003C39D2E9704C9C3C79DAB469
      2E97CB643259B0E009A01C9CBE867212632122223A9E74A468AE498B8A684007
      931E8D46C1956B3E5D0BBFC0EBEDEDED3B76ECA8DCBEDDDBD9099C059CD378D5
      27ADF96D1482D12A4FA05FF13792C6621443C7F316159CD7059E1B8CC6B2B2B2
      89132716141468439DDA64442DBAA2A1BCBF26F570FFF189888888864C4796E6
      FD15A2B541512DEAA2CD5CD4A6BBC0630CABADADADAEAE6E534505D8768DFEB0
      27D387DD837C348EBCF476150ACECEC80BBCCD661F357AF4F8F1E33333331D0E
      0750DB88051CEFB7E4FD0116122E2722223ACE7464694EF5015D8BBA68653FFB
      7D3AA05C7B049AC35B5A3EF4CECECE9A9A9A8EF67678026F818B871DE1094ADE
      D2B716546FD00397F53ABD16424975BBF30A0A8A8A8AB465418220800DD7F749
      C0D238DE3B7F8684CB8988888E3B1D719A6BEA9F84AE5586930608801EEF13AE
      098A0ACAC196DDDDDD6D58F0BAD7EB852D35430D2006EB6D3299E0116C786A6A
      AA36AAD94F6D2D97169871ED578DE30303E504E5444444C79F7E229A533830A2
      3D2A78AC52A3B6F6A8715C2B3EA7BD02D2B6A7F1F29F7EFEF6DB6A2D55961633
      41759D07D0BCDF89F7AB3F5643384E444474BCEAA7A339A565CE1AE0D335AC6B
      11987EDBAE3DD77ED5E233DAF498DEE6621C6BF3C47B6B3DE3F88906F47E7CB3
      7DEA8738E1381111D1F1AD9F94E69A0632BD7F8CB4FF89E6CAB5E71AC7B5B07B
      6F730788E92F0B8A9F68B194BE22446C7F5886709C8888E83F41C340F37E0DC4
      7A3FB87B0B3AF7B9720A07670EA239D5176381C77EA0F7239E98712222A2FF40
      FD7FFBBD49A7D77EDDE00000000049454E44AE426082}
  end
  object Label10: TLabel
    Left = 176
    Top = 72
    Width = 235
    Height = 13
    Caption = 'A Utility to Focus Stack with Canon'#39's EOS Utility '
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -11
    Font.Name = 'MS Sans Serif'
    Font.Style = [fsItalic]
    ParentFont = False
  end
  object MSButton1: tMSButton
    Left = 390
    Top = 343
    Width = 61
    Height = 20
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Exit'
    DoubleBuffered = True
    ModalResult = 2
    ParentDoubleBuffered = False
    TabOrder = 0
    DoBrowse = False
    BrowseStyle = fbOpen
  end
  object MSButton2: tMSButton
    Left = 275
    Top = 187
    Width = 174
    Height = 20
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Get the Shutter Button Location'
    DoubleBuffered = True
    ParentDoubleBuffered = False
    TabOrder = 1
    DoBrowse = False
    BrowseStyle = fbOpen
  end
  object Edit1: TEdit
    Left = 46
    Top = 187
    Width = 75
    Height = 21
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Enabled = False
    TabOrder = 5
  end
  object Edit2: TEdit
    Left = 46
    Top = 214
    Width = 75
    Height = 21
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Enabled = False
    TabOrder = 6
  end
  object Edit3: TEdit
    Left = 46
    Top = 240
    Width = 75
    Height = 21
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Enabled = False
    TabOrder = 7
  end
  object MSButton3: tMSButton
    Left = 275
    Top = 214
    Width = 174
    Height = 21
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Get Fine Focus Location'
    DoubleBuffered = True
    ParentDoubleBuffered = False
    TabOrder = 2
    DoBrowse = False
    BrowseStyle = fbOpen
  end
  object MSButton4: tMSButton
    Left = 275
    Top = 240
    Width = 174
    Height = 21
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Get Double Focus Location'
    DoubleBuffered = True
    ParentDoubleBuffered = False
    TabOrder = 3
    DoBrowse = False
    BrowseStyle = fbOpen
  end
  object MSComboBox1: tMSComboBox
    Left = 48
    Top = 310
    Width = 118
    Height = 21
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    ItemHeight = 13
    TabOrder = 9
    Text = 'Use Fine Focus'
    Items.Strings = (
      'Use Fine Focus'
      'Use Double Focus'
      'Use Tripple Focus')
    ListText = 'Use Fine Focus'#13#10'Use Double Focus'#13#10'Use Tripple Focus'#13#10
  end
  object Edit4: TEdit
    Left = 175
    Top = 310
    Width = 25
    Height = 21
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    NumbersOnly = True
    TabOrder = 10
  end
  object Edit5: TEdit
    Left = 261
    Top = 310
    Width = 34
    Height = 21
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    NumbersOnly = True
    TabOrder = 11
  end
  object MSButton5: tMSButton
    Left = 270
    Top = 344
    Width = 61
    Height = 20
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Run'
    DoubleBuffered = True
    ParentDoubleBuffered = False
    TabOrder = 12
    DoBrowse = False
    BrowseStyle = fbOpen
  end
  object MSButton6: tMSButton
    Left = 275
    Top = 266
    Width = 174
    Height = 20
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Get Tripple Focus Location'
    DoubleBuffered = True
    ParentDoubleBuffered = False
    TabOrder = 4
    DoBrowse = False
    BrowseStyle = fbOpen
  end
  object Edit6: TEdit
    Left = 46
    Top = 266
    Width = 75
    Height = 21
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Enabled = False
    TabOrder = 8
  end
  object MSButton7: tMSButton
    Left = 330
    Top = 343
    Width = 61
    Height = 20
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Help'
    DoubleBuffered = True
    ParentDoubleBuffered = False
    TabOrder = 21
    DoBrowse = False
    BrowseStyle = fbOpen
  end
end
EndDialog>Dialog1


AddDialogHandler>Dialog1,MsButton2,OnClick,Load_Shoot_Button
AddDialogHandler>Dialog1,MsButton3,OnClick,Load_fine_focus
AddDialogHandler>Dialog1,MsButton4,OnClick,Load_focus
AddDialogHandler>Dialog1,MsButton6,OnClick,Load_Tripple_focus
AddDialogHandler>Dialog1,MsButton5,OnClick,Runit
AddDialogHandler>Dialog1,MsButton7,OnClick,Displayhelp


Show>Dialog1,r
If>r=2,EOF



SRT>Load_Shoot_Button
Let>i=0
Label>startpos
Let>i=i+1
Wait>.1
GetCursorPos>X,Y
SetDialogProperty>Dialog1,Edit1,Text,%X%,%Y%
If>i=40
Goto>end_of_SP_Loop
Else
Goto>startpos
Endif
Label>end_of_SP_Loop
MDL>Shutter Button Location Loaded
END>Load_Shoot_Button


SRT>Load_fine_focus
Let>i=0
Label>startpos1
Let>i=i+1
Wait>.1
GetCursorPos>X,Y
SetDialogProperty>Dialog1,Edit2,Text,%X%,%Y%
If>i=40
Goto>end_of_FF_Loop
Else
Goto>startpos1
Endif
Label>end_of_FF_Loop
MDL>Fine Focus Button Location Loaded
END>Load_fine_focus


SRT>Load_focus
Let>i=0
Label>startpos2
Let>i=i+1
Wait>.1
GetCursorPos>X,Y
SetDialogProperty>Dialog1,Edit3,Text,%X%,%Y%
If>i=40
Goto>end_of_SF_Loop
Else
Goto>startpos2
Endif
Label>end_of_SF_Loop
MDL>Focus Button Location Loaded
END>Load_focus



SRT>Load_Tripple_focus
Let>i=0
Label>startpos3
Let>i=i+1
Wait>.1
GetCursorPos>X,Y
SetDialogProperty>Dialog1,Edit6,Text,%X%,%Y%
If>i=40
Goto>end_of_TF_Loop
Else
Goto>startpos3
Endif
Label>end_of_TF_Loop
MDL>Tripple Focus Button Location Loaded
END>Load_Tripple_focus



SRT>Displayhelp
ChangeDirectory>%ProgramFolder%
Let>RP_WAIT=0
Let>RP_WINDOWMODE=3
RunProgram>hh.exe -mapid 10 ms-its:%ProgramFolder%\Autoshoot.chm
END>Displayhelp




SRT>Runit

CloseDialog>Dialog1

GetDialogProperty>Dialog1,Edit1,Text,SBV
GetDialogProperty>Dialog1,Edit2,Text,FFV
GetDialogProperty>Dialog1,Edit3,Text,SFV
GetDialogProperty>Dialog1,Edit4,Text,TFV
GetDialogProperty>Dialog1,Edit4,Text,W_time
GetDialogProperty>Dialog1,Edit5,Text,N_Steps
GetDialogProperty>Dialog1,MSComboBox1,Text,step_size


If>W_time=
MDL>No Value has been entered for the time.
Goto>missing_setup_info
Endif
If>N_Steps=
MDL>No Value has been entered for the number of steps.
Goto>missing_setup_info
Endif


Separate>SBV,%comma%,SBVV
Let>SBX=SBVV_1
Let>SBY=SBVV_2
If>SBVV_COUNT=0
MDL>The Start Button Location has not been set.
Goto>missing_setup_info
Endif

Separate>FFV,%comma%,FFVV
Let>FFX=FFVV_1
Let>FFY=FFVV_2

Separate>SFV,%comma%,SFVV
Let>SFX=SFVV_1
Let>SFY=SFVV_2

Separate>TFV,%comma%,TFVV
Let>TFX=TFVV_1
Let>TFY=TFVV_2




MouseMove>%SBX%,%SBY%
Wait>.5
LClick
WAIT>W_time
Let>n=-1
Label>Begin_Shoot_Loop
Let>n=n+1


If>%step_size%=Use Fine Focus

IF>FFVV_COUNT=0
MDL>The Button Location has not been set for using Fine Focus.
Goto>missing_setup_info
Endif
MouseMove>%FFX%,%FFY%
Endif

If>%step_size%=Use Double Focus
IF>SFVV_COUNT=0
MDL>The Button Location has not been set for using Double Focus.
Goto>missing_setup_info
Endif
MouseMove>%SFX%,%SFY%
Endif


If>%step_size%=Use Tripple Focus
IF>TFVV_COUNT=0
MDL>The Button Location has not been set for using Tripple Focus.
Goto>missing_setup_info
Endif
MouseMove>%TFX%,%TFY%
Endif

Wait>.5
LClick
Wait>5
MouseMove>%SBX%,%SBY%
Wait>.1
LClick
WAIT>W_time

If>n=%N_Steps%
goto>done_with_loop
Else
Goto>Begin_Shoot_Loop
Endif
Label>done_with_loop
MDL>Finished Shooting

Label>missing_setup_info
Show>Dialog1

END>Runit

Label>EOF



User avatar
Meryl
Staff
Posts: 120
Joined: Wed Sep 19, 2012 1:53 pm
Location: Texas
Contact:

Post by Meryl » Mon Dec 23, 2013 2:29 pm

Thanks for sharing your script, kpassaur.

User avatar
CyberCitizen
Automation Wizard
Posts: 720
Joined: Sun Jun 20, 2004 7:06 am
Location: Adelaide, South Australia

Post by CyberCitizen » Tue Dec 31, 2013 5:09 am

FIREFIGHTER

ZeitenWanderer
Pro Scripter
Posts: 68
Joined: Wed Dec 07, 2005 7:13 am

Re: Script for Focus/Image Stacking with Canon EOS Camera

Post by ZeitenWanderer » Fri Oct 17, 2014 5:26 pm

Dead cool!! Have you done anymore about Remote Capture?

kpassaur
Automation Wizard
Posts: 690
Joined: Wed Jul 07, 2004 1:55 pm

Re: Script for Focus/Image Stacking with Canon EOS Camera

Post by kpassaur » Mon Oct 20, 2014 4:58 pm

No I haven't. I figured out how to hand hold a camera and shoot a stack of between 3-14 images, works great for live bugs outside. I sell a little manual on how to do it, but I don't think it would be right to advertise it here.

ZeitenWanderer
Pro Scripter
Posts: 68
Joined: Wed Dec 07, 2005 7:13 am

Re: Script for Focus/Image Stacking with Canon EOS Camera

Post by ZeitenWanderer » Mon Oct 20, 2014 6:24 pm

Hm, there is a section, where one could offer own services here.
Have you seen my post about greenscreen? I am planning to publish more around photography in "the watercooler", scripts also, but I do not expect anyone to pay for it. It is rather a sharing in and hoping for further help.
Anyway, your script has been a good one. :-)
Keep up the good job!

Mel_P
Newbie
Posts: 8
Joined: Mon Feb 27, 2017 6:32 pm

Re: Script for Focus/Image Stacking with Canon EOS Camera

Post by Mel_P » Mon Feb 27, 2017 6:36 pm

Hello,

Anybody still around! It comes up with an error on the "triple chevron" coarse focus setting on line 130 (if I remember correctly).

Any ideas? Mel

kpassaur
Automation Wizard
Posts: 690
Joined: Wed Jul 07, 2004 1:55 pm

Re: Script for Focus/Image Stacking with Canon EOS Camera

Post by kpassaur » Mon Feb 27, 2017 7:52 pm

Mel,

I just copied the code from above and opened it in the script editor and it does not give an error like that on line 130. For what it is worth line 130 is part of the dialog box. All this program does is move a cursor, press a left mouse button and keep track of it.

I don't use it any more as I purchased Helicon Focus. In the field on also use Magic Lantern as then it is built into the camera.

Mel_P
Newbie
Posts: 8
Joined: Mon Feb 27, 2017 6:32 pm

Re: Script for Focus/Image Stacking with Canon EOS Camera

Post by Mel_P » Mon Feb 27, 2017 8:45 pm

It does give an error - I will run it on >>> focus setting and check the actual error and line number.

Mel

kpassaur
Automation Wizard
Posts: 690
Joined: Wed Jul 07, 2004 1:55 pm

Re: Script for Focus/Image Stacking with Canon EOS Camera

Post by kpassaur » Mon Feb 27, 2017 8:52 pm

If you find the error feel free to correct it and post it. As mentioned you can now do this with Magic Lantern which is a better choice as it is in the camera not on a PC so it is every where you go.

Mel_P
Newbie
Posts: 8
Joined: Mon Feb 27, 2017 6:32 pm

Re: Script for Focus/Image Stacking with Canon EOS Camera

Post by Mel_P » Mon Feb 27, 2017 9:12 pm

Thanks. I will look at magic lantern but I like this program. I have just run it again on `>>> setting and get the error box

Error in autoshoot.exe. line 1073 - invalid numeric value for mousemove command

It's an information box and I can ok or abort. An thoughts please?

Thanks, Mel

kpassaur
Automation Wizard
Posts: 690
Joined: Wed Jul 07, 2004 1:55 pm

Re: Script for Focus/Image Stacking with Canon EOS Camera

Post by kpassaur » Mon Feb 27, 2017 9:28 pm

Try this - the code above didn't contain that line this one does. I also have a couple of other scripts for photography that I may post. One renames photos and organizes them by the time and date taken. Actually a little more to it than that as it will also rename the corresponding xmp files for Lightroom. So you can standardize all of your lightroom settings.

The other one checks the compression on tiff images in folders and sub folders. If they are uncompressed it applies LZW (lossless compression). What was happening to me was when I use the Nik tools with Lightroom on occasion I would forget to set it to LZW and I would end up with a 100 meg file. Anyway here is the code to try

Code: Select all

// COMPILE_OPTS|C:\Program Files\eDocfile\EOS Auto Shoot\Autoshoot.exe|\\X-SERIES\keith\Icons\camera.ico|CONSOLE=0|INCLUDES=1| /NOSYSTRAY
RegistryReadKey>HKEY_LOCAL_MACHINE,SOFTWARE\edocfile\EOS Auto Shoot,AppFolder,ProgramFolder
Let>APP_TITLE=EOS Auto Shoot

Let>comma=,

Dialog>Dialog1
object Dialog1: TForm
  Left = 1466
  Top = 109
  HelpContext = 5000
  BorderIcons = [biSystemMenu]
  Caption = 'EOS Auto Shoot'
  ClientHeight = 376
  ClientWidth = 496
  Color = clWhite
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = True
  Position = poScreenCenter
  ShowHint = True
  OnTaskBar = False
  PixelsPerInch = 96
  TextHeight = 13
  object Label1: TLabel
    Left = 127
    Top = 190
    Width = 134
    Height = 13
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Enter Shoot Button Location'
  end
  object Label2: TLabel
    Left = 127
    Top = 218
    Width = 124
    Height = 13
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Enter Fine Focus Location'
  end
  object Label3: TLabel
    Left = 127
    Top = 244
    Width = 138
    Height = 13
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Enter Double Focus Location'
  end
  object Label4: TLabel
    Left = 20
    Top = 121
    Width = 453
    Height = 13
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 
      '1 - Open EOS Remote and Focus on the closest part of the subject' +
      ' with both windows displayed'
  end
  object Label5: TLabel
    Left = 20
    Top = 141
    Width = 399
    Height = 13
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 
      '2 - Set the position of the buttons by moving the cusror and wai' +
      'ting for locked display'
  end
  object Label6: TLabel
    Left = 20
    Top = 160
    Width = 386
    Height = 13
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 
      '3 - Enter Small or Large steps and the amount of them and the ti' +
      'me between shots'
  end
  object Label7: TLabel
    Left = 204
    Top = 313
    Width = 48
    Height = 13
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Wait Time'
  end
  object Label8: TLabel
    Left = 299
    Top = 313
    Width = 79
    Height = 13
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Number of Steps'
  end
  object Label9: TLabel
    Left = 127
    Top = 269
    Width = 136
    Height = 13
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Enter Tripple Focus Location'
  end
  object MSImage1: tMSImage
    Left = 16
    Top = 8
    Width = 449
    Height = 105
    Picture.Data = {
      0954506E67496D61676589504E470D0A1A0A0000000D49484452000001EF0000
      006808020000005729EF4E000000097048597300000EC400000EC401952B0E1B
      0000000774494D4507DD0C140E1F2E63EDA6C30000000774455874417574686F
      7200A9AECC480000000C744558744465736372697074696F6E00130921230000
      000A74455874436F7079726967687400AC0FCC3A0000000E7445587443726561
      74696F6E2074696D650035F70F090000000974455874536F667477617265005D
      70FF3A0000000B74455874446973636C61696D657200B7C0B48F000000087445
      58745761726E696E6700C01BE6870000000774455874536F7572636500F5FF83
      EB0000000874455874436F6D6D656E7400F6CC96BF0000000674455874546974
      6C6500A8EED227000042774944415478DAED9D077C5455DAFF6FBFD36B6632E9
      8D10200901A448112902A258B1BDBAAFEBBBEABAEF16EBEAFED7AE6B59CBAAFB
      EE5AD6B276ACABD8D62E1D09106A126A48EF9349A6CFDC3B73EFFF39E7262160
      2C6030C09E5FC8643273CBB9B91FBEE737CF39E7796855552922222222A2635C
      34A139111111D171204273222222A2E3414739CDA16DF4F76CA1AA344DFFB0A3
      111111111DB73A4A69FED5975F6EDBBEFD8C3316793C69D16834252565E0BB8A
      A2C8B2ECEFE9696F6FFFECF3CFCF3EFBEC828282E16E32111111D170EA28A5F9
      534F3DF5D69B6FDE74D34DB366CF0E8542312C8EE3E0AD4422E172BB4541686C
      A87FE79D77D7AE5973F575D7CE993D67B89B4C444444349C3A1A69DEDCDCFCF4
      3FFEF1C1FBEFCF3DE594871E7E185E79F1F9E7FFFEF8E334CBCA923479D2A447
      1E7DD468346ED9B2F977BFFD0DCF09A72E5C38E18413C0BF8F1B376EB8DB4E44
      4444343C3ABA68DED1D1F1C5E79FD7ECDDBB6BD7AE86FAFA9CDC9C9B6FBBCDA8
      D7373537DD79E75D9F7FFE456666FA837F7EE0EC73CED51B0CAB56ADBCFAB7BF
      B3D9ED1969690CD8769A9A79D2CCB3CE3EDBE5720DF77510111111FDD43A8A68
      DED5D5F5EA2B2F575556D20CD3D6DA1A89449D4EE7C42993F4A268315BA444A2
      A3BD2325C5919991994C262D56EB9E3D7B5F7BED3586A153DD6E4110DBDADB52
      9CCEE9334EBAF4E73F174571B8AF86888888E827D5D142F37038FCE28B2F6EDB
      B285E7B95028545B5BC7308CC96412F402AD52F09C17445110A0C1896482A668
      8E6769856A6C6A0E04FCF178DC6EB75B6DB614879D66B9A9D3A65D78E1853A9D
      6EB8AF89888888E8A7D3514173F0DAEFBEF3CEC7FFFE37786A9AA14D46632C16
      976599A254455595A4A228B0097A4CC09304B45851934A22212B2A7A49A1148E
      E5C1D1BB9C0E8665E1955FFFF63713264C18EECB22222222FAE97454D0BCA9A9
      E9C1871E8886A3E0C175A290979FCFB22C401C7FA107F0E309047360B70C3F64
      F82DA9C8E82D7803409F90E252524DEA441D4DD3B178FC8409275CF5AB5F117B
      4E4444F49FA39F8EE6702230DA2CC3F4BFD237F530BAF4DDA59B2A2A588E85A6
      E874FA82BC5C78379104038E8C3876E4E0C493AA9A047403D915ED4702411D09
      131DD88EAC3D4DC3339D28DE7AC79D1919E9C3FDE725222222FA89F4937AF355
      2B577676760643C1782CCED04C737353A7D7DBD3DD1D8FC74D26134D23E2EB0C
      FABC9C3C06433909244F6A34C73E3C09AE1CF9F37E8063AE2735C68337177901
      68AEA05E833AEDB4D3274F99120806635124BC5C141DD36E778C19335AAFD70F
      F75F9E8888886828F543690E2C6558F67B378B48923F1605030E40ED894663B2
      CC327444927DD108E0F4F3E79FFFEA93CF544A0557EDB03B0C063D05F4A5199E
      E32C160BCB3260C4F540F3DC02ED8C40728C732581422CC88B2751EC3CD18B76
      458BB2A0500C8ABD284951403457E19A148AE3389AA23756549C30F184F3CFBF
      80E3584AA56077BBDD268A82CFD7ED72B9C9FC742222A2E3463F88E6EFBDF75E
      5B5BDBC5975D262513DDE130EC00DEB92B1C8E2500D62C20B53B1A019A02AFC1
      179B449DC871C04DD8C6ACD3B134036F1944119EDF7BE38DD595551CC703D08D
      4623405C459958E0688C4E146916FA00C560308C28180120C6239F5AB8050555
      92BD284FCAC9848A03E6687D3F7E078F88A25F591E084E69170487AAAFADABD8
      BCF995975FBAE467FF3DF072E0D380B7AB0B3E19C8B23C67CE5C6640F0878888
      88E818D5F7D01C10B974E9D237972C299B317DE42973819A1651671404855239
      86B11B8CF008903508A2050F3902C105B0C120B0DC071E4A8A46FFE717BF686D
      69894B1200D46AB5C2A34673D816F642216F55311A8C85230B81E61ABEB5A88A
      82432998EEE845B0E2006B590B9ECB4073C479F886AE05E7DFC23D04C3D6D4D6
      6EDEB265F139E7FCFDF1C73D6969075D1AF408EBCBD7B7B6B69C79E6595ACE00
      222222A26357DF4573E0E39BAFBFFEDED2F7743AE1A69B6E1A5352FAC38FDBDD
      EDEBEEF2F903815028084F3BBCDEAFD7AC6968686058C666B581298E46A3BD0C
      A571B405F88DE3DA469369E4A82286A265347D454DC8329E9F083F1378820B8A
      B4A87DAE5CC16CD79C3A7C43F780BC39A639CB710D0D8D5BB66D05AF7EFAE98B
      7EF5AB5F8D1B3B363D33736023B76CD97CDD35D7FCF297575D74F1C524112311
      11D131ADEFA2F96B4B963CFDCCD36693A978CC987BEEB997E5F981EF8643A1B6
      B616AFD7D7DDD3DDDDDDE3EBEAF2F9BA7CDDDDA15038E8F703AC01C0C0DC6834
      160A0602C1A0DDEEC8C9CE8EC5623E9F0FACBDD3EE409116747A3C6A49219AC2
      2E46A371747131D05D96A5849CC091F3A42425904D47244FE0E9E78AA40D83CA
      28C0A260A2835BA77097006D53F0A704F824B1775F4D5B7B7B381C81AB281B3B
      B6B4B424372FDFE970180C86969696B7DE7E7BE7AE5D534F3CF186DFDF70CA29
      F386FB5E101111111DBEBE95E65F7CF1C55D77DE09EFA6A6BA6193134F9C2AA0
      C1435F6B4B33605B8E4BB1780C301E0C85A3B1183017F84BE364E446B3B968E4
      C89CAC6C4E10BA3A3B9B5B5AFC7E7F08801A8D46226181E7539CCE8CAC2CB3C9
      0CEC0694C3AB407C146DA15174C562B58E1E3D5AA130E7D11828B2DAFB89AD6A
      BF50689EA216345751143D1E8F85C35178049A6BB11B2916F37ABD406D292E41
      5F120CC3770876E05856144596652391087408999919F979F95999997F7EF0C1
      CC039D3B111111D131A4C169BE63C78E1BAEBFBEAEAE2E3323C360D0B7B4B602
      0A6940A414CFCEC9D1EB74B5FBF6711C6F3499396030CBA25039A231A333E8CB
      CACA468C18D1D9D1B165CBD6CD5B36B7B7B5C6E584B69453AB2C0130E5400C23
      C9B2A8170B72F305410456433B048ECBCCCE02176F32E87951A02906350F8762
      E8BED21540776DA853C14F30EB13E170D81F08D4D5D647D064449A016B2FC9DB
      ABAA60778E61059DE074A618743AB4CE08856C92F02E34C166B3994C2620BB14
      8F9FB3F8DCEBAEBB7EB86F07111111D1616A709ABFF0C20B8F3DFA2860D1ED72
      0B22DFEDEB06708643E105F3E7DD72EB6D609F5F7CFEF9E7FEF95C2C86E689F3
      BD111834189991915E3CA6A4B9A971DD86F53B76EC04DFCD72AC161AEF9F3AA2
      62513853B9C7EDCEC9C981F7553CE069B558539C76A7CBC5B24C2C1603678EB0
      7D6013556CBFD1E4740A511BFA109D28E2987AA2CBD7D5D0D0087D006CC1306C
      5B6B6B63733374347DBBAB66930961DDA0872766B38565D89814078B1F97A4B4
      34CFC37F79242B2B6BB8EF08111111D1E168709ADFFCC79B97BEB7D4A8D73B9C
      4E8E67BD5E5F3C1ECFCDC9BEED965B8D6613B8DBA2A2A2F7DF7FEFDD779786C3
      A1503084A6A2ABAA4EA7CBCDCDEDE9F1AF5B5FDED0D8909013BDA6BAAF1A1C87
      27AE68CFB5F36667663A5352D0C494A402504E4DF38882A0249540280874A771
      3F705035395533E878B013197786868F06006851A7E33976D7EEBDB1680450CE
      D234740FF50DF5C150B8BF23D12236F044AFD759CC16B7CB65B7DB059E97508C
      3F71E9A5975E7EC515C37D47888888880E4783D0BCA9A9E9BAEBAEDD515D6D34
      18ED0E878A2D6D5E5E5E3299CCCFCF2F2A2C04F4D6D5D6E5E5E61697963CFFCF
      E73FFBEC53A3C90C3E39D5E59293898A0D1B1A9A9A818E16B379F6EC59B367CD
      B2D9ED959555EF2E5D5A535303469EC5AB9080AA0683213323036C38A2B9A2B8
      5C6E87C301BE3A1C0C029A01C160CFB595FA149A71C8F43D415D0486320EB4E0
      84013CCF415FC2F2426B4B8BD7DB298A02B447E0F84EAFB7A5B58DFDC6BA270D
      EBD0189D2838ED8EACEC6C68707149C93DF7DEEB743A87FBA6101111111DB206
      A1F9B265CB6EBFEDD670282C0882D5664B26C0898F341A4D1B2B2AC68C1E5D5A
      52128D45BF5E571E8944169EB670D3C68A3D7BF688A268321BF53AFDA6CD9BEB
      EAEA01CD3939D9575E7EC5A245A7333443B1B4516F686E6ABAFFFE3F7FB96C59
      5255198C63C0BD2B25454EC88220A6A6A696958D85933636348C1A3DBAB07044
      7D7D3D0A85D7D501E201B5F158CC6CB6C08EC160102D25753ABB7C3E20380237
      45F5F404C0C46767E7F4F87BB66ED91A9725403FD87CB0FCADED6DB2240F3A01
      11F504D8AAA73853323333E083C52DB7DE32766CD970DF14222222A243D62034
      7FF38D37EEBFEF3E0EEC2EC3D8C02CD37434160B20F9019A921407045A2C1697
      DB6DB558D09C711C4FB13AAC3D5D3DABD7AC01D4DAEDB6DFFCE6D7A79D7A2ACD
      B01CCB093A31214B668BD9E7F5DD7EFB1D9F7CF6195018E00A961FBCFF888202
      C0775656663412696A6C0C86C2D75C73CDF2E55F55546CCE2F28D8B973E7BC53
      E6C2E9366CD8306BD62C685E634363774F4F764EB6BFC70F34F6783CB80ED1EA
      EAAA4AF8E8909A96168BC676EFD95D5F57DB0AAE9C61FD41248DE683869534FB
      6FD0E9274F9A78FB5D774E9F3E63B86F0A111111D1216B109ABFF2F2CB0F3DF4
      A028EA58867638531C365B5D4383B6BC7E5FEDBE582CA61775191919668B454E
      24186D889365C12537D637D4D6D7C311C696945C7BDDB546A331332BABA4A444
      AF3774B677ACDF586E315BCACBCB6FBBFD0E0A474E9C29CE91230A7373B38B8A
      46415FB1A1BC1CCC787E7EC19D77DEF1EA9225CB962DF77852CF3AF34C455547
      1616565557C3C78248142581819EA6B6B65627EAA04966B3D99DEAFEEACBAF5E
      7BED35BD5E3FA270C48409137C5DBED6B6963D7BF7D6ECDD274B717F3004EDEF
      8BCF50DA90ACF65CFB151EE3F1785E6EEED3CF3C33670E29184D444474EC6910
      9ABFFAEAAB8FFCE52F3C9A73C8586DB682827C96E576EDDC09C01504018CB0D1
      68100411539533180C56AB2D25C5595F57FFD2CB2FA3B9E7AA3A7BE6CC050B16
      A4A6792EBEE467FD218EBABABAD75E5F62319BFEF4A77B7DBE6E41E047158D72
      BBDDC05938570F2A212401B845513CF38C330A4714AC58B9B2B9B1F1B4D34F0F
      F8FDA86BE1E06C9C244B3D3D3DD0025110376DAAC848CF80B35BACE6CD5BB7AE
      58B65C40731F59A3D104ADD289A241AFDFB2756B5B6B6B08A751842EE1BCF316
      C725A9A1BEDEE572EFDAB56BFCF8719D9DDE175F7A094E2A4992C9647AEEB9E7
      162F5E3CDC3785888888E8903508CDDF7AEBCDC71E793421CB0CCB02CD737273
      C68F1BE770D86143B4D6267F445A3ACA1B0EDE16ACB1E6735996EDEEF6FDFCE7
      977EF8E1BF81F813C68F2B2E2E3EFDF4D3CF3EE7DCFEC3C6A291871F7EA8BEBE
      E1E38F3FEEE8F49A8CA692E231B02F1C04713C9960380E8E053856924A565616
      CB320DF50DBC20582D965038CCF33C9C11BA06E0B2A2A8294E676B5BAB5EA7D7
      423D7015E17018655D4CA2848B1C9AE562484B4B0B05839B2A2A02A170341E9B
      3861C20DD75F071BAF5ABD9A63B9CECE8EF9F3E6EDADD977EF7DF781A9D71616
      3DF9E4933FBFECB2E1BE294444444487AC4168BE7AF5AA975E7A69CBE62D0C4D
      D9F17C8FB2B2B239B3678D2E2E8177FDFE9EE5CB5748F1F8A2458BC0A70FDCF1
      B65B6FB9E7DEFB80E61EB77B6451E1690B4FBFEE861BFADF6D6E6CB8E5965BF6
      D5EEABD8B405786DB359F37273E5844CA1C214895E07AFD2406D2D2B8BB66608
      9EE0D45A281D2EDE40452B8F781EA5F71285FE83836FC745E714A537368EF23C
      BA525C2E57CABAAFD7B5B6B74207E0F1784E9C32252EC5BBBB7B5253DD357B6B
      8A8A8A7CDDDD5F7DF5159C549665F0E6CF3CF3CC79E79D37DC3785888888E890
      3508CDB76FDB565757FBE8A37F0D04FC4043A0F9D8D2D2934E3A695451515D43
      83C36EDFBEBDF2B5254BDADADA7E77CD35F3E7CFEFDFF1A107FE7CD3FFFBA328
      8A3CC7391DCEF48CB4CB2FBFE29C73CE7638532A2BB73DFDD4D39F7EF6692814
      EEF2F95886CDC84807A04B723C914018D61AC1E0F6E0C42C714902D4270C4683
      C5644DCB48331B4C0AA508BC08DD49ABB73DD403863B047D0098774110D15A54
      6D9CB377C52882BA5ED4E515E4793BBB366FD922E3EC5D9224F50F87C2E7096D
      CA23B878F8154DA9B4589E7DF6D973CE3967B86F0A111111D1216B109A7FF6D9
      679ED4D4BFFDED6F1B366C484BF3646767979696CE9D7B0A5E5CAFDA1D29FFF7
      7F7F7DE9E5979B9A9A4E983061F59A355AF94D00E595575CF1F22BAFC0AFC818
      5314F09517C54993266666656EAAD8B47BCF1E9A422B7A683C043A6AD428191C
      BE84D267690846CBF1E3923F1030E87469E99913268C9F3777EEF80927887A9D
      A813C13E2304332C98EB6834027B556EADFCE0C3F72B2A2A5A5ADB242906DCEF
      2D04AAF625F15229B7DB9D9E99BE72E5AA2EAFAFA4B8382B3B2B128E98CDA650
      28643299C1F5AF58B1120770D0BC1D9BC5F2E24B2F9D79E699C37D5388888888
      0E5983D0FC85175E183D6A547D6DED9FEEB9272333332727A7B4B464DE3CF0E0
      6A5B6BEB5D77FF69D9F2E5405E70D4E99EB4E5CB97158E2C82BD76EEDC3979F2
      E4582CA6E5B9D50E8B739227353BAC2D04A5718CDB6236E7E7E77779BD38D2A2
      A27CB814E5F375B3343B6FFEBCFFBAE0E2790BE6D30C755024A75FD148486F30
      5128161F85F3BCF7EE7BEFBDBF74E5CA15DD3DDD292E27CB72F8ECAAA2A84683
      A1A4B8A462D3A6DABAFAE9D3A719F406AFB773E20927C889845EAF07A6FFEB9D
      7751AA473C397DFCF8F17F7FFC71781CEE9B4244444474C81A84E68F3FF14466
      BA67F2E429E79DBB58D4EB0B4716969494CC9D734A5E5ECED5BFFBDDB3FF7C9E
      4569B6B8783C3EB2B0705DF93ABBDD017BDD74E38D8F3CFAA8866CED980316F1
      53DA536DB50E3C8E1C59085BFABA7CA8E61B8A9B277D3EDFF8B271D75C7BDDE2
      C58B7BFCDD3B76547BDCA9A3C61403F1239148AA2715CED9BF88B4ADB5C59396
      0E06BFB5A5195E713A5D80F575EBCA9F7DF6D90F3E78CF6836EB74224EB58B8A
      4A17148CE809F82B2BAB3D1E777A5A7A2291808F11144D89822E168FEEA8DE09
      563D0FAE2D2B2B3B27E7F22BAF282B23E5E58888888E3D0D42F3A79E7A6AD7CE
      1D7F7EF0C1575E7EF9C9279E04944F9C78C28C1933C68D9FF0D8A38FDC7CCB2D
      28812DF2DAEC5F1E7EF8EA6BAE85E79F7EFAC92597FCACBBA7472F8A369B0D6C
      AF36955092D020A716CA8073F13C97959909FEDD6C31C3BBD01F288944301832
      1A8D3FBFECB2DFFEF677F1586CC58AE5D9D9593B77EE9A3D77F6B871137ABABB
      A391684A8A133A102D1B4C2FCDD33380E60D0D0DDECE0E8BD9DAD4DC047B39EC
      297FF9CB438F3CF6186C64321AB5FEC4E9743A5252366EDC080D4BF778541AA5
      4087BE84A5698EE58D46BDCD6EF7A47A24390E7F086843C9A114E5202222223A
      4A3408CDDF7FEFBD679E7EFAFC0B2F38EBACB35E79F995CAAACAC211234E9E39
      736CD9381583FBA3F73F088443A79E7AEAA597FE1CB67F6FE9BB37FEFEC6BDFB
      F6A1F14F96B5582D2693C96030C2AF281E1D8D84C221F8157C71467A1AC7F115
      9B36757575F97B7AB04D96A79F34E3E20B2E2A1B37AE624B45F9D7EB3C699E39
      73E7ECACDE397DC674E83FBABB7DD168D46EB30B8200404729D155D5EBED4CF5
      A401CD6B6BF705FC01E81B6AF6EE6D696E195158E8B43957AD59B5E4B5252B56
      AE8446C0367ABD0E00BDB1A2C26EB72F3C75814E073D8DDC57D742C559BD9484
      9C0847C246A3E99A6BAE2F2A1A39DC3785888888E8903508CD57AD5AF9C4134F
      0083172C3CF5A28B2E4A2693D5955506BDBE646CA9DE601CB8E5CE1D3B96BEB7
      F44F77FF29168F036DB58489607B8D2683D564B5D96D568BC56AB3EA0D7A9DDE
      80535C89DECECE6DDBB637B7B602CD61AF5F5CF68BDF5DFDBBE79E7B16B8ECF1
      78E00099995993274FDAB7B766C1FCF923468D4AE21A4382280E3CAF96271D9E
      B4B434FBBABAE0DD9A3D7BE09381D96A59B372756AAA67C1FC0577DE75D75BFF
      7A4BA743D35D264F9ED2E3EFD9BD6BF7198B16B93DA9F158BC2F2BEFFE9FE168
      C4E572DD74D34D1919A466051111D1B1A74168BE76CD9A7F3CF5149E6D92C8CF
      CF9B3D676EF1E8D17129964095399540281C8F46C1C9EEDAB9EBE9679ED9BD7B
      3772CD03921432346D341ACC663398749BD96AB65A01EEA2A817795EE0B9B6F6
      8EAAAA2A54902810B8F0BC0BAEF8C5E54F3EFD64F58EAA9145A3B23232239148
      C1888273CF3D170E08469B61D8EFBD00D82510F0373536565556A7B89C6BD6AC
      85E30397AFBAF2AABBEFB9FBC38F3E828F082525C54E87E3B3CFBF38EDD48570
      7C687FDF30EDFEAB0F8682E9991937DF7C6B4A4ACA70DF14222222A243D62034
      2F2F2F7FF2C92765294E334C301854924920605949592C16F3FABC9D1D9D5E6F
      675B7B5B6D6D5D77770FF05046E5DEF61F8446D9C3F580711BF8728BCD643619
      4D469D4E2F02CB59AEA9A565CBD62D4D4DCD6EB7FBEE3BEEFAE083F7D76F589F
      9B97EB72A7E66465E5E7E7CF99336BDC84898778152A58F8EAEAEAAEAEAE4F3E
      FEA4A1A161DFBE7D63CB4A172D3CE3B63BEFD8B67D5B767656D9D8B1CB96AF9C
      3C71C268D433491AC7F7375B45342F1C5978CB2DB719BE6522CD4FA22AAAA404
      1E0E57C55465253C1CACB72EA02E78EBD08EF4A64A9DFF2D6F1DC6D17A5B7727
      5579C7D0FF9586ECB0C79A86FF46101D5D1A84E61B376E7CF2892722E130CDA2
      023FB22447A211555101EEB0A92C49F1583414898443B8D4663024A3959C07E4
      9BD589A2C564B25AAD16AB153CBAC96400BE7360CD59B6AEBE7E6BE5B6B6D6F6
      99336738EDCE7F7FFC71414181C9642C2D291D3F61C2E4C9930A0AF26D76C70F
      71E507A9A3BD2D140C7CFAC9A7ABD6AC6D6F6BAFD9B7F7B485A73BECCE871F79
      18CE3CEBE4993B76EC74A7BAC6958D93504218455B68D45BF582A242A1E0D8B2
      B25B6FBD9D61E8433DF5D0E908D0FC029A3AACFFF2D4F96F526F7E83E8877D34
      6AE82072570975E7817FA33B2BA93B8A0FF368C7A88E861B41749469109A6FDE
      BCF9F1C7FF0E6444930C71803AA1A0542A920C7E5D8A4968F54E3412098511CD
      63F1585F147B3F04359A9BAD88E720A3D1A8D7EB7896E704BEB6BEFEEBB56B6D
      56FBE9A79DF6FEFBEF452291A2A2A28211234E9C32392333333D3D232F3BDBE5
      496539FE50AF249990E1834375F58E4D9BB69497AF03ABDED9E9BDF8C28B6B1B
      6A3FFCF74753264FB45A6C70B9999959289D8BA22DFFEF45395C02744F274E3D
      F1861B6E1CD6DB31D434FF26F80E490739F4C33683BDAD1B1288BC45D1177CE3
      C5F329F5CD1F7DE4634747C58D203AEA3408CDABAAAAFEFAD863BEAE2E8665E0
      4D7864284A417109459B85128FC7A391B03F18F4FB03E15028168F2A0AD55730
      0E7D8B020F96DC6235DBCC5693D96C34A1615096E544BDAEA1BEE1D3CF3E3BFF
      BCF35B5B5BD6AF5F5F347264D9B8713939D96E972BD5E3C9009AE7E6BAD33C3C
      2F1CEA9500CDE1987BF7EC6D6C6AAEAFABDBB869D3FAF27582205E70C1052FBD
      F232F427A79E7AAA144315A7555AA5F67F5108E68A0A9DD4FC050BAEB8E2CA61
      BD1D03683E04FFE50EEC1BBE23783250034971803D3FACA30DB9BECD930EFA49
      62C055EDEF037E50106960F73068FFF1ED1AD892AABBA8923BBF7F9743FB630E
      E18DF8317F961F717587B9E38FB811FF191A84E6BB76EDFAEBA38FB6B5B531B8
      3E32A315F7C48B8214554DE2129AB158D41F0876F7F40403C15038A42553EC07
      BAC873268B05806EB7580C2613F6E67A8EE74441A8AAACDAB173E78C1933BE5E
      B74E1485B2B2B2348FC79502284F45531833320AF272D332B3E8BE4A9E9AB4C2
      6FDA2A2406EB9B57929025A0F9EEDDBBEBEA1B3ADADA5BDA5AB76EDDB261FD86
      D9B3E6ECDEBB27168BCD9B3B17A5F142B959B49AA27D570E17A520B7BEF8BCF3
      2FB860786FFF11A3F9211CEDDBF61ADAB61D96BEDB937E17D78683E687E4A00F
      2158348437E247FC590EFBEA0EFFCF4268FE3D1A84E6FBF6ED7BE42F7F696969
      61185C619966686D7636A639801B700E700C0603BEEE9E5010681ED6684EF5B9
      7381E7CD98E6568BC5684238D7EB751C2E09BAAE7C3D8B2CBFBAAFB66EE48811
      E959994E8723DD93E64E75A7A7A783311F397284C96C0D04C3DDBEEEA6C6E65D
      3B77EFABAD6FEFF0F6F8FD70663884C366733A9DD9D95913279F909E9E66B55A
      6C36ABD6F2A6C6FA9DD53BEB1A1B5B9B9B5BDB9076EEDCD1E3F3435F129362D3
      A74F83C6A05C8CB83C74AF2FC75457920AF41F975C72C9A2458B86F5761C2334
      A786C59B1FF89F59FB7F7E4028E93BE22D3F3DCD0F3168767837881A2E6F7ED8
      57F763FE2C84E6DFA34168DED8D8F8D0430F3436347234836A78323826DEBB5E
      5F492492922CC522B15028D8ED076F0E300F2714A53F6A0E4F80DB663C0A0A4C
      472C3718F19416B49868E5AA553CC7C56539E8F7178C284871BBC09803CDD333
      D2B3B333CD268BD7DBBDBD724755F5AEFABAA6602824C5E389A482C6606914F3
      C1C957E86452815601D99DCE94A2A2FC2993274D9A3421BF2097A1943DBBF7EE
      DEBBB7A9A9A9A5B5A5B3BDA3B5ADA5A5A99565D82E7FF7D4A9533DA9EE849CF8
      C6F444E8A292BC20FCCF2F7E71CA29A70CEBED18DAB8F9D0D2FCB0C3B5DF32D3
      E6503538B80FFC8B7DEB7FE01F1752F8A6FA033E3FE48CDFE1BB7FF81907DFEB
      90F4CD1B71D87F96C3BEBAA1FEB37CFF8DF80FD220346F6F6F7FF0FE3FEFADDD
      C7E39CB1D899236B8E82E3B4222713525C8E4581E621F0CBE0CD0FA23948E078
      B3D964B698AD88E666BDC1208AA220F0B07F674727ECB2B7A686A56930E62EB7
      DBE3717B5253CD265B5C4AECD953BB7B774D2814460741796E19551BA5ECAB00
      879BD19FF336A9288A9666C06EB3158E2C983C697C56565A341C6A6E6D813E09
      BC797B5BBBB7CB6BB73B58964D75BBA15560C3298A3A2070AE52E0FA7546E3FF
      FEFAD7D3A64D1BD6DB7174D39CFA1153297EE4B4938322AD03D173C05BDFD673
      0C2BCD87E48CDFD68043D5B7C52E0E9BE63FD18EDFF77720341F94E67EBFFFFE
      FBEFAFAEAE16780ED788D002E7DADC0F454EC8B29488C7628150C8EFEF090502
      E1485439F02022CF9B80E288E8F08DEABAE194B61CC3B0F0EBF6AAAA0D1B363A
      1C8EF48CB4541710D6A2AA6C282C43BF108FC71886D38982A224691A05C7E109
      D05BC17350B45600CD591439A77132742D6642419B2409AD4745D9033C4E8B45
      1F09055B5A5A80E7AD6DAD60FD8B478D8AC5E349D42BC00E341A0855286D3814
      FE4909193A9E1B6FBA71B893B41CF534A77EC4848AC38F097C9F011F68DB07BF
      D2E38EE6D490DC88438C5D109A1FDD1A84E6B158ECBE7BEFDDB279B3A8D30124
      81D45AE01CB655926A32918C4B126C03961CB81F0C0422D18369CE739CC964B4
      607F6E341A11CDF502CFF260D061F7B5EBCA5B5B5B80E6A83290C3ADD359A404
      CAA5851361E1CA74342D2593098A460BF0695587579A02BB39F8AC800A354333
      A838E2BBCAA90A07A7A350302889ADBA96BDD16A35E8443612F677767A5BDBDB
      127262F2A449F011013CF8FE792CFBE728A249F40EA7F3F63BEEC8CBCB1BD6DB
      7134C7CD0F4BDF3A43E65074A8F32C07F91C703CD2FC9034F88D20343FAE3408
      CD6559BEFFFEFB36AE5F2FEA50B54CEC8E15146D6128A07922999425793FCD83
      81C837BC39CFB22620B9C962B26843A07A51AFE3395EAF13DB5ADBD77CFD3578
      7C93C1989F57E849CFE6581E4198A65854235489D17482616C829826086E8672
      00CDC1744B718E66D86442666885A2930C17E7791FCBB425D55639D19348D04A
      924F2A3C72EC34B01B7E40D7108D063ABADABABCDE4EAFB7B4A4B8A06004F8F7
      81E172B58FEB922CA5A6A6DE7BEFFDF038ACB7E3B8A3F9101CED5089430D6980
      F85B74CCD17CF01B41687E5C69109A2793C9071EB87FED9AB5BC202AC924D02E
      018E3A89679C2701EDC0D4442C1E0F874340F35028148F4B071D826318B3C56C
      42443703CD75A208365F1050D1B75DBB766FABAC64182A272B6FD2095305419F
      90930A62B442719CCAB06374BA31C07A7F4FB0ABA3A5ABA323297B4368E529B4
      0A9AC13238B93ACF9B8D06372F645B6CB6144FCC6EAF1574BBA4843F91D44197
      2303DCD13029CD31EDEDCDBB7754B6B7B56664664E993C594E26B410FCFE8150
      F440C5A5784E4ECE830F3E6C369B87F5761CB9F9E63F78287248DC74BF06DAEA
      C33BDAE105880FFEEBFDF4836F477214F43034F88D20A3A0C79506A1B9A2280F
      3DF4E0CA152B598ED1529383259751B45C4EC4510804F00D3407C2FA0301948F
      F01B07059A832747C3A066B301BCB90E60AE434599557AE3C68DCD2D4D1E4FD6
      C927CDB5DB6D312929D3AC49A7B328090B9D288E4482BB777DBA6F7795BF2720
      4B9D1415603956143896A3FA62F71A87A16106594AA76913CBDA287A6E5AC698
      5125AD766783C114A0E9405C5693B24E00F833D5DBB7AEFB7A95C56A9D76E289
      020EF57CC39AA33278A3C78CBEEFBEFB7B6BD10D9B8EB2B5A007FC7FFB916D3B
      ACB8F901A1E1EFE5DD814EF380D31D6AE37F3C4486FA8C877FE46F68D0B8F911
      9DA138043B7E8B08CD0768109A831E7DE42F5F7CF1254353491C89C675E3C093
      27F1EA7E09AD058DC722910818F3582C8E474A0F10D0DC6834A22150B3C96034
      E975A8B0273C00FABFFCF22B77AAE7B405673A6C29515965F4FC485ECDEFEA5C
      5759B571EFAEAACEF6564932BADDA93939934E38E1A4A953F372B2333332AC36
      FB41A740352BDADBAA77EF5EB67265F9D7EB92DECEF68646B7A2CE1B5B367FFC
      A4405AF6569A0B46C3169E4B28890F3F5E5A5F5B3375DA54578A0B151E4242D7
      8D8248F8021309F9C4A927DE72CB6D0393410E87863C4FCB8F38E0C1F6F6C7B5
      ED70E6B47C079DBF6D8F6FA7FFD0AEE5F92110F909560F1D8686664ECBB0AC1E
      1A4C84E6033438CDFFFEF7FFFBE8C37F333493547061073C37505510DCF15A50
      19475A228160201C0AC762B1830EC132B411E1DC8416F59B8C069D41D409BC28
      0603FE2D9BB79D73E685A3468DF1C7621E937E627757C3968D2FAE5FFBEF2E1F
      EC583072E4B9679F7DE6198BA64F9B4E0FB6E0F3DBB4AD72FB9237DF5CB766CD
      8AAF961573DCD5534E1C7BE2CC1DA999BBE2712BADD437D6BEFDD66BA9696EAB
      C59A4CE072482AC5B28CC36E67794E55D024FA050B4EBDEEBAEB87FB761C991C
      8A87E1D007F95F74D86D3BDCF9E603632C3F3CEEF41D7B0DE13AFB1F08911F48
      AE43EBEA86F046FCB828F6615FDD10FE5908CD0768709A3FF5D493EFBFFF0185
      D64826F667D4029A536A52969372228A688EB26E81C0AA1F740830F5BDDE1C4D
      68311AF406412F701C1F0C061C0ECFCCE973C3AAEA60E851BB367FF0F9278FD7
      D6835B1E3366F4E9A79D76D185174D9878603A5C556D686C68A86F080402F0B1
      001AC30B021CD893969A9797CFB2DCC06D8381C0ABAFBEFAB7A7FF51BD65EB59
      29CEDFCC99AB9F3A6B3D27500979C5E79FB4B437B9DC2E05C7CD199A6E6B6B83
      A3A5A7A729A83A5DF2ECB3CFBDEAAA5F0DF7ED202222223A4C1D4C732D21E273
      CF3EF7AF7FBD8D73A324293CD31B6F0A965605A42692C9184ABC1501C28680E6
      923418CDD10828A01CCD50D4E9789D88F39E1B664C9B27D81DB9B1907153F9CD
      6FBF511E0AA5A479162F3AE3CC33CF983061BC273D138CBFB7A363FD86F5E5E5
      E5DBB757EA0D7A9E174C46A3D56AB55BADDD3D48D1584C9B66033D4A4969E949
      27CD98306EBCD56EE7799479B166EF9EE75F7AE96F4F3F6DEAE8B87DEAB413CE
      58BC232BA7A3A3FDB37FBFD7E16DE3580EAE42AFD7BB5DAEDD7BF6646664D00C
      7CEC502FB9E467FF7DE9A5C37D3B888888880E5307D05CABABC630CC8B2FBCF0
      C61B6F24952488D68C397E00EAA19C5B8904101C68EE0FF8C3C1D0B7D1DC6402
      636E026B6E4043A062322117974D2C9B727296B79D5DF5F9ED1F7DB036169F36
      75EAF98BCF1D37766C6A9A07CEB0BDB2FADD77DE59B376ADAFBB3B140A190C86
      9F5F7A692412696F6FEFECECECF1FB71FCC664B7D9E0313D3DFDEDB7DF6E6C6A
      B298CD80E613A74E5DB4E8F479F317381C0E5F9777D5EAD54F3CFDCCCACF3EBD
      2823FBBF7F734DCF98D28F96BEF5E9BF974A68653F4ADD2508021C3F2F3797C2
      BDD4E5575C71FEF9E893DA41B9DA898888888E09D103675FA3FC538AC2B2ECAB
      2FBFFCEA922588E689642FDD68B476122DD149A2C839101C95700BF67AF381C9
      CD29AD989C01911CBE74F044AFE758C660B52E3AF3FC925874C7BB6FFD79F5AA
      36413865D6C9A72E58E04A75C31937AC5FBF79CBD6D5AB57874261A64FDAA951
      ABF017FEDC40F5AE4DEDD3FED14C45D189E2ACD9B3E7CF9F57909F0FACF7F7F4
      BCF2F6DB1F7FFCF11936C765575DBDD76E7DF6B927BC2D2D82206A6B4AED763B
      B40EF6862BBBFADA6B162E3C4DFB68C21C4AC89E888888E868D0013457D07860
      0260F6E61B6F2C59F2AA2CC90074BC552F55F172CB24B8734992C21114370F87
      42DFA4396C6ED4EB4D6693416FD4E991E0D8A527CEF843D9A4AF5E78EAEAE5CB
      F41ECFDC1933CAC695C90979DDD7E51D9D9D5BB66C8143E3348B6C5F7B14ADD8
      9BB64054A733688114785D92E2B28496E9F7266EC46B5501C1783C3321F0424A
      8A73D2E4C9F3E7CD7338EC5BABAB5F7DF9955304FEF63FDEFEF8AE9D5F7FBD4A
      8FC33EB817C00B4B930ACBB037DFFCC7E9D367C0D1A00184E6444444C79C0EA0
      B996ED169EBCFBEEBB4B5E7D1507556494D6042CB096EF4A416B41D166E0CD63
      115C492E2CC983D05CAFD31B71F64470E6222FCA3C77F582338CD55BAF7CEB0D
      3A2565FAA44979B979ADED6DEBD695373635C1194551EC0F7124510A725A40D2
      BBDD2EABD5062847F913F71F9E4A2492E148A4BBA7ABC7E78DC563D02694A20B
      2D01655102804442A1A89CECAC934F3EB9B07064D5DEBDEFBCFBEE6D638AC7CC
      9C75EF9A556C42EAEB333467AF702C77F7DD77978D1B071C67B148BC858888E8
      D8D27E9A03D400DFF1389A3FFEE1871FBEF1FAEB608125192536E98F7820F38B
      D78202CDA388E62110DA66309A1B8C98E77A7D9265F3DDEE2B525C377CF87E9D
      A24E2A2BCD4ACFF0F9BAD7AE5D1B8A44C071F7A313B9FF6412F6733A5CA9A969
      D013A854425BB7049F09E0F4546F9C85012F2EF0A2208AF0728FDFDFD1D1DAD3
      DDA5A230110787817E80E53968A4280A134E98585458B8ABB161FBAA35B74E38
      61B351BFADCBA767D8FEFCE6C944123E3DDC73DF7D852347B2389E4E684E4444
      74CC693FCD01A312303A1A05A07FF6D9276FBEF1662CBE9FE6741FCD937D9116
      6DF550241246EB710EAC0B0ABFE9C04E1B10CD4551C7E97597E7E7ADDFBC6549
      7DFDE8C2C2F4B4345FB7AFBAAA3A2ECB0357EBE0853C6A76767E4646A64E60E1
      F068263B6A1F8E992B6AFF09F08705345A0B67E2394E6730F1822E1808B5B634
      F8FD5D2CC3C1A660B705910752530A5532B6243B2B73EBDE1A7B73CB051326BC
      EEF7C3278CBE13ABB224E7E4E6DE74D34DD9D9D91C1C4DA723342722223AE644
      F7176EC0353FA570380C40FFF2CB2FDFF9D75B91680CDC3AA5A8034623D55E0B
      2F49B16834180C229AF779F3FE6F3C19510FCE1A804EE9C409EED431C9E463E5
      E5A2D399E9F18482C1DAFA7AE83C06A01C2CB9A213F5999959999999D1288AC9
      2B9456BB0E7FE1A4E60385464859168F93A20BE058DE62B532ACD0D8D4D0E56D
      47A52D681434E1708A769E1772B2B38D66D39EBAFA0B535214B7FBABCE4E03BE
      28B8A2783C76DAE98BFEEBBFFECB66B301CA455104A6139A1311111D5BDA4F73
      AD3E1CD01C1CF7D75FAF7DFDF5D751AEAB4452EDA7399E0782E7B9A0F243D1C8
      C134A7FA800EDBA3480B26BA68364DB0D96BF6ECA9E8E9C94A4D85BEC2D7D5A5
      68CE1A0B7724C9CC8CDCFCFC3CAD0909546D08F71B789412ADF7C1CFA8DE8F11
      E87302CD2258A3800BAB653B471329054134182CD0D33435D6C2A1588E67D108
      290DFBC22676BB5DE5393614BAB2B8E4CB48A4391412692A168B8F1A3DFAD2CB
      2ECBCFCFC7ED35109A1311111D8B3A80E6516CB741DBB66DFBE73FFF190987B1
      2BEEA5B936CB040F8202CDE5382A0D1A4491199466767FE01B1F504534371858
      51F0381CF3533DAF94970759566019BF3F40F5CD31D44E0DE7CDC8C82B2A1A19
      0AF5C46351E82D541C23C7C978D1141A94BE5155F0ACF0BE0A44B8E52CF6E60C
      C77278E812B80E6F711C6B31DBA584525FBF3799907916C8CCC16E700C9E6374
      7ABD3F1C5D98E671A5A77FD0D0A057D5ACACAC0B2FBAA8A4B4D48845BC391111
      D131AA03681E89A0692A3D3D3D7575754F3EF184CFE7034AF6CEF2C6B6186115
      E15C8ECB09291E0B85C25A9C3D89F293A3C83B6C0C38C4A97051D5217856E4B0
      17C9F25DCB960BA29890242D29236CC6739C363DC6ED4E2B291EEB0F74C9525C
      EDEB2DB4B992686A4A6F11E6645F33B5AE053DB00C8B9D39109CC3646700DD18
      EC94C96C4F24A8C6C61A1585597830E649942317DE6422B26C4E2A679596369B
      4D764FDAA40913C6141703C7A1BDE0CD51AE47320A4A4444740C6A709AB7B5B5
      BDFCD24B7B76EFD6E674339A95C64B6E34CECA6839683C128E00CD259459114D
      66F4783C279D74524A4A8AD562412BF20511F868F4F9BE5CBAF48DAA4A91E57A
      279100F175BA245E506A325B4B4BC6298968381A468B93E0C8E81BA553475F1A
      D7B5A2428A06F6DEC14F6813B09C018E637E03A63904739E0376A3DF299BDD03
      D7D2D4B80F686ED0EBE5848C4AD071B4A252CD6D1D0B4B4B2FFDE555D6BC5C23
      26B8051A8C9F68C6BC7FE112111111D1B1A283232DA876734F4F6767E78A152B
      B66EDE1404FB1D0EE34A159AA7464407C602BB2514E48E4AF1782C1A0F8543A2
      4E77C10517CC9A35AB9F89005581E3BAD6AEFDF5030F744B1287288CE6AC0335
      E150D158148E565C5C66B7597ABABB14DC5524B4BC0158DA4A545C27035E0C47
      6349554101104150791E700DD4E6701C05B97206A19C1378A039A7C54900E256
      9BBBADADD9DFD365329AE0F548344253807DD617F027E2F1FBEEB9E7A4D9B3E1
      CA0D58787ABBA02D5F22AB878888888E390D320A1A08047C3E5F5D5DDDF2655F
      01D9C12B07D1D8681808ABE2B48A0AE66C0C4F6B8946C2C110E05E39F7DC7317
      2D5A84CA53E081441E8195675575E3F3CFFFF61FFF50509083D192C0988CC658
      1C7D6564E616E4E705FC5D28408E6A1A2550993A59822F5CED08BE954432120A
      4A0C9D9B913E4E101C71097E6D0847F7D17417609CE3444473F4047EC209C19D
      0B18F02C786B83C128EA8C2D2D757064ABC586E65FC6633CCABAA5D4D4D6FEFA
      7F7F7DFDF5D7A376C251B40663574EC22C444444C7A20699A108F6BCBBBBBBAB
      AB6BDFBE7D9B2A36C213806D2402248CC550A50AA02D7AD4E69B03CFC14D8F1B
      3FFEBA6BAF4D4B4B43A11534C75C44465714833EDFFDBFFDEDEB6BD63082C0E0
      19E526B3190C7097D72BEAF4A347958A3A06FA0334EC9954C0EC27D1B224F891
      841F98E6B14028E1719D7BE3F5374C9B56DCDE9EDC515DFBF59AED2B57AF8E4A
      9B59AE9A61659ED501CD3516A34F038228F01C9A99C8A0E98F0EA70B3E5E7476
      B69B4D26F8C8E0F707680605DC5B5A5B4E9937FF91471EB15AAD28888F2DB9C6
      714DC37D5F888888880E4D07AF1EEA2FDF0CF61C98DED2D2525959D9585F1FC1
      A39DE0A8D11AD058348202E61194218B65C78C1973F1C5178F1B370E0F7C9AFA
      27F901D93797975FF2B39F35B5B501D9B5B3D82C164555E1D07A8361F4A83168
      25268A8DA3D04D12456F2414C1418116392E4513329BE6FAF9030FDE75DE454E
      4AA12A36C636ACDFF9E6EB5F966FD8A9A8315EACA6A81D6A52E5051145CCD1F2
      4F547AB437FEC2713445EB8D265134B4B434805DB7DBEDFE801FFA0994693D10
      70389D6FBDFD767E7E3E4A4D83336D917C5B444444C7AE0E5ED9AF2D07ED07BA
      167569696EDEB3678FB6881F27508C27F1302510B9A4A464E2C489E9E9E91ACA
      B5497E08A91C0758FFBFBFFEF50F7FFC230628A7256371DAEC1DDE4E388EC964
      1E357A8C1C8FF4B11C3DA055FC721C211D79F3885177E66DB73CFC9BEBF2A079
      AD4DD496ADCD2F3CF3D1479FAC9692D08B482C1D359AEA23914686068AF3BD31
      13203B8F92B568023ADBECAE2E6F3B5C93CB9D0A3D503010E4781E7A0E6F57D7
      DB6FBF3D6BD62CA53F7B17B1E4444444C7AC0EA0797FAA160DE801AC509F5050
      4596153CD50FD009D4067CDB6C362D566EB15800E5E0C7799EEF8F415F77DD75
      8F3DF69836471076341A0C2E97ABB6AE0E7E4D4BCFCACCC88886038AAA24B033
      47136324FC85C663C3265366F1C89B9F7AE6F2BC02CADF4DEDD8D1F5C2731FBD
      F1AFCFE25284E5248A0AAB6AC8E95025B9211C0EE980E6021A02C534077BCEA2
      93B2C8695B6DAE5038E8EFF1A5A6A6C2C7822EAF178C3B5C787373F3030F3EF8
      CB5FFE72B86F01111111D110E8E0FCE6DA7C12145489C534A66B1C473173290E
      D65C1BC9442E58A74373FA743A6DDD0D4E7CABD75CB9867238E625975CB264C9
      1211875980E6E0DE5DA9EE9ABD35E09D478D2E3119F5917010CD5949E088B98C
      5338E2C158458D66A52F1C5374F92FFF778628D25595356FBEFDC5FAF55BA444
      84656540394545543560D08BA91EA6B16137CBB028600E484734C74E9DE3D0D2
      7F86D6EB4D708A9E6E6F4A4A8A41AF6F696D0507CEB02CD0FC97575D75FFFDF7
      0FF72D202222221A021D5C7B088550F08C724942639D9A4FD79EA35C8689A4B6
      25F01A80A98D7602C4452C0DE503A7859C75D659EFBFFF7E3FCD1D767B8ACBB5
      6BD72ED8ACB4641C58E4680C455A7A9D390EB4C0A9629138C34BC5A32FD1B127
      CF3C394F51636FBFF345F5CE4A8EA75946D2504E5151A0B92818468F49AFAADA
      445334201CBE444123796FE81C7D8C10446851C0EFB3D9EC56ABB5B1B1112E13
      DE6D6D6939EB9C739E79E699E1BE054444444443A083EB826A890C9358F281C2
      13087B69CEE2C8347FA0FAA785F48F259E79E6991F7CF0413FCD5D29CE14B7BB
      AAB20A362E2D1DC7326A241A45D3CCF18AA15E9AE3C1D684129B36F5425F5B59
      76B6DD1FF0965754488910CB4A1AC7F1BF5832E9CBC8C84A4DB5556EDFA2057F
      D03C1A940B17CF54ECA5390D9D0EC3F28180CFE970DAACD6BAFA7AAD2C465B6B
      EBFC534F7DE9A59786FB16101111110D810EA639D55784A89FE91AC435F56FAC
      557AD3F0AD4D0DECE7F8C0B1C483689EE274A4A5A76DDDBA1D605A525CC6F154
      3412D53E0A206F8E992E01D063F170243C75EA492C35AF664FA72C07BCFE5686
      D5200E348F6B408FC7037366CF6E6AA9ADADD9A713451C5E1144E854C09EF7D2
      1C9AC408A29E65587FC0E771A79AADE67D35B51ACDDBDBDBE6CD5F40684E4444
      747C68109A537D31F47EAC2B7D1AB8CDC0EA9DDAE337676A0FA43974060E8723
      273B7BD3E64D1C278C1E5DAAD7F1D168180EAB4D31C74530D018A824A1D0B9CD
      6E3AE3F45F7FF179675DE36E8E9318A617E22A155195982C771715958C2C2C58
      B1F2CB5834A6D7E9D0870320398F4641B519E72887224BEBF426B84C7F8F373B
      3B4714859ABD352AAA74C1B5B5B79F71C6194F3FFDF470DF02222222A221D0E0
      34EF973A4083EC3C40DFDC115E5CBC78F13BEFBCD34F739BCD36BAA868D3962D
      9224E5E48C70BB1C288F391A7AD5A69BA3B543A8CE109EDC1289454715151615
      CDDF59EDAF6FD8118975A9548C52632C1B1504CEED4A1F3DAA60C7AECAC6C626
      64CCB5B88FC001CD795E2B27871E189AB25A53A08F08FA81FE45916874EFDEBD
      7ABD8E61B98E8EF6CB2EFB9FFBEEBB6FB86F01111111D110E87B68FE4DA9FD09
      72BF731B6DEACB95575EF9ECB3CF0A82A0E54D04E28E2D2DE9EEF1EDDAB5C761
      4F292C2C90A4184E7CAB254E4C6A13DE81E628857A5C8AC6A2A9A9AEA953E618
      0DE9BBF6D4FA7C5E8A969D0EE39851053129B27CD917EDDE4E5D7FC89EC73C47
      C6BC7F081465CD75D83DDD3D5E9A56C61417D7EEAB45CB58E371E8883A3A3BEE
      BAEB6E68E170DF02222222A221D021D3FC87488BB90352EFBEFBEE7BEFBD5741
      E53AD13A7B80F5E851A36C76DBDAB55F9B4DA6C2C2512A2527134A5F805EC671
      73249C6DABB7641DCDA8A52563C78C19AB2834C3529214AFAEDE0E161BF8CFE3
      A83D9A3189198E798E7FF6E641A40C06B3DE60F676B6783CA9A99EB49D3B762C
      3EF7DC77DE7D37168BF97CBE25AFBD76F2C9270FF72D202222221A020D3DCDB5
      38BB3664BA7CF9F24B2FBDB4B3B313EC39BC0506DC95E21A3F7E5C4545853F10
      2C2929E3380AE5695129344F11CD9AD18CB9021E1DA7C455B4F9EF88EF8A82AA
      1AA1E353BDA3AFBDF11416558CE3719C9C617994A605BD8368CE50769B5B92E3
      A14077D9B871C16068C7CE9D634B4B6B6A6AA04BD01B0C6FBDF5766E6EEE70DF
      02222222A221D091A2B996F4DCEBF52E5CB870F7EEDD625F9E1678F1E4993301
      D6ABD7AC2DC82FCCCCCAECE9EEEC2D1587E32D684414B0AE24507AF3A4E6D193
      BD45E5B416F7C5EB716A730EE7D74248C7D61CA53887071A3E0AA8AADE60B458
      1C5D5D6D568BB9B474ECC60D1B227839AB2808F1787CC6CC990F3DF490CD661B
      EE5B4044444434043A223407FE6AAB490381C08D37DEF8CE3BEFF03CAF21185E
      74D8ED7366CD5ABF714347A7AFB4642CC731A1901FCD9DA15434B12589561261
      8403D055A59FE5B830287C6943AEB886B356A882E9AD578133E26A195A509550
      8675385C0939DEDDD33569D2947038BC69E3C6118585FE9E9EB8247575755D71
      E5957FF8C31FFABB19222222A2635A4784E660B1B55C8CA02FBEF8FC9A6BAE05
      260371E1313D2D4D8B934C9932F9830F3EE47861D4A89264221689041595C689
      D3B538BA92EC2D3C84AB842AE80B57B3537119698AD18AC831A89A1C836B0FC1
      0F1E1B751A55A4A01C8E54388ED7DB9E86E4D9BC6973464686C562A9ADAB037B
      0E0D7BF0A187162F5EACA59D19EEBB40444444F463754468DE5FC60854535373
      CBCD7FDCBE7D3BCBF3525C3A79E6CCC211239EFDE73FA74F9B06467CC3FA0DE9
      19993939F9B158488AC7543C9151492A7881287AA6E23A725A09BBFDA7A02854
      DF59A3385EB4A479748DEFE0DC6D36974EA76B6B6F32198D33679EBC79F3E6DA
      7DFB8A4615C562F18ECECE50303065CA890F3EF430505E33F6C37D1788888888
      7EAC8E08CDB5B4BA80729FCFD7D3D3F3AFB7DEFEDBDFFFC60B3C60DA6CB19CBE
      70E1868D1BC1232F5A74FABE9A7DDB2BB76564E482229100ECA585DD2945D568
      4EA152A014E2BBBA3F6E4E6934D74AC8D1F81F9A5A8E3C3BBC6AB3394541EC6C
      6F11447EDAB4E95E6FE7E64D5B00E570E4DDBB77F33C0F47BEF1C61B2FBCF042
      380E409FD09C8888E838D011A779201058BD7AF5A38F3CE2F7FB550ADE928B8B
      8BD3D3D256AF596BB55A4E3A69466D6D6DE5B6ED6EB7273B274F4EC4C3A100CE
      0643F74659B4F2CE14AA1BAA6AEE1C90AD711B5717A2718D3A1C4B575996B3DB
      DDE0D03BDA5B4C66E3E42953BABC5D1515156563C7666666AE5CBD5AC6C59526
      4D9A7CD7DD77399D4E9C0292D09C8888E878D0918DB46805A35B5B5B5F7CE185
      E5CB9783934EE052CE93264E74381CCB57AC48713A67CF9AD5D8D050BD630780
      3937770445276539168FC98A920442238AE3C98E035AA9E281509AC2F16E8652
      C1A8A3C542BC68329925291E0D8752D33CE3C78D6B686CDCBC69735656564971
      71F9FAF5C1205A776AB1587EFFFBDF4F993245CBE52B8A22A1391111D171A023
      3B0A0A34F77ABDE0D0C120BFF8E20BEDEDED40E124AE897122E6E9CA55AB5C29
      29230B0BF3F3F35B5A5BB66DAF32180C56ABDDA037C4E351F8874A4BF7552EC5
      B3CD71A37B17A3AA3875A2A8371881E63194B337EE723A4A4A4BE10341636363
      CDBE7D02CFE7E6E642BF823E19A82AC3B2975C72C969A79D6602F0F715A426A3
      A0444444C7818EE00CC54824A295A3EBC45ABE7CD9471F7E049E1DB691641918
      EA76B9027E3F9A5CAE2AC0DCE9D367300C5DBEAEBCB3D3AB3798AC569B5EA743
      4E1FA7E35251201D79F4DE5C8DA8BA90C8F3BCAA50125294E739D42B14E4EFDC
      B9ABBAAA0AB69E3B674E281CDEB06103205BFBC4B0E88C33CE3DF75CABD56AC6
      D28ADE119A1311111D073A82AB87B4D2455AB00504C67CC5F215CB962F93E371
      3825D0966318B44694A12905509B6039766C69E9F80913C2A1D0BEDA5AD82516
      97189AE5C07DEB459C71179586C3C7579524623C3CE179D66EB766676765A467
      F87CDDEB376CF07575712CEB76BB67CC9851BE7E7D5B7B3B74124A3239E3A499
      679D7596CBE5B2D96C5ADD3BAD1A35A1391111D171A023B8B23F168B813D0F85
      425D5D5D5E2C00FADAB56BD7AC59130987F13C1434C390A67AC3E0D01059962C
      66CB9831C5F905797A51178946BA7B7AC0BF87826119A7E55211BE0520B8C1A0
      B7DA6C4E678AD964646806D0BF73D7AEB6B6368E450971B51546688A3A8D4653
      E145E824162E5C989E9E6EC302941B0C062D5D1729EE4C4444741CE80866DD02
      7BAE015D8BB700CD01EB60D5B76EDDBA7CF9F2EEAEAEDEF9E298A788E978B261
      329194E2715E10D2B15C292E8BD52A8A3A2D8F166A302A7C81D68882F7071B8E
      5D7F5B2018E2054E14F5BDC532F0BA536D19A9DEA02F2E2E99376F9E8672BBDD
      6E329900E5FD75EF08CD8988888E031D299A6B63A1DAFA7EB0E78140A0BBBBDB
      870570AFABABFBEAABAF1AEAEB598E13045E45D911F1727DBAB7F88542A9B284
      126F69D5474D16B380AB09017C35E38F2A5AE0DCB6B0B14E10599ED3A62DF6E6
      5A079B8F4B9B1AF4FA99B3679F38654A6A6AAAD50A6EDEA60D7EEA70750BADDA
      C670DF02222222A221D011A139D567CF07023D180C823107A6C3233CEFE8E8A8
      A8A8D8B87123F05B2FEAE292A4E295422C5E0C8456EEF74E2B47F95B708E965E
      0FAD019FEFCB9E8832A76BD3CF91B9A7B5F302E8619FDCBCBC59B3668D292E06
      8E5B2C160DE57ABD5E43394EE74213634E4444747CE808D2BC1FE85AC8251C0E
      6B33053569EBFEABAAAA2A2B2B9B1A1B79CCD6048E8D50A84C1D86365AB64FE1
      B809B2D0E8A10FBE6CEF6BE84D1C81A1925A3E003C39D2E9704C9C3C79DAB469
      2E97CB643259B0E009A01C9CBE867212632122223A9E74A468AE498B8A684007
      931E8D46C1956B3E5D0BBFC0EBEDEDED3B76ECA8DCBEDDDBD9099C059CD378D5
      27ADF96D1482D12A4FA05FF13792C6621443C7F316159CD7059E1B8CC6B2B2B2
      89132716141468439DDA64442DBAA2A1BCBF26F570FFF189888888864C4796E6
      FD15A2B541512DEAA2CD5CD4A6BBC0630CABADADADAEAE6E534505D8768DFEB0
      27D387DD837C348EBCF476150ACECEC80BBCCD661F357AF4F8F1E33333331D0E
      0750DB88051CEFB7E4FD0116122E2722223ACE7464694EF5015D8BBA68653FFB
      7D3AA05C7B049AC35B5A3EF4CECECE9A9A9A8EF67678026F818B871DE1094ADE
      D2B716546FD00397F53ABD16424975BBF30A0A8A8A8AB465418220800DD7F749
      C0D238DE3B7F8684CB8988888E3B1D719A6BEA9F84AE5586930608801EEF13AE
      098A0ACAC196DDDDDD6D58F0BAD7EB852D35430D2006EB6D3299E0116C786A6A
      AA36AAD94F6D2D97169871ED578DE30303E504E5444444C79F7E229A533830A2
      3D2A78AC52A3B6F6A8715C2B3EA7BD02D2B6A7F1F29F7EFEF6DB6A2D55961633
      41759D07D0BCDF89F7AB3F5643384E444474BCEAA7A339A565CE1AE0D335AC6B
      11987EDBAE3DD77ED5E233DAF498DEE6621C6BF3C47B6B3DE3F88906F47E7CB3
      7DEA8738E1381111D1F1AD9F94E69A0632BD7F8CB4FF89E6CAB5E71AC7B5B07B
      6F730788E92F0B8A9F68B194BE22446C7F5886709C8888E83F41C340F37E0DC4
      7A3FB87B0B3AF7B9720A07670EA239D5176381C77EA0F7239E98712222A2FF40
      FD7FFBBD49A7D77EDDE00000000049454E44AE426082}
  end
  object Label10: TLabel
    Left = 176
    Top = 72
    Width = 235
    Height = 13
    Caption = 'A Utility to Focus Stack with Canon'#39's EOS Utility '
    Font.Charset = DEFAULT_CHARSET
    Font.Color = clWindowText
    Font.Height = -11
    Font.Name = 'MS Sans Serif'
    Font.Style = [fsItalic]
    ParentFont = False
  end
  object MSButton1: tMSButton
    Left = 390
    Top = 343
    Width = 61
    Height = 20
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Exit'
    DoubleBuffered = True
    ModalResult = 2
    ParentDoubleBuffered = False
    TabOrder = 0
    DoBrowse = False
    BrowseStyle = fbOpen
  end
  object MSButton2: tMSButton
    Left = 275
    Top = 187
    Width = 174
    Height = 20
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Get the Shutter Button Location'
    DoubleBuffered = True
    ParentDoubleBuffered = False
    TabOrder = 1
    DoBrowse = False
    BrowseStyle = fbOpen
  end
  object Edit1: TEdit
    Left = 46
    Top = 187
    Width = 75
    Height = 21
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Enabled = False
    TabOrder = 5
  end
  object Edit2: TEdit
    Left = 46
    Top = 214
    Width = 75
    Height = 21
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Enabled = False
    TabOrder = 6
  end
  object Edit3: TEdit
    Left = 46
    Top = 240
    Width = 75
    Height = 21
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Enabled = False
    TabOrder = 7
  end
  object MSButton3: tMSButton
    Left = 275
    Top = 214
    Width = 174
    Height = 21
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Get Fine Focus Location'
    DoubleBuffered = True
    ParentDoubleBuffered = False
    TabOrder = 2
    DoBrowse = False
    BrowseStyle = fbOpen
  end
  object MSButton4: tMSButton
    Left = 275
    Top = 240
    Width = 174
    Height = 21
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Get Double Focus Location'
    DoubleBuffered = True
    ParentDoubleBuffered = False
    TabOrder = 3
    DoBrowse = False
    BrowseStyle = fbOpen
  end
  object MSComboBox1: tMSComboBox
    Left = 48
    Top = 310
    Width = 118
    Height = 21
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    ItemHeight = 13
    TabOrder = 9
    Text = 'Use Fine Focus'
    Items.Strings = (
      'Use Fine Focus'
      'Use Double Focus'
      'Use Tripple Focus')
    ListText = 'Use Fine Focus'#13#10'Use Double Focus'#13#10'Use Tripple Focus'#13#10
  end
  object Edit4: TEdit
    Left = 175
    Top = 310
    Width = 25
    Height = 21
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    NumbersOnly = True
    TabOrder = 10
  end
  object Edit5: TEdit
    Left = 261
    Top = 310
    Width = 34
    Height = 21
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    NumbersOnly = True
    TabOrder = 11
  end
  object MSButton5: tMSButton
    Left = 270
    Top = 344
    Width = 61
    Height = 20
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Run'
    DoubleBuffered = True
    ParentDoubleBuffered = False
    TabOrder = 12
    DoBrowse = False
    BrowseStyle = fbOpen
  end
  object MSButton6: tMSButton
    Left = 275
    Top = 266
    Width = 174
    Height = 20
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Get Tripple Focus Location'
    DoubleBuffered = True
    ParentDoubleBuffered = False
    TabOrder = 4
    DoBrowse = False
    BrowseStyle = fbOpen
  end
  object Edit6: TEdit
    Left = 46
    Top = 266
    Width = 75
    Height = 21
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Enabled = False
    TabOrder = 8
  end
  object MSButton7: tMSButton
    Left = 330
    Top = 343
    Width = 61
    Height = 20
    Margins.Left = 2
    Margins.Top = 2
    Margins.Right = 2
    Margins.Bottom = 2
    Caption = 'Help'
    DoubleBuffered = True
    ParentDoubleBuffered = False
    TabOrder = 21
    DoBrowse = False
    BrowseStyle = fbOpen
  end
end
EndDialog>Dialog1


AddDialogHandler>Dialog1,MsButton2,OnClick,Load_Shoot_Button
AddDialogHandler>Dialog1,MsButton3,OnClick,Load_fine_focus
AddDialogHandler>Dialog1,MsButton4,OnClick,Load_focus
AddDialogHandler>Dialog1,MsButton6,OnClick,Load_Tripple_focus
AddDialogHandler>Dialog1,MsButton5,OnClick,Runit
AddDialogHandler>Dialog1,MsButton7,OnClick,Displayhelp


Show>Dialog1,r
If>r=2,EOF



SRT>Load_Shoot_Button
Let>i=0
Label>startpos
Let>i=i+1
Wait>.1
GetCursorPos>X,Y
SetDialogProperty>Dialog1,Edit1,Text,%X%,%Y%
If>i=40
Goto>end_of_SP_Loop
Else
Goto>startpos
Endif
Label>end_of_SP_Loop
MDL>Shutter Button Location Loaded
END>Load_Shoot_Button


SRT>Load_fine_focus
Let>i=0
Label>startpos1
Let>i=i+1
Wait>.1
GetCursorPos>X,Y
SetDialogProperty>Dialog1,Edit2,Text,%X%,%Y%
If>i=40
Goto>end_of_FF_Loop
Else
Goto>startpos1
Endif
Label>end_of_FF_Loop
MDL>Fine Focus Button Location Loaded
END>Load_fine_focus


SRT>Load_focus
Let>i=0
Label>startpos2
Let>i=i+1
Wait>.1
GetCursorPos>X,Y
SetDialogProperty>Dialog1,Edit3,Text,%X%,%Y%
If>i=40
Goto>end_of_SF_Loop
Else
Goto>startpos2
Endif
Label>end_of_SF_Loop
MDL>Focus Button Location Loaded
END>Load_focus



SRT>Load_Tripple_focus
Let>i=0
Label>startpos3
Let>i=i+1
Wait>.1
GetCursorPos>X,Y
SetDialogProperty>Dialog1,Edit6,Text,%X%,%Y%
If>i=40
Goto>end_of_TF_Loop
Else
Goto>startpos3
Endif
Label>end_of_TF_Loop
MDL>Tripple Focus Button Location Loaded
END>Load_Tripple_focus



SRT>Displayhelp
ChangeDirectory>%ProgramFolder%
Let>RP_WAIT=0
Let>RP_WINDOWMODE=3
RunProgram>hh.exe -mapid 10 ms-its:%ProgramFolder%\Autoshoot.chm
END>Displayhelp




SRT>Runit

CloseDialog>Dialog1

GetDialogProperty>Dialog1,Edit1,Text,SBV
GetDialogProperty>Dialog1,Edit2,Text,FFV
GetDialogProperty>Dialog1,Edit3,Text,SFV
GetDialogProperty>Dialog1,Edit4,Text,TFV
GetDialogProperty>Dialog1,Edit4,Text,W_time
GetDialogProperty>Dialog1,Edit5,Text,N_Steps
GetDialogProperty>Dialog1,MSComboBox1,Text,step_size


If>W_time=
MDL>No Value has been entered for the time.
Goto>missing_setup_info
Endif
If>N_Steps=
MDL>No Value has been entered for the number of steps.
Goto>missing_setup_info
Endif


Separate>SBV,%comma%,SBVV
Let>SBX=SBVV_1
Let>SBY=SBVV_2
If>SBVV_COUNT=0
MDL>The Start Button Location has not been set.
Goto>missing_setup_info
Endif

Separate>FFV,%comma%,FFVV
Let>FFX=FFVV_1
Let>FFY=FFVV_2

Separate>SFV,%comma%,SFVV
Let>SFX=SFVV_1
Let>SFY=SFVV_2

Separate>TFV,%comma%,TFVV
Let>TFX=TFVV_1
Let>TFY=TFVV_2




MouseMove>%SBX%,%SBY%
Wait>.5
LClick
WAIT>W_time
Let>n=-1
Label>Begin_Shoot_Loop
Let>n=n+1


If>%step_size%=Use Fine Focus

IF>FFVV_COUNT=0
MDL>The Button Location has not been set for using Fine Focus.
Goto>missing_setup_info
Endif
MouseMove>%FFX%,%FFY%
Endif

If>%step_size%=Use Double Focus
IF>SFVV_COUNT=0
MDL>The Button Location has not been set for using Double Focus.
Goto>missing_setup_info
Endif
MouseMove>%SFX%,%SFY%
Endif


If>%step_size%=Use Tripple Focus
IF>TFVV_COUNT=0
MDL>The Button Location has not been set for using Tripple Focus.
Goto>missing_setup_info
Endif
MouseMove>%TFX%,%TFY%
Endif

Wait>.5
LClick
Wait>5
MouseMove>%SBX%,%SBY%
Wait>.1
LClick
WAIT>W_time

If>n=%N_Steps%
goto>done_with_loop
Else
Goto>Begin_Shoot_Loop
Endif
Label>done_with_loop
MDL>Finished Shooting

Label>missing_setup_info
Show>Dialog1

END>Runit

Label>EOF



Mel_P
Newbie
Posts: 8
Joined: Mon Feb 27, 2017 6:32 pm

Re: Script for Focus/Image Stacking with Canon EOS Camera

Post by Mel_P » Mon Feb 27, 2017 9:33 pm

PS - I am using Wondows 10 and EOS 3 utility. I appreciate that the code "replicates" a human user - really neat.

Mel_P
Newbie
Posts: 8
Joined: Mon Feb 27, 2017 6:32 pm

Re: Script for Focus/Image Stacking with Canon EOS Camera

Post by Mel_P » Mon Feb 27, 2017 9:39 pm

Hello "kpasseur" - i ran the exe file before - how do I run the code please? Thanks, Mel

kpassaur
Automation Wizard
Posts: 690
Joined: Wed Jul 07, 2004 1:55 pm

Re: Script for Focus/Image Stacking with Canon EOS Camera

Post by kpassaur » Mon Feb 27, 2017 9:48 pm

You put the code in the script editor and click on run. If it gives you the same issue insert a line above the error line and insert a breakpoint from the drop down menu. Then it will stop before it gets to the error and when you press f8 it will go to the next line (the line causing the error) and you can trouble shoot it.

Post Reply
Sign up to our newsletter for free automation tips, tricks & discounts