Click here to Skip to main content
Click here to Skip to main content
Articles » Multimedia » GDI+ » General » Downloads
 
Add your own
alternative version

Image Processing Lab in C#

, 13 Mar 2007 GPL3
A tool and library for image processing
iplab_demo.zip
iplab_demo
AForge.dll
AForge.Imaging.chm
AForge.Imaging.dll
AForge.Math.dll
DockingToolbar.dll
iplab.exe
SourceGrid2.dll
SourceLibrary.dll
WeifenLuo.WinFormsUI.dll
iplab_src.zip
iplab_src
icons
about.gif
clone.gif
convolution.gif
copy.gif
cut.gif
disk.gif
fit_to_size.gif
folder_out.gif
fourier.gif
grayscale.gif
histogram_window.gif
levels.gif
morphology.gif
paste.gif
pie-chart.gif
resize.gif
rotate.gif
threshold.gif
view_1_1.gif
zoom_in.gif
zoom_out.gif
iplab
App.ico
banner.gif
column-chart.ico
Controls
Filters Forms
line-chart.ico
References
AForge.dll
AForge.Imaging.dll
AForge.Math.dll
DockingToolbar.dll
SourceGrid2.dll
SourceLibrary.dll
WeifenLuo.WinFormsUI.dll
Resources
arrow.bmp
harrow.cur
hmove.cur
Tools
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
            Microsoft ResX Schema 
        
            Version 1.3
                
            The primary goals of this format is to allow a simple XML format 
            that is mostly human readable. The generation and parsing of the 
            various data types are done through the TypeConverter classes 
            associated with the data types.
        
            Example:
        
                ... ado.net/XML headers & schema ...
                <resheader name="resmimetype">text/microsoft-resx</resheader>
                <resheader name="version">1.3</resheader>
                <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
                <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
                <data name="Name1">this is my long string</data>
                <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
                <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
                    [base64 mime encoded serialized .NET Framework object]
                </data>
                <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
                    [base64 mime encoded string representing a byte array form of the .NET Framework object]
                </data>
        
            There are any number of "resheader" rows that contain simple 
            name/value pairs.
            
            Each data row contains a name, and value. The row also contains a 
            type or mimetype. Type corresponds to a .NET class that support 
            text/value conversion through the TypeConverter architecture. 
            Classes that don't support this are serialized and stored with the 
            mimetype set.
                     
            The mimetype is used for serialized objects, and tells the 
            ResXResourceReader how to depersist the object. This is currently not 
            extensible. For a given mimetype the value must be set accordingly:
        
            Note - application/x-microsoft.net.object.binary.base64 is the format 
                   that the ResXResourceWriter will generate, however the reader can 
                   read any of the formats listed below.
        
            mimetype: application/x-microsoft.net.object.binary.base64
            value   : The object must be serialized with 
                    : System.Serialization.Formatters.Binary.BinaryFormatter
                    : and then encoded with base64 encoding.
        
            mimetype: application/x-microsoft.net.object.soap.base64
            value   : The object must be serialized with 
                    : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
                    : and then encoded with base64 encoding.
            mimetype: application/x-microsoft.net.object.bytearray.base64
            value   : The object must be serialized into a byte array 
                    : using a System.ComponentModel.TypeConverter
                    : and then encoded with base64 encoding.
        -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>1.3</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <data name="$this.Name">
    <value>HistogramWindow</value>
  </data>
  <data name="$this.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    <value>False</value>
  </data>
  <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" mimetype="application/x-microsoft.net.object.bytearray.base64">
    <value>
        AAABAAgAEBAAAAEACABoBQAAhgAAABAQAAABACAAaAQAAO4FAAAYGAAAAQAIAMgGAABWCgAAGBgAAAEA
        IACICQAAHhEAACAgAAABAAgAqAgAAKYaAAAgIAAAAQAgAKgQAABOIwAAMDAAAAEACACoDgAA9jMAADAw
        AAABACAAqCUAAJ5CAAAoAAAAEAAAACAAAAABAAgAAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
        /wDwchsAHtdhAKyfnwAAkAAAlKI0AIj/uQD/yK0AXJl1AOqeaQDL4NsALqstAMiBQwDNUQAAUtNrAAC8
        OgC6jnMA+5NBAEusUQB4r48AyLa3APDc4QA0vnEAm558AOPLwwDPcw4A9LeSAACvGwBctYIACMpTAMDd
        wQBet2cAxoQhAMiUVgDmWgAAasp6AMeggQD/oVsA5oQpAKeMhAC+8M0A6cStAODL2QAtuT4A05JpABLH
        NgDhqHkAtq+vAGykfAD5gTAAYpdiANSKLgDhagoAwqWTAACjAADbmFkA4kgAAP/y8gDvnUoA8tDLANvQ
        tADrkDoA1WIAAKmTkwDtrIMA9OjsAA/FRgD7waAA2uLbANB7GwDWzs8AZahwAAC2LQAisTIA/JdOANfF
        xQAAxUQA9HgmAL2ahwDtaw8A76JWAG/EhAD7iDsAtaWlAGebcADtpXkAEtVhAGi+fQDwhzQAvJN9AP/0
        /gDj3NwAAKkSAN/V1QDQgiQAYrtwAJ2KhQDoZAYALbk0AOdzGAAAsyQAmp86AOt9JwDt5+cArJmZAACn
        CgDcyssA85RAAACbAADMkmwA9qBYAOqLMwD+9/cA3M7UAGSZagD/zrAAaqB3AMWPUwDk0NgABLkxAAbQ
        VAD/kEUAXrZwAAC9NACUnDUA9+fnAO/g5QDg0NwAJrQ0AMaxtwDDt7gAsaCgAO3b5QDg0dIA+pNGAP2a
        UgD/+v8AAK8hAO3c3QD/nVgAwKGRAPv09QDZyMgAKbc1AK2cnACrlpYA//P4AO+VPwCyoaQAqJqaAPTk
        6wAruzsA3NPTAAPERgDv398Al6E7AP/8/AAlsTUAsqamAO3f4wColZUAAKECAP/2/AAquDcAlZ42ALOk
        pACvn58Ar52dAP/9/gD/9PoA2M7OAPmTRACnk5MA3dLUAKqXlwD79fYAJbI0AKyYmACplJQA//3/AP/9
        /QD/+/wA9ufnALSlpQCwn58AqJOTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAKDh2FwluLUgdYSUYFAAAABGUNHlSEnosVwqsnAMxAABaPl9NWIdTnh5WWX1D
        dQAAT3BGfHtLMkqaQWeleFUAAI0nGmVgiE6xEBtkZhxzAAA2bCFqIIwCgUlENQY3MwAAlYkHBRMmUJCK
        CD8iC6EAAKeXKSQfb2KkXXQODYBAAACmtqp3W1EjmKI8Lyp/swAAuAFxro47OWNtK3JCi7oAAASZq4NH
        GT0uBYIVj0ytAACfaJ1esKNFDwwWa36bugAAMGgBXLWpoIW0k4Y6t7MAAJZUuLmEqJGyaZK6s7qvAAAA
        AAAAAAAAAAAAAAAAAAD//wAAgAMAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIAB
        AACAAQAAgAEAAIABAAD//wAAKAAAABAAAAAgAAAAAQAgAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAApHtwqeuTQsXOhzjDC8VdvzWQW6vigUGY6YREpC6lQpESvVqGf04+X+uNQ2qBiTZoGbBZXBVW
        KioAAAAAAAAAAL6LbeHvlT//1Iou/wbQVP9vxIT/+5NB//+QRf8tuT7/EtVh/+qeaf/5k0T/l6E7/x7X
        Yf8gmkN1AAAAAAAAAAC/kHff65A6/9CCJP8AxUT/aL59//qTRv/7iDv/JbE1/wjKU//tpXn/8Ic0/5Sc
        Nf8PxUb/F5A0cwAAAAAAAAAAwJiC3OqLM//Qexv/AL00/162cP/8l07/+YEw/yKxMv8DxEb/7ayD/+t9
        J/+Vnjb/BLkx/xCGJXIAAAAAAAAAAMSgjdnmhCn/z3MO/wCzJP9iu3D//ZpS//R4Jv8lsjT/ALw6//S3
        kv/ncxj/mp86/wCvG/8LgRdyAAAAAAAAAADHpI/W85RA/8aEIf8Apwr/Xrdn//+dWP/wchv/JrQ0/wC2
        Lf/7waD/4WoK/5SiNP8AowD/AHsAcAAAAAAAAAAAtKGl5P/6//+I/7n/AJAA/0usUf//oVv/7WsP/ym3
        Nf8AryH//8it/9ViAP/IlFb/y+Db/6iOjr4AAAAAAAAAALGenuP05Ov/vvDN/2rKev/A3cH/9qBY/+hk
        Bv8quDf/AKkS///OsP/NUQD/yIFD/+DQ3P+pjY3MAAAAAAAAAAC2pKTh//v8///0+v/k0Nj///T+/++i
        Vv/mWgD/K7s7/wChAv/y0Mv/4ah5/+nErf/v4OX/qY6OzAAAAAAAAAAAtqWl3//////+9/f/3dLU//v0
        9f/vnUr/4kgA/y25NP8AmwD/4MvZ/9zO1P/06Oz/7dzd/6iNjcwAAAAAAAAAAK6ent7c09P/2M7O/8O3
        uP/Wzs//48vD/9vQtP8Sxzb/AJAA/8axt//Itrf/2cjI/9fFxf+ni4u+AAAAAAAAAAC0pqbd7efn///8
        /P/f1dX/+/X2///2/P/a4tv/UtNr/y6rLf/w3OH/3MrL//fn5//v39//qI2NzAAAAAAAAAAAubCw0O3n
        5///////49zc///9/f///f7/7d/j/+3b5f///f////P4/+DR0v//8vL/9ufn/6mPj8wAAAAAAAAAAKmZ
        mdu3pqb2tqWl77KgoOuzoKDosZ2d5K6bm+CtlpbdrZaW2ayTk9Spj4/RqY+PzKiNjcmqkZHBAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAD//wAAgAMAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIAB
        AAD//wAAKAAAABgAAAAwAAAAAQAIAAAAAACgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A5HcgACfS
        XwCopqYAAJMAAHWZJQD/0JcAtvfJAIZ/bQDto10AMKkpAF/BfwDWw8MAyFcAAP/m0QC1lHUAzryVAJzQ
        mAAIriYASsZMAPCNQADW6NcAeqmKABm8QwCbj48A+rl2AKjisgC5wq8AP+JtAPHs7ADIrHwAdqo9AN5o
        CQDqwaEAQK5EADDATgDT0aIAj5l7AOTU1ADdiDMAsoaNAACkEAD418AAud3AAEzDcwD6mk4Am4NzAKua
        kwD83OgAF7IzADrNZAC8rrAAwq2PANV1FgDomU0AHcZTANtWAABGvVwAGKogADXdXgDn4OMA9bBoAP/v
        9ADshDEA/sODAM5pBAA5tDYA1c/PAEC/QQCwt6cAJrM4ACnBPwDXw6kAyr2+AJ2YmAChhoIA4I9DANd8
        IQAKphkAcKIzADTaawDgcBMAAKADAMvv1AAqx1kA438qAD/MTgDr3tcAJL9MADbEWQDuoVAAD7c4APLj
        4wDwlEcA4cKuAMiyhwDHoXsA0rfCAOOdXADb1tYAqoyMANG8nwD8+PgA/eXxAP/JjwDArIMAcqaEAAOs
        HwBFtkAAw8OtALLhsQAQrCgA1cegABO3LADayckAoZ6eAEHTZAAfry4A+uvrAPjw8AD24e0Az20LAPvg
        zgApukMANK0wAOiVQwDLtZQA6Yw7AKeamwD1tXUAIspaAOa7nABxnSsAGLQ6ABrCTQAkvDsA5dvbANqA
        KQDfjTkA8KdkAJ+KiAAKsisAoJOTANddAADuiDcA08bLANO9vQDaZQMA3tHRAO+dWgAMqSAA1XgbAO/f
        3wDabQ0AJsNTAELBSAC0u6wA6+bmAOaFMgDxqFwAP7k9AMu5kAAQszEAyl0AABy4PgAAmQAA5HQbAOyc
        UwDxsW4AE7tAAB+8RgAsyV4A0nISAMqwkAADoAwAE68tAMtlAADnfCYAOdpdAKCOjADUawQAAKgYAO3Z
        1ADccxcAm5KSAOl/KwD69PQAIbY5AN96IQAx1WoAxa+CAPXm5gDRzMwAF79HAC68QQDchi4A659XAKWh
        oQCqiYkA8OjkAASiEwAHqR0A7OLjACPFVwApz2MA85FGAKSYmADp2toAH8FOADaxMwDnlkgAzbyeAACb
        BgD/8PkAFLc5ACXCQADjk0QA8atnAOCQPwDvo1oA6KNbAP76+gDQZwAA3msPAEbESgD97PEAEbo7AObX
        1wA7tzkA+OzyAAy0MwD0tngAoIJ/AKKIhQDEq34A+/DyAO+MOwDNvr8A8a1rALvCswAAoQkAJLg8AHCe
        MAD+9/cA/fP3AACnEwDx4+YA6N/fAM6/mADKvZYAm5aWAAOfEADw4OAA5nkjANbJygAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAgTBhECZrFwAAAAAAAAAAAAAAAAAAAAAA6dPZXiDNAy9NNy5tvlEJY92WOi0M
        AAAATFuLgFDMOK5+2c59rIMfftnO8lUzAAAATKAon/PRwq7T2xULVTjr09sVvFlaAAAA6j6KVvMY4383
        i+0Lm4e/04uRvKUkAAAAjRpOvYXX53+oKJELWcJgN8RAiDJ8AAAAjUE2uIWjjjXFxEALq6pqN4q6iHBH
        AAAAjWl6moUTbGbcirp9pVyiqE7+SE92AAAAtAekkAbK9mYKTrLShueixZinSNU7AAAAtA8rJVf88WaM
        mAJDMo4Rxa1SddgjAAAAGfXmVDymptTaNqflsBP5Cnq1YjEpAAAAGWSVLB1yw0nvrVKhcGz6CkLfNJXH
        AAAAGd547NZoeXupeuBFl7Zx3KSkSv3HAAAAGfR4eHjLPXuCQiGcTypuXyKE/cDHAAAAGd67u7uePXvo
        sZThyfHwkvf3/cDHAAAAud67u7uePXuCDjkUr1Od7uTkJ9BlAAAAuWRkZGREwYlYt2+z1aZGSuTk5Jll
        AAAAuQFnZ94enrvs9Qg8BQUc/11d/cDHAAAA+95nZ2cenrt47BYbEhLIlf39mcBlAAAA+wHeZ2cenru7
        eMv3P+J3lV1dXXdlAAAASwEBAQFnHt70u/iJy4nk7nMNk5NlAAAAdATGdEv7uRkZubm5j4+Pz8/PzwAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AgP//AIAAAwCAAAMAgAADAIAAAwCAAAMAgAADAIAA
        AwCAAAMAgAADAIAAAwCAAAMAgAADAIAAAwCAAAMAgAADAIAAAwCAAAMAgAADAIAAAwCAAAMAgAAPAP//
        /wAoAAAAGAAAADAAAAABACAAAAAAAGAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJhydVameGVd5JRCeb55O31lfTVqHpxKaiShT2AVKR8zsm43JcSA
        QEF+TiU5FzceJgxXJyAAAAAWAAAAEgAAAAQAAAAIAAAADQAAAAwAAAAKAAAACAAAAAQAAAAAAAAAAJ97
        d9Tnlkb/45ND//CUR/92qj3/Kc9j/yfSX/+dhXT+4pFE/umaTP/6mk7/Qrg99jLXa/4u32nxfHJbxvOb
        SMvzok/c/ZtM1y7CSc0vy2LDL89jnQAAACgAAAAAAAAAAKB/edHuoVD/3447/+mMO/9wojP/I8VX/xzF
        Uf/LsI//6JVD/+OTRP/ykUb/Naww/yzJXv8iylr/yKx8/+iUQ//jk0T/9JFF/yS4PP8qx1j/LNNc4QAA
        ACYAAAAAAAAAAJ99e87xqFz/3Igz/+aFMv9vnzD/H8FO/xjAR//JsJD/55ZI/+CQP//vjkH/Magp/ynG
        Wv8dxlT/xKt+/+aWR//gjz7/8Yw//yK1Of8kv0v/J8lP4QAAACUAAAAAAAAAAKB/e8z1sGj/2oAp/+N/
        Kv9wnS//GbxD/xG6O//LtZT/6JpM/9+NOf/vjDv/MKcn/ybDU/8awk3/xa+C/+iXSf/eizj/74g3/yC2
        OP8duD3/IMRC4QAAACMAAAAAAAAAAJ6Bfsj6uXb/1nsf/996If9xnSz/FLc5/wy0Mv/KtJT/7JxT/92I
        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
        THgiiUN0JJZJago2HDoAAAAi/6dLJsmCQj9gQSFCNyIPLwAAACMONx0hAAAAGwAAABoAAAAWAAAAEgAA
        AAAAAAADAAAADwAAAA4AAAANAAAACgAAAAsAAAAHAAAAAAAAAACVcXbcyI1g/+mWQP/llET/6JhJ//qW
        SP9bsDj/K9Ro/zHRY/8p2mL/dXVo+7p6WfPpl0T76ZxM//OjUf//pFH9L7gy4DXkdPw34m/uMeNr2FGU
        X6yAUVCO/6tMpvWjT7rtnk25/JlKsy64PaUtw2CmLb9ckCqyVX4AAAAAAAAAAJBxeNbknVj/55hL/+CP
        Pf/gkEH/8o1B/1SmLv8myl3/K8RY/x7JUf+xw7n/8ZQ5/+SVRv/ilUb/45VH//qTSv8YqyD/L81l/y7H
        Xv8mzVz/c6aC/+2OQv/llkX/5pdI/+aZSv/9k0n/IbUz/y3NYv8vy17/L8xe/wAAAAAAAAAAj3R71uOh
        YP/onlP/3ok1/96MOf/wijv/UqMr/yLFWP8owVH/F8JJ/62+tf/skj7/4pVJ/+GSQ//ik0P/+pBI/xWn
        Gv8syWH/LMVa/yHHVP+FwZz/8pRD/+GUR//hkkL/4ZRD//mPRf8ery3/J8RW/yjBUv8pwlL/AAAAAAAA
        AACPdHvR5KJk/+qiW//bhC7/3Igz/+6EMv9Toir/H8NP/yW+S/8Uv0D/rb+1/+2WQ//ilkr/4JA//+CQ
        P//6jkP/EaQV/yrHXv8qw1b/HsRQ/4O9mP/0l0n/4pVH/+CPPv/gjz7/+Yw+/x+wLv8iv07/JL1J/yS9
        Sv8AAAAAAAAAAI90e8/np2r/7alh/9mAJv/agyz/7IAs/1SjKv8ZvUf/IbpE/w+6OP+twbb/8JlJ/+OX
        S//fjjz/3448//mKP/8RoxP/KMVa/yjBUv8cwkz/g72X//adT//ilUj/3ow4/96MO//2iDr/ILUy/x+7
        Q/8guUH/ILlB/wAAAAAAAAAAj3V8zOaqb//vrGn/1nsd/9h/Jv/peyb/V6Qt/xa6Qf8etz3/DLcy/67B
        tv/xnU7/45lP/96KNv/eizj/+Ig8/w2kFv8mw1P/Jr9N/xq/Rv+DvZb/96BX/+KVSv/diDT/3Yk1//WD
        NP8hujf/GLQ5/xu0OP8btDn/AAAAAAAAAACPd37J5654//Oxb//TdBb/1nsg/+d3Hv9Zpy3/Erc4/xqz
        N/8KtCr/qb2x//WiVP/lm1D/3Ygx/92JNP/3hTf/D6kb/yTAT/8kvUn/GL5C/4K+lf/6pV7/4pZJ/9uF
        Lf/bhjD/8oAw/ybBQP8TsDH/F7Aw/xewMf8AAAAAAAAAAI92fMfosX3/9Ld3/9FvDv/Udxn/5HAX/1qn
        Mf8PtDL/F7Ax/wWwJf+XrqD/9qRa/+SaUf/bhC3/24Yx//SDMv8TrB//Ir5J/yK7Rf8WvD7/cKyD//6p
        ZP/hlUn/2oIo/9qDLP/xeyn/LcRG/w6rJ/8TrCj/E6wq/wAAAAAAAAAAj3h+wuy1hf/2un7/z2oH/9Jy
        E//ibBD/Xaoy/wquKv8UrSr/Aawb/7HFt//3p1//5p1U/9qCKv/ahC3/8n4u/xiwJ/8gvET/ILlB/xS6
        Of+BvpP//65s/+KYTP/YfCP/2IAn/+13JP8xyk//CaYc/w+oH/8PqCD/AAAAAAAAAACQeoDB7bqK//m+
        hP/LZQD/0G4N/+BnCv9fqjT/Bqsk/xGqI/8AqBP/scS2//mqY//ln1X/2H4k/9mBKf/xeyn/G7Uu/xu3
        QP8dtjz/ELY0/4K8jv//sXH/4pdP/9d5Hf/XfCL/7HMd/zfQVf8EoRL/CqMW/wukGP8AAAAAAAAAAI95
        frzwvo//+8CE/8RWAP/MYAD/31kA/2WpM/8Epxv/DaYc/wClDf+vxLP/+q1o/+WeWP/XfB//2H8l/+95
        JP8guTP/GLQ5/xu0OP8NtC//gb2N//+2d//imVD/1HYX/9V5Hv/pbxf/PNVe/wCaBv8Gnw3/B6AQ/wAA
        AAAAAAAAkHt+vOrFpv/+1rL/8byJ//Wygv+qtV7/ScdM/wGgEP8KoxX/AKAE/7DDsf/9r23/559Y/9d4
        HP/XfCL/7nUh/yS+Of8WsjT/GbI0/wuyKv+Buoz//7qA/+KYUf/UchP/1HYZ/+ZrEP8/3mf/AKYM/wCi
        Av8AowD/AAAAAAAAAACPenq24dbZ//ny9//38fj///L//3Dym/853GL/AJoH/wegD/8AnQD/r8Kv//60
        dP/noVr/03cX/9V6Hv/rcxv/KcJA/xOwMP8XsDD/CbAm/4G7i///v4b/4ppT/9FvDP/ScxT/2mkE/6DK
        q/+q27n/zfbZ/5p8evYAAAAAAAAAAJF9fbbYzMz/7+fn/+vj4//54Ov/efKc/0HgZv8AlAD/AJkC/wCX
        AP+htqL//7h4/+miW//SchL/1Hca/+luFv8tx0b/EK0q/xWuLP8HriL/erWD///Fjf/hmVL/0GsI/9Fw
        EP/UZwD/yLa9/9O7wf/03OD/kmJl5QAAAAAAAAAAkn5+scS5uf/UzMz/0srK/+DJ0f9u8pj/NuNo/wGt
        GP8ItB//DLQf/7LCs//+uXv/6KNc/9FwD//TdRf/6GwS/zLLTP8NqiX/E6wo/wWsHv90r37//8mW/+KZ
        Uv/NZwL/z20L/9FkAP+8sLP/xre4/+nY2P+RZ2flAAAAAAAAAACQfX2w39XV///29v/68fH///H0/+3q
        5//n6uX/7vPu/8nRzP//8/////P9//q6ev/ppWL/z2wK/9JyE//nZw3/NdFT/wunIP8RqiP/AqkZ/4C6
        h///zpv/4ppT/8xkAP/Oagf/zmAA/8m/wv/Uxcb//Ovr/5JoaOUAAAAAAAAAAJB/f6zd0tL//PX1//fu
        7v/47u7/+e7w//rv8f//8vT/z8XH//jt7v/17/P/+rx+/+uoZf/Pagf/0XAQ/+ZkCf812Fz/CaUb/w+o
        H/8AphP/f7qE///Qmv/nnFL/zF0A/8tcAP/IUAD/3M3N/+PT1P/56ur/kGdn5QAAAAAAAAAAkICAqdvS
        0v/79fX/9/Dw//fw8P/37+//9+/v//zy8v/QyMj/9e7v//bw9v/8wIP/66lo/8xoAf/Pbgz/42ID/zvc
        Y/8GohT/DaYb/wCkD/9+uYH/38fN/9nLyv/x4uD/9efm//Lm6//x4+X/8N7e//no6P+QamrlAAAAAAAA
        AACQgYGn3NHR//329v/48fH/+PHx//jw8P/38PD/+/Pz/8/Ly//37e7/9vH2//3Eh//sqmj/y2MA/85r
        CP/hXgD/P+Fq/wOfD/8LpBf/AKIK/364fv/bxc//0cbH/+vd3v/w4+P/797f/+7d3f/u3Nz/+erq/5Bp
        aeUAAAAAAAAAAJKEhKPa09P///n5//z09P/69fX/+/X1//v09P//+Pj/083N//ny8//69Pn//8eM/+yr
        av/KYAD/zWkE/+BaAP9D5XH/AJwK/wihEv8AoAb/gLh9/+DJ0v/UyMj/7uDg//Xk5P/y4uL/8+Hh//Hg
        4P/86+v/kmtr5QAAAAAAAAAAkoaGotDKyv/v6+v/6uXl/+rk5P/p4+P/6OLi/+rk5P/BvLz/49zc/+Lc
        4P//yIv/7apk/8tgAP/QYwD/2VoA/0vnc/8AmgT/B6AO/wCfA/9vqm3/w7G5/7uwsP/RxcX/1cnJ/9TF
        xf/TxMT/08PD/9vOzv+RamrlAAAAAAAAAACSiIidwru7/97a2v/c19f/3tnZ/9/a2v/g29v/5d/f/8C6
        uv/i3d3/5ODh/+Ti5v/n5u7/6+v2//nt//9m/qP/Se57/wCVAP8EnQr/AJwA/3qydf/Wwsv/0MTE/+nb
        2//v4OD/797e/+/f3//v3t7/+erq/5Jra+UAAAAAAAAAAJOIiJzZ09P///////75+f/9+vr//fj4//33
        9///+/v/1dDQ//v09P/79PT/+fLy//rx8f/48PD//+75/3T4nf9Q733/AJMA/wKbBv8AmQD/erN2/9nE
        zf/UyMj/7d/f//Lj4//x4OD/79/f//Df3//66+v/kGxs5QAAAAAAAAAAkouLltTQ0P///v7/+/f3//v3
        9//69vb/+vX1///6+v/U0dH/+PLy//jz8//48fH/9/Dw//fu7v//7fb/bv+d/0byev8AjAD/AJQA/wCS
        AP9/vnv/9uDn/9TIyP/s4OD/8+Tk//Dg4P/v39//797e//rs7P+Qa2vlAAAAAAAAAACSioqW1c/P////
        ///7+fn/+/j4//v39//69vb//vn5/9XS0v/48vL/+PLy//jx8f/38PD/9+/v//zx9P/X0ND/8uPo///y
        /P//9P////L////s9f/67O7/08jI/+7f3//y4+P/8OHh//Dg4P/v3t7/+uvr/5Bra+UAAAAAAAAAAJOM
        jJHSz8////////z6+v/8+fn/+/j4//v39//++vr/19PT//jy8v/69PT/+PLy//jw8P/37+//+/Hx/9vT
        1P/v5OX/+O3u//bp6v/26On/8+fn//fp6f/Sxsb/7d/f//Lj4//w4eH/8ODg/+/f3//66+v/kGtr5QAA
        AAAAAAAAkY2NkNPQ0P////////7+///9/f///Pz//vz8///////b19f//Pj4///5+f/++Pj//vf3//33
        9///+Pj/4NnZ//Pr6//+9fX//PPz//3x8f/88fH///T0/9nR0f/26en//O/v//rt7f/77e3/+uzs///2
        9v+Tbm7lAAAAAAAAAACVkJCM0M/P///+/v/19PT/8u/v/+3r6//p5OT/5uLi/8jCwv/b09P/2NDQ/9TL
        y//QxcX/zMDA/8m8vP+4qqr/va6u/72srP+4pqb/taKi/7Kbm/+vmJj/pIyM/6aMjP+kh4f/oIKC/5x9
        ff6Zdnb+mXh4/Jp1deEAAAAAAAAAAJiWlnqTkJDaj4uL0o2Hh8qPh4fDjoeHu5CGhrKPhoarkYaGpJGE
        hJyPg4OUk4KCjJCAgIWSgIB8koGBdZV/f26Sfn5lknx8Xpd+flaWenpOlnx8RpF6ej+Ye3s3lXp6L5R7
        eyeWdXUgknJyGJZ4eBGKdXULe05OBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////+AH///gAAAAYAAAAGAAAABgAAAAYAA
        AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA
        AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAD///////KAAAADAAAABgAAAAAQAIAAAA
        AACACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A7HMcACfVYgClnp4AAIwAAPvNoAB0+J0Ak5QoAOWj
        YQCTa2wAydHMAGW3fwAfsC4An7JRAMhQAABX74QA9NzgAIOceQCmz6AAqoRNAPGUOQBhxFAA/7d4AM32
        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
        AAAADwAAwAAAAAAPAADAAAAAAA8AAMAAAAAADwAAwAAAAAAPAADAAAAAAA8AAMAAAAAADwAAwAAAAAAP
        AADAAAAAAA8AAMAAAAAADwAAwAAAAAAPAADAAAAAAA8AAMAAAAAADwAAwAAAAAAPAADAAAAAAA8AAMAA
        AAAADwAAwAAAAAAPAADAAAAAAA8AAMAAAAAADwAAwAAAAAAPAADAAAAAAA8AAMAAAAAADwAAwAAAAAAP
        AADAAAAAAA8AAMAAAAAADwAAwAAAAAAPAADAAAAAAA8AAMAAAAAADwAAwAAAAAAPAADAAAH///8AAP//
        /////wAA////////AAAoAAAAMAAAAGAAAAABACAAAAAAAIAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLcXEJp3V2C29KVAbrmj0k45RGWaJsM1+FWixYbkskSjgZ
        DDcFNRE5BR0QOQAIBTkCBQMuAAIALAAAACgAAAAnAAAADAAAAAAAAAAEAAAAHwAAACMAAAAfAAAAHAAA
        ABgAAAANAAAAEwAAABYAAAARAAAADQAAAAgAAAADAAAAAAAAAAAAAAACAAAAAgAAAAEAAAABAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZc3Pmk3J2/LR/Y/bhkUL55JVG/+ma
        TP/snkz/9ZxN/6yfNu0m12L8NNpr/TPbavs12mz3MeRs82ZbUYNcRExwwoBJZvukTNX2o1Dd7p9Qzeib
        TbvolUqpe2cnXyTCVJ8uwl+dK7FXhSWgTW0ehT9WAiUNNAAAACoAAAAa/7FKGJlfMSE1IQ42JhwMMxkR
        BzACAAAsAAAAKwAAACsAAAAnAAAAIwAAAB8AAAAcAAAAGAAAAAAAAAAAAAAAAAAAAACUcXTx3ah+/+iW
        QP/jlUX/4ZJD/+KURv/ilEX/6pNE/5SYLf8fx1b/Lsdf/y7HXv8ux17/Jc9d/5Bzd/+sd1b/5pRB/+GU
        Rf/kl0r/5ZhL/+aYS//yl0z/UaUm/CPET/4yzWX/Mc1k/zHPZf8v12f/XI9d0nhRWa/Wi0O76ZhH++yc
        TP7yolD89aJR+v+hUfdlri7iLdpp7zPVZ+Iz0mXNMsxjuzHQZaMAAAArAAAAKQAAAAAAAAAAAAAAAAAA
        AACScnXq3KR1/+WYSP/jlkn/4JA//+GRQP/hkUL/6JBC/5KUKf8exVH/LcZa/yzFWf8sxVn/H8dS/8u/
        yP/nl0r/5JND/+KWSP/jlUf/45VH/+OVR//ylUn/TKAg/yPATf8wyWH/L8hf/y/IX/8pzF3/e6CB/9GH
        T//nlkL/4ZNH/+SVR//jl0n/45dJ//CVSf9RoSL/Kshe/y3HXf8tx13/Lshd/zDXZPQDCgYsAAAAKAAA
        AAAAAAAAAAAAAAAAAACScnbp3ah4/+ibTf/lmUz/34w6/9+OPP/fjjz/5409/5CSJf8awU3/K8RW/ynC
        VP8pwlT/HMRN/8m9xv/jl0v/4pVG/+GUR//ik0T/4pRF/+KURf/wkkf/SZ4b/yG/Sv8ux17/LcZc/y3G
        XP8kyFj/kL6h/+eYUv/klUf/4ZRG/+KTRP/ilEX/4pRF//CSR/9Pnx//JsVY/yrDVv8qw1b/KsNW/y3U
        XfQACQAsAAAAJwAAAAAAAAAAAAAAAAAAAACSc3fp36p8/+meU//km1H/3Yk1/96LOP/eizj/5os4/5GQ
        I/8Yv0n/J8BR/yfAUP8nwFD/GMFH/8q8xf/kmU//45dK/+GUR//hkkL/4ZJC/+GSQv/wkkb/R5sZ/yC9
        R/8txlv/LMVZ/yzFWf8jxlT/jrye/+iZVP/ll0r/4ZNF/+GRQf/hkkL/4ZJC/++QRP9Qnx7/JMJT/yfA
        UP8nwFD/J8BQ/yvQWPQACQArAAAAJgAAAAAAAAAAAAAAAAAAAACSdXjj26Z7/+ujWf/mnFX/3Icx/9yI
        M//ciDP/5Ig0/5GRIv8Xv0b/Jb5N/yW+S/8lvkv/Fr5D/8y+x//lm1L/5ZlM/+GUSP/gkD//4JBA/+CQ
        QP/vkEL/RJkU/x67RP8rxFj/KsNW/yrDVv8hxFD/jrye/+mbWP/mm07/4JJE/+CPPv/gkD//4JA//+6O
        QP9SoSL/IcBO/yS9Sv8kvUr/JL1K/yfNUfQACwAqAAAAJgAAAAAAAAAAAAAAAAAAAACSdHjg3Kp+/+ym
        Xv/nnlf/24Mr/9uFL//bhS//44Qw/5KQI/8VvEP/JL1I/yO8R/8jvEf/FLw8/8u/yP/lnFX/5pxP/+GU
        Rv/gjz3/4I89/+CPPf/ujUH/Q5gS/x26Qf8qw1X/KcJT/ynCU/8gw03/jryd/+qdXP/nnVP/4JFD/9+N
        O//fjjz/3408/+yLPP9Xoyj/H7xG/yK7Rf8hukT/IrxF/yTJTPMACwEpAAAAJQAAAAAAAAAAAAAAAAAA
        AACSdXng3qyC/+6pY//ooVr/2IAm/9qCK//agiv/4IEq/5SQJP8Uu0D/ILlE/yC5Qv8guUL/Ero4/8zA
        yf/mnlf/55xS/+GURv/fjTn/3407/9+NO//ujT3/RJgT/xy5QP8pwlP/KMFR/yjBUf8fwkv/j7yc/+uh
        X//on1b/35FD/96LOP/ejDj/3os4/+uJOf9Uqi3/G7pC/x+4P/8fuD//H7g//yHGRPMACwIpAAAAJAAA
        AAAAAAAAAAAAAAAAAACUdnrc26qA//Gsaf/polz/13wi/9h/Jv/Yfyb/334m/5WRJf8Tuj3/Hrc+/x63
        Pv8etz7/Drcy/83DzP/noFr/6J9V/+GVSf/eizf/3os4/96LOP/tijv/PZkT/xu4Pv8nwFD/Jr9O/ya/
        Tv8cv0j/jbyc/+yjY//po1r/35BA/92JNP/diTX/3Yk1/+qGNf9XrTT/GLY8/xy1Of8btDn/HLU5/x/F
        P/MABQIoAAAAJAAAAAAAAAAAAAAAAAAAAACReHvX3K2H//Kxbv/rpGD/1nkd/9d8Iv/XfCL/3noi/5eT
        Jf8Sujv/HLU5/xy1Of8ctTn/DLUv/8/DzP/po17/6aFZ/+GUSf/diDX/3Yo2/92KNv/siDf/PZwW/xu4
        PP8mv0z/Jb5L/yW+S/8cv0X/j72d/+2lZv/spV3/3o4//9yHMf/chzL/3Icy/+mEMv9csjr/FrM2/xmy
        NP8ZsjP/GbIz/xvBN/MABQMnAAAAIwAAAAAAAAAAAAAAAAAAAACRd3vX2auI//S0c//qp2L/1HUX/9V5
        Hv/VeR7/3Hcd/5mTJ/8Ptzj/GrM1/xmyNf8ZsjX/C7Mq/7uyuv/oo2D/6qNc/+GUR//ciDL/3Igz/9yI
        M//rhzX/QJ4a/xu4Pf8jvUn/I7xI/yO8SP8avUL/i7mX/++oav/tqWL/3o0+/9uFLv/bhS//24Uv/+eB
        Lf9huEL/FbEz/xavLv8Wry7/Fq8u/xi/NPMABgQnAAAAIwAAAAAAAAAAAAAAAAAAAACTeHzV2KyI//e5
        ef/rqWb/03IS/9R3Gf/Udxn/23UY/5qTJ/8QuDb/GLEx/xixMf8YsTH/CbEm/7GpsP/opWH/66Vf/+CT
        R//bhTD/3IYx/9yGMf/phDH/RJ8d/xu4O/8jvEb/IrtF/yK7Rf8avT//d6aE/+2mav/uq2f/24s8/9qD
        K//agyz/2oMs/+Z/Kf9mvEj/Ea8t/xOsKf8TrCj/E6wo/xW8LPMACAAmAAAAIwAAAAAAAAAAAAAAAAAA
        AACSeXzO3LGP//m8fv/tqmr/0HAO/9J0Ff/SdBX/2HIU/5uTKP8NtTL/Fa4s/xWuLP8Vriz/Bq8g/9LI
        0f/sqGf/7Khi/+GUR//bgyz/24Qu/9uELv/pgi//RqIg/xu4PP8guUP/ILlC/yC5Qv8WuTv/j76b//Ot
        cf/vrmr/3Ys6/9mBJ//ZgSj/2YEo/+R6Jf9swVH/EK0o/xCpI/8QqSL/EKki/xG3JvMACAAmAAAAIwAA
        AAAAAAAAAAAAAAAAAACSen3O3bOS//q/g//sq2z/z2wJ/9FxEf/RcRH/124P/52TKP8MtC//E6wo/xOs
        KP8TrCj/Aaoa/9HI0P/sqmn/7apm/+GUR//agin/2oMs/9qDLP/ogSv/SaQk/xu4Ov8fuUD/H7g//x+4
        P/8VuDj/jLuZ//Ovdv/wsG7/24w9/9h9I//YfyX/2H8l/+N4If9wxln/Daoi/w6nHf8Nphz/DaYd/w61
        IfMABwAnAAAAIwAAAAAAAAAAAAAAAAAAAACUfX/N2rGR//zEi//urm7/zWgD/9BuDf/Qbg3/1msL/56V
        K/8Lsyz/Eaoj/xGqI/8RqiP/AKgW/9PH0f/trGv/7qxp/+GUR//ZgCf/2YEp/9mBKf/nfin/S6co/xu4
        Of8dtj7/HbY8/x22PP8Stjb/jL2Z//axdv/zsnP/24s7/9d7IP/XfCL/13wi/+F1Hv92y2H/C6gd/wuk
        F/8Koxb/C6QX/wyxGvMABwAnAAAAIwAAAAAAAAAAAAAAAAAAAACSfH/F27OU//7HkP/vr3D/zGUA/85r
        Cf/Oawn/1GgF/6CVK/8Ksir/D6gf/w6nHv8PqB//AKYQ/9PH0P/urm//765t/+GUR//YfiX/2H8n/9h/
        J//lfCb/Tqks/xu3Of8ctTr/HLU6/xy1Ov8RtTL/jLyY//azef/ztnj/2oo6/9Z5Hf/Weh//1nof/99z
        Gf970Wn/CKUZ/wihEv8IoRD/CKER/wqvFPMABwAoAAAAJAAAAAAAAAAAAAAAAAAAAACSfYDF3LWV///K
        k//usHH/yFwA/8phAP/MYQD/1l0A/6aRKf8KsCb/DKUZ/wylGv8MpRr/AKQM/9HH0P/wr3H/8bBv/+GT
        Rv/XfSH/134k/9d+JP/keyP/UKwv/xu3Of8btDf/G7Q3/xu0N/8QtC//jLyY//m1ff/1uHv/2oo5/9V3
        Gv/VeBz/1Xgc/95wFf+A1nD/BKMT/wWfCv8Fngv/BZ4M/wetD/MABgApAAAAJQAAAAAAAAAAAAAAAAAA
        AACSfH7F17ah//3Trf/90qr/+s2j//XCj//5wJf/ksVl/2nTZf8NrCH/CqMW/wqjFf8KoxX/AKII/9HI
        0f/xsHD/8rNy/+GTRv/XeiD/13wi/9d8Iv/keCH/VK4z/xu3OP8ZsjT/GbI0/xmyNP8Osiz/jL2W//q3
        gP/2vID/2og4/9R1Fv/Udhn/1HYZ/9xuEv+F2Xb/DKoe/wCeB/8AmAD/AJkA/wCmBfMAAAAgAAAAEwAA
        AAAAAAAAAAAAAAAAAACVfn++1MfJ//fv8//07PD/9Ozx//Tt8v//7fv/Tep6/0/vfv8PqBv/CKEQ/wih
        Ef8IoRH/AJ4C/9HI0f/ysnT/87R1/+GTRv/VeBz/1nof/9Z6H//idh7/VrE2/xm3N/8YsTL/GLEy/xix
        Mv8NsSr/jLuX//u6hP/4vYP/2Yc2/9NzE//TdBb/03QW/9luDv+EuWj/Y+GS/27pmP9386L/h82U/3WX
        aL8A/wABAAAAAAAAAAAAAAAAAAAAAAAAAACUfX281cfH//nv7//26+v/9uvr//br6///6/T/V+2A/1r0
        hf8Opxj/BZ4M/wWeDP8Gnwz/AJwA/9LK0f/ztXj/9Ld5/+GTRv/Udxr/1Xkd/9V5Hf/hdRv/WbM6/xm3
        Nf8Wry//Fq8v/xavL/8Lryb/jb2V//y8h//5woj/2IY3/9JwEP/SchP/0nIT/9RtB//VqZb/1bzF/+fI
        z//+3uX/y6Op/6dud6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVgIC8zcHB//Pq6v/v5ub/7+bm/+7l
        5f/64uz/XPKI/1/6jv8LpBX/A5wI/wOcB/8EnQj/AJwA/8jAyP/0tnv/9bh8/+CTRf/TdRb/1Hca/9R3
        Gv/gchf/XLY+/xm3Nv8Vriz/Fa4s/xWuLP8KriT/hreP//6/i//6xI3/1YU0/9FuDP/RcBD/0XAQ/9Fs
        A//Hpo//wre5/9PCwv/p19f/v6Ki/6R1dacAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXgoK3r6Ki/7y2
        tv+7s7P/vLS0/721tf/Hs7z/XfWM/2L/lv8Hogz/AJUA/wCTAP8AlAD/AJQA/6ajqf/zt3v/9rqA/9+S
        RP/SdBX/03YY/9N2GP/fcRX/XrlB/xm3NP8UrSj/E6wp/xOsKf8KrSH/dqd+//2/jP/9yJD/1IIy/89s
        Cf/Pbgz/z24M/9BqAf+5mIH/saWn/8CwsP/UxMT/tpqa/6R4eKkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AACUgICz08bG//z19f/48PD/+PDw//rw8f//7/X/d++d/13liv9O3Hz/UeN//0/mf/+A6J7/t+e8//70
        /P/3u3//97yD/+CTRf/RchH/03QV/9N0Ff/dbhH/YbpG/xm3NP8RqiX/Eqsm/xKrJv8Hqh3/jr2V///E
        k//+yZT/1YQy/85qBf/ObAn/zmwJ/85nAP/Nq5P/zL/C/93Ly//14uL/yKys/6V3d7AAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAACUg4OzzsHB//rx8f/27e3/9u3t//bt7f/47e///+30///u9v//7ff///D6/97J
        0f/s2uH//e3y//bu9f/2vIH/+L6G/+GUSP/Rbw//0nIT/9JyE//eaw//Yb9L/xm3M/8RqiL/Eaoj/xGq
        I/8GqRn/jbyS///Glf//y5n/1YIw/81oAv/Nagb/zWoG/81kAP/MqJH/yru+/9rJyf/z4eH/yKur/6R3
        d7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVhISwzsLC//vy8v/37u7/9+7u//fu7v/37u7/9u7u//bt
        7f/27e3/+fDw/9LKyv/k29v/9+7u//Xv9f/3voT/+cCJ/+GVSv/Qbwv/0XER/9FxEf/cagv/YcRQ/xm3
        M/8Opx//D6gg/w+oIP8Dpxb/i7yS///JmP//z5r/1X0o/8phAP/LZAD/y2QA/8tdAP/PqpH/0cTH/+DP
        z//y4OD/yKys/6R3d7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVg4OqzsTE//vz8//37+//9+/v//fv
        7//37+//9+/v//fu7v/27u7/+fHx/9PMzP/k29v/+O7u//bw9P/4wIf/+sON/+GVSv/PbAn/0G8O/9Bv
        Dv/baAn/Y8dU/xm3M/8Nphz/Dqcd/w6nHf8CphX/jLuO//jIpf/4zqf/4qp0/+OcWP/hlkz/3ZRP/9qQ
        Sv/qzL3/8eDi//Dc3P/x39//yKys/6R4eLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVhoaqyr+///31
        9f/48PD/+PDw//fw8P/38PD/9+/v//fv7//37+//+vHx/9XOzv/j29v/+O/v//bw9f/5won/+8WQ/+GV
        Sv/OagX/z20L/89tC//aZQX/ZslZ/xm3Mv8MpRr/DKUa/wylGv8BpRH/jbuN/9XFzf/d0tf/w7q//+nf
        5v/y6O//8ebt//Hl6v/v4OL/7tzd/+7c3P/w4OD/yK2t/6R4eLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AACUhYWpysDA//z29v/48fH/+PHx//jx8f/48PD/+PDw//fw8P/38PD/+vLy/9bPz//j3Nz/+PDw//bx
        9v/6xYz//MeS/+GVSv/NaQP/zmwJ/85sCf/YZAL/asxd/xm3Mv8Koxb/C6QY/wukGP8Aow3/j7qL/9jE
        yf/e0tL/xbm5/+nb2//x4eH/79/f/+/e3v/v3t7/7t3d/+7c3P/w39//yK2t/6R4eLAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAACUiIiizMLC//z39//48vL/+PLy//jx8f/48fH/+PHx//jx8f/48PD/+vPz/9bQ
        0P/j3Nz/+fDw//fy9f/7xZD//cmV/+GVSv/NZgH/zmoH/85qB//YYgD/bM9h/xm3Mf8JohP/CqMV/wqj
        Ff8Aogr/jLqI/9bEyf/f0tL/xru7/+rb2//x4eH/8N/f/+/f3//v3t7/7t3d/+7c3P/y39//yK2t/6R4
        eLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUiIiiyL+///75+f/58/P/+fLy//ny8v/68vL/+PPz//jx
        8f/48fH/+/T0/9fR0f/k3d3/+fHx//fy9//9yJP//8uZ/+GVSv/MZAD/zWgE/81oBP/WXwD/btFl/xi4
        Mf8GoBD/CKES/wihEv8AoAf/jbqK/9jHzP/g09P/x7y8/+ze3v/y5OT/8uLi//Hh4f/x39//8d7e//Df
        3//04+P/ya6u/6R4eLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUiYmiysHB///8/P/+9/f//Pj4//32
        9v/79/f/+/X1//z09P/69fX//PX1/9fS0v/k3d3/+fHx//Pw8///ypP//86Y/+GSQv/KXAD/zGEA/81h
        AP/aVgD/dNBn/xm3Mf8Fngz/B6AP/wegD/8Anwb/g7F//8m4vf/RxMT/ua+v/9rMzP/g0dH/39DQ/93O
        zv/czc3/3MzM/9vLy//czs7/vaSk/6V6erAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACWi4uarqen/8XB
        wf/Bvb3/wby8/8G8vP/Au7v/wLu7/767u//Au7v/wr29/6ahof+xrKz/w76+/8G9wP/cw63/4Mex/9i4
        nP/Tq4n/1KuJ/9apjv99w1n/YuyB/xq2Lf8Fngv/BZ4M/wWeDP8AnwP/ead1/7qrsP/Eubn/sKWl/9HE
        xP/Yysr/18vL/9jJyf/ay8v/2cvL/9vLy//dzs7/vqSk/6V6erAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AACXjIyZvre3//Tw8P/x6+v/8u7u//Pu7v/07+//9e/v//fy8v/28vL/+/X1/9jS0v/m4OD/+/T0//ry
        8v/48vT/9/L1//ny9f/58/f/+PL3///y/f9T9on/XfqQ/x21LP8Cmwf/BJ0J/wSdCf8AmwD/jLqI/9nI
        zf/i1NT/yb+//+zf3//05eX/8uPj//Li4v/x4eH/8eDg//Hf3//05OT/ya+v/6R5ebAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAACWi4uZxb6+///9/f/79/f/+/f3//v39//79vb/+/b2//v09P/59fX//Pb2/9nV
        1f/m4OD/+vT0//jx8f/58PD/9+/v//fv7//27u7/9+3t///t9P9Y9on/YfuT/xy0LP8BmgT/A5wG/wOc
        Bv8AmgD/ireE/9XEyv/e0dH/yb29/+rd3f/y4+P/8OHh//Dg4P/v39//797e/+/e3v/y4eH/yK6u/6R5
        ebAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUi4uTxb+////9/f/79/f/+/f3//v39//69vb/+vb2//r1
        9f/69fX//Pf3/9nV1f/m4eH/+vT0//jx8f/48fH/9/Dw//fv7//37u7/9u7v///t8/9c+Y//Zf+Z/xu1
        Kf8AmAD/AJkB/wCZAv8AmAD/h7eC/9fGyv/f1NT/yLy8/+vd3f/y4+P/8OHh//Dg4P/w39//79/f/+/e
        3v/y4eH/yK+v/6R5ebAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVjo6Qwbu7///+/v/7+Pj/+/j4//v3
        9//79/f/+/b2//r29v/69fX//fj4/9rV1f/m4eH/+/X1//jy8v/48fH/+PDw//fv7//37+//9u7u//7t
        8v9a/I7/Yv+Y/yK7Nf8GoA3/CKMO/wyjEP8GoAr/ps+g//vp7v/36ur/xry8/+vd3f/y4+P/8OHh//Dh
        4f/w4OD/79/f/+/e3v/y4eH/yK+v/6R5ebAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVjY2Qwby8////
        ///8+fn//Pj4//v4+P/7+Pj/+/f3//v39//69vb//fj4/9vY2P/l4eH/+/X1//ny8v/48fH/+PHx//fw
        8P/37+//+O7u//vv8f/Xzs7/5djc///v9f//8fj///D5///w+v//7vn//Orw//Xn6P/26en/x7u7/+ve
        3v/y4+P/8eLi//Dh4f/w4OD/79/f/+/e3v/z4eH/yK+v/6R7e7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AACWkJCMwb29///////8+fn//Pn5//z5+f/7+Pj/+/j4//v39//79vb//fn5/93Z2f/l4OD/+/X1//nz
        8//48vL/+PHx//jw8P/37+//9+7u//nx8f/Z0NH/4tra//jt7f/26uv/9enp//Xp6v/06Oj/8+fn//Pm
        5v/16Oj/x7u7/+ve3v/y5OT/8eLi//Dh4f/w4OD/79/f/+/e3v/z4eH/yK+v/6R7e7AAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAACWkJCHvbu7///////8+vr//Pr6//z6+v/8+fn/+/j4//v4+P/79/f//Pn5/9zY
        2P/l4OD/+/b2//nz8//48vL/+PHx//jw8P/38PD/9+/v//jx8f/Y0ND/4dra//ft7f/16ur/9Orq//Tp
        6f/06Oj/8+fn//Pm5v/16Oj/x7u7/+ve3v/y5OT/8eLi//Dh4f/w4OD/8N/f/+/e3v/z4+P/ya+v/6R7
        e7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACWkpKHvbq6///////9+/v//fv7//z6+v/8+vr//Pn5//v4
        +P/79/f//vj4/97Y2P/l4uL/+/b2//nz8//58vL/+PHx//jx8f/38PD/9+/v//rw8P/Y0tL/4dra//ft
        7f/16+v/9urq//Tq6v/16en/9Ojo//Tn5//36ur/yb6+/+zg4P/05ub/8+Xl//Lk5P/z4+P/8+Li//Lj
        4//25+f/y7Gx/6R8fLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACWkpKFv729//////////////7+////
        /////v7///39///8/P///f3//////+Hd3f/q5ub///z8///6+v//+fn///r6///5+f/++Pj///f3///5
        +f/e2Nj/6eHh///29v/98vL/+vDw//ju7v/26+v/9Ojo//Dj4//v4uL/xbi4/+HQ0P/j0dH/3czM/9nH
        x//WwcH/0r29/8+4uP/Ntrb/tJaW/6Z+frAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYlpZ+tLKy/+/v
        7//m5eX/4+Dg/97b2//b19f/1tLS/9PMzP/OyMj/zMTE/7qysv+6sbH/wLe3/7uysv+4rKz/s6en/7Ci
        ov+snp7/qZmZ/6aUlP+ei4v/m4mJ/5qGhv+YgoL/ln9//5R7e/+Tenr/knh4/pF3d/ySdnb5lnd39Jp6
        eu6ffn7non5+36KAgNehfX3PoX5+x6R8fL+kfX23pn9/r7KJiWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AACWlpZil5WV7pOPj+aRjo7ekYyM1pOOjs2SjY3FkouLvZOJibWUioqslIuLpJWKip2WioqUlomJjJWI
        iISWhoZ8lYiIdJWGhmyYhYVkl4ODXJiGhlOZg4NLmoKCQpmDgzqZhIQyl39/KpZ/fyKTgIAak3d3E5SB
        gQySaWkHf4SEBFNVVQMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
        AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAPx//////wAAwAAAA///
        AADAAAAAAA8AAMAAAAAADwAAwAAAAAAPAADAAAAAAA8AAMAAAAAADwAAwAAAAAAPAADAAAAAAA8AAMAA
        AAAADwAAwAAAAAAPAADAAAAAAA8AAMAAAAAADwAAwAAAAAAPAADAAAAAAA8AAMAAAAAADwAAwAAAAAAP
        AADAAAAAAA8AAMAAAAAADwAAwAAAAAAPAADAAAAAAA8AAMAAAAAADwAAwAAAAAAPAADAAAAAAA8AAMAA
        AAAADwAAwAAAAAAPAADAAAAAAA8AAMAAAAAADwAAwAAAAAAPAADAAAAAAA8AAMAAAAAADwAAwAAAAAAP
        AADAAAAAAA8AAMAAAAAADwAAwAAAAAAPAADAAAAAAA8AAMAAAAAADwAAwAAAAAAPAADAAAAAAA8AAMAA
        AAAADwAAwAAAAAAPAADAAAAAAA8AAMAAAAAADwAAwAAB////AAD///////8AAP///////wAA
</value>
  </data>
</root>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPLv3)

Share

About the Author

Andrew Kirillov
Software Developer (Senior) Cisco Systems
United Kingdom United Kingdom
Started software development at about 15 years old and it seems like now it lasts most part of my life. Fortunately did not spend too much time with Z80 and BK0010 and switched to 8086 and further. Similar with programming languages – luckily managed to get away from BASIC and Pascal to things like Assembler, C, C++ and then C#. Apart from daily programming for food, do it also for hobby, where mostly enjoy areas like Computer Vision, Robotics and AI. This led to some open source stuff like AForge.NET.
 
Going out of computers I am just a man loving his family, enjoying traveling, a bit of books, a bit of movies and a mixture of everything else. Always wanted to learn playing guitar, but it seems like 6 strings are much harder than few dozens of keyboard’s keys. Will keep progressing ...

| Advertise | Privacy | Mobile
Web02 | 2.8.141022.2 | Last Updated 13 Mar 2007
Article Copyright 2005 by Andrew Kirillov
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid