├── text-label
├── ImageLabelFramework.suo
├── ImageLabelFramework.v12.suo
├── ImageLabelFramework
│ ├── bin
│ │ ├── Release
│ │ │ ├── ImageLabelFramework.exe
│ │ │ ├── ImageLabelFramework.pdb
│ │ │ ├── ImageLabelFramework.vshost.exe
│ │ │ └── ImageLabelFramework.vshost.exe.manifest
│ │ └── Debug
│ │ │ ├── ImageLabelFramework.vshost.exe
│ │ │ └── ImageLabelFramework.vshost.exe.manifest
│ ├── obj
│ │ └── x86
│ │ │ ├── Release
│ │ │ ├── ImageLabelFramework.exe
│ │ │ ├── ImageLabelFramework.pdb
│ │ │ ├── ImageLabelFramework.Zoom.resources
│ │ │ ├── ImageLabelFramework.MainForm.resources
│ │ │ ├── DesignTimeResolveAssemblyReferences.cache
│ │ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ │ ├── ImageLabelFramework.Properties.Resources.resources
│ │ │ ├── ImageLabelFramework.csproj.GenerateResource.Cache
│ │ │ ├── ImageLabelFramework.csprojResolveAssemblyReference.cache
│ │ │ └── ImageLabelFramework.csproj.FileListAbsolute.txt
│ │ │ └── Debug
│ │ │ ├── DesignTimeResolveAssemblyReferences.cache
│ │ │ └── DesignTimeResolveAssemblyReferencesInput.cache
│ ├── www.ico.la_a8b6db7b250d60603ba3469547b95944_128X128.ico
│ ├── Properties
│ │ ├── Settings.settings
│ │ ├── Settings.Designer.cs
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ └── Resources.resx
│ ├── Program.cs
│ ├── Zoom.cs
│ ├── ImageLabelFramework.csproj
│ ├── Zoom.Designer.cs
│ ├── ImageMetaData.cs
│ ├── MainForm.Designer.cs
│ ├── MainForm.cs
│ └── Zoom.resx
└── ImageLabelFramework.sln
└── LICENSE
/text-label/ImageLabelFramework.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework.suo
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework.v12.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework.v12.suo
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/bin/Release/ImageLabelFramework.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/bin/Release/ImageLabelFramework.exe
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/bin/Release/ImageLabelFramework.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/bin/Release/ImageLabelFramework.pdb
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.exe
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.pdb
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/bin/Debug/ImageLabelFramework.vshost.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/bin/Debug/ImageLabelFramework.vshost.exe
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/bin/Release/ImageLabelFramework.vshost.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/bin/Release/ImageLabelFramework.vshost.exe
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.Zoom.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.Zoom.resources
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.MainForm.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.MainForm.resources
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/www.ico.la_a8b6db7b250d60603ba3469547b95944_128X128.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/www.ico.la_a8b6db7b250d60603ba3469547b95944_128X128.ico
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/obj/x86/Release/DesignTimeResolveAssemblyReferences.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Release/DesignTimeResolveAssemblyReferences.cache
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.Properties.Resources.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.Properties.Resources.resources
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.csproj.GenerateResource.Cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.csproj.GenerateResource.Cache
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.csprojResolveAssemblyReference.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/alibaba/ocr-label-tool/HEAD/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.csprojResolveAssemblyReference.cache
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/bin/Debug/ImageLabelFramework.vshost.exe.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/bin/Release/ImageLabelFramework.vshost.exe.manifest:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Windows.Forms;
5 |
6 | namespace ImageLabelFramework
7 | {
8 | static class Program
9 | {
10 | ///
11 | /// The main entry point for the application.
12 | ///
13 | [STAThread]
14 | static void Main()
15 | {
16 | Application.EnableVisualStyles();
17 | Application.SetCompatibleTextRenderingDefault(false);
18 | Application.Run(new MainForm());
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.235
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace ImageLabelFramework.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 11.00
3 | # Visual Studio 2010
4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ImageLabelFramework", "ImageLabelFramework\ImageLabelFramework.csproj", "{62D2EC50-38D4-4A16-8212-0E0F3BBBA427}"
5 | EndProject
6 | Global
7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
8 | Debug|x64 = Debug|x64
9 | Debug|x86 = Debug|x86
10 | Release|x64 = Release|x64
11 | Release|x86 = Release|x86
12 | EndGlobalSection
13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
14 | {62D2EC50-38D4-4A16-8212-0E0F3BBBA427}.Debug|x64.ActiveCfg = Debug|x64
15 | {62D2EC50-38D4-4A16-8212-0E0F3BBBA427}.Debug|x64.Build.0 = Debug|x64
16 | {62D2EC50-38D4-4A16-8212-0E0F3BBBA427}.Debug|x86.ActiveCfg = Debug|x86
17 | {62D2EC50-38D4-4A16-8212-0E0F3BBBA427}.Debug|x86.Build.0 = Debug|x86
18 | {62D2EC50-38D4-4A16-8212-0E0F3BBBA427}.Release|x64.ActiveCfg = Release|x64
19 | {62D2EC50-38D4-4A16-8212-0E0F3BBBA427}.Release|x64.Build.0 = Release|x64
20 | {62D2EC50-38D4-4A16-8212-0E0F3BBBA427}.Release|x86.ActiveCfg = Release|x86
21 | {62D2EC50-38D4-4A16-8212-0E0F3BBBA427}.Release|x86.Build.0 = Release|x86
22 | EndGlobalSection
23 | GlobalSection(SolutionProperties) = preSolution
24 | HideSolutionNode = FALSE
25 | EndGlobalSection
26 | EndGlobal
27 |
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("ImageLabelFramework")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("Microsoft")]
12 | [assembly: AssemblyProduct("ImageLabelFramework")]
13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2011")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Setting ComVisible to false makes the types in this assembly not visible
18 | // to COM components. If you need to access a type in this assembly from
19 | // COM, set the ComVisible attribute to true on that type.
20 | [assembly: ComVisible(false)]
21 |
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM
23 | [assembly: Guid("5c2b9018-5a5d-4dd9-b12a-6711e067d34c")]
24 |
25 | // Version information for an assembly consists of the following four values:
26 | //
27 | // Major Version
28 | // Minor Version
29 | // Build Number
30 | // Revision
31 | //
32 | // You can specify all the values or you can default the Build and Revision Numbers
33 | // by using the '*' as shown below:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/Zoom.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Data;
5 | using System.Drawing;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Windows.Forms;
9 |
10 | namespace ImageLabelFramework
11 | {
12 | public partial class Zoom : Form
13 | {
14 | static private Pen pen = new Pen(Brushes.Red, 3);
15 | public MainForm mf;
16 | private String name;
17 | private int ptr = -1;
18 | private Point[] stack = new Point[100];
19 | private int dx, dy;
20 | private double ratio;
21 | private int idx;
22 |
23 | public Zoom(int index)
24 | {
25 | InitializeComponent();
26 | idx = index;
27 | CancelButton = confirmstring;
28 | }
29 |
30 | private void Zoom_Load(object sender, EventArgs e)
31 | {
32 |
33 | }
34 |
35 | private void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
36 | {
37 |
38 | }
39 |
40 | private void confirmstring_Click(object sender, EventArgs e)
41 | {
42 | //MessageBox.Show(MainForm.orcname);
43 | name = enterstring.Text;
44 | confirmstring.Enabled = false;
45 | mf.updatename(name, idx);
46 | mf.UpdatePanel();
47 | this.Close();
48 | }
49 |
50 | public void setdata(double ra, int x, int y)
51 | {
52 | ratio = ra;
53 | dx = x;
54 | dy = y;
55 | }
56 | public void setstr(String st)
57 | {
58 | enterstring.Text = st;
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.235
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace ImageLabelFramework.Properties
12 | {
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// Returns the cached ResourceManager instance used by this class.
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ImageLabelFramework.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// Overrides the current thread's CurrentUICulture property for all
56 | /// resource lookups using this strongly typed resource class.
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/ImageLabelFramework.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Debug
5 | x86
6 | 8.0.30703
7 | 2.0
8 | {62D2EC50-38D4-4A16-8212-0E0F3BBBA427}
9 | WinExe
10 | Properties
11 | ImageLabelFramework
12 | ImageLabelFramework
13 | v4.0
14 | Client
15 | 512
16 |
17 |
18 | x86
19 | true
20 | full
21 | false
22 | bin\Debug\
23 | DEBUG;TRACE
24 | prompt
25 | 4
26 |
27 |
28 | x86
29 | pdbonly
30 | true
31 | bin\Release\
32 | TRACE
33 | prompt
34 | 4
35 |
36 |
37 | true
38 | bin\x64\Debug\
39 | DEBUG;TRACE
40 | full
41 | x64
42 | bin\Debug\ImageLabelFramework.exe.CodeAnalysisLog.xml
43 | true
44 | GlobalSuppressions.cs
45 | prompt
46 | MinimumRecommendedRules.ruleset
47 | ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets
48 | false
49 | ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules
50 | false
51 |
52 |
53 | bin\x64\Release\
54 | TRACE
55 | true
56 | pdbonly
57 | x64
58 | bin\Release\ImageLabelFramework.exe.CodeAnalysisLog.xml
59 | true
60 | GlobalSuppressions.cs
61 | prompt
62 | MinimumRecommendedRules.ruleset
63 | ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\\Rule Sets
64 | false
65 | ;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\\Rules
66 | false
67 | false
68 |
69 |
70 | www.ico.la_a8b6db7b250d60603ba3469547b95944_128X128.ico
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 | Form
89 |
90 |
91 | Zoom.cs
92 |
93 |
94 |
95 | Form
96 |
97 |
98 | MainForm.cs
99 |
100 |
101 |
102 |
103 | MainForm.cs
104 |
105 |
106 | ResXFileCodeGenerator
107 | Resources.Designer.cs
108 | Designer
109 |
110 |
111 | True
112 | Resources.resx
113 |
114 |
115 | Zoom.cs
116 |
117 |
118 | SettingsSingleFileGenerator
119 | Settings.Designer.cs
120 |
121 |
122 | True
123 | Settings.settings
124 | True
125 |
126 |
127 |
128 |
129 |
130 |
131 |
138 |
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/Zoom.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace ImageLabelFramework
2 | {
3 | partial class Zoom
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Zoom));
32 | this.Zoompicbox = new System.Windows.Forms.PictureBox();
33 | this.enterstring = new System.Windows.Forms.MaskedTextBox();
34 | this.confirmstring = new System.Windows.Forms.Button();
35 | this.poslab = new System.Windows.Forms.Label();
36 | this.poslabel = new System.Windows.Forms.Label();
37 | this.numlabel = new System.Windows.Forms.Label();
38 | this.dotlab = new System.Windows.Forms.Label();
39 | this.label1 = new System.Windows.Forms.Label();
40 | ((System.ComponentModel.ISupportInitialize)(this.Zoompicbox)).BeginInit();
41 | this.SuspendLayout();
42 | //
43 | // Zoompicbox
44 | //
45 | this.Zoompicbox.Location = new System.Drawing.Point(5, 5);
46 | this.Zoompicbox.Name = "Zoompicbox";
47 | this.Zoompicbox.Size = new System.Drawing.Size(800, 600);
48 | this.Zoompicbox.TabIndex = 0;
49 | this.Zoompicbox.TabStop = false;
50 | //
51 | // enterstring
52 | //
53 | this.enterstring.Font = new System.Drawing.Font("SimSun", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
54 | this.enterstring.Location = new System.Drawing.Point(814, 40);
55 | this.enterstring.Name = "enterstring";
56 | this.enterstring.Size = new System.Drawing.Size(445, 26);
57 | this.enterstring.TabIndex = 1;
58 | this.enterstring.MaskInputRejected += new System.Windows.Forms.MaskInputRejectedEventHandler(this.maskedTextBox1_MaskInputRejected);
59 | //
60 | // confirmstring
61 | //
62 | this.confirmstring.Font = new System.Drawing.Font("SimSun", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
63 | this.confirmstring.Location = new System.Drawing.Point(814, 94);
64 | this.confirmstring.Name = "confirmstring";
65 | this.confirmstring.Size = new System.Drawing.Size(116, 28);
66 | this.confirmstring.TabIndex = 2;
67 | this.confirmstring.Text = "Confirm(&C)";
68 | this.confirmstring.UseVisualStyleBackColor = true;
69 | this.confirmstring.Click += new System.EventHandler(this.confirmstring_Click);
70 | //
71 | // poslab
72 | //
73 | this.poslab.AutoSize = true;
74 | this.poslab.Location = new System.Drawing.Point(1000, 192);
75 | this.poslab.Name = "poslab";
76 | this.poslab.Size = new System.Drawing.Size(0, 12);
77 | this.poslab.TabIndex = 3;
78 | //
79 | // poslabel
80 | //
81 | this.poslabel.AutoSize = true;
82 | this.poslabel.BackColor = System.Drawing.SystemColors.ControlDark;
83 | this.poslabel.Location = new System.Drawing.Point(813, 217);
84 | this.poslabel.Name = "poslabel";
85 | this.poslabel.Size = new System.Drawing.Size(71, 12);
86 | this.poslabel.TabIndex = 4;
87 | this.poslabel.Text = " ";
88 | //
89 | // numlabel
90 | //
91 | this.numlabel.AutoSize = true;
92 | this.numlabel.BackColor = System.Drawing.SystemColors.ControlDark;
93 | this.numlabel.ForeColor = System.Drawing.SystemColors.ActiveCaptionText;
94 | this.numlabel.Location = new System.Drawing.Point(813, 252);
95 | this.numlabel.Name = "numlabel";
96 | this.numlabel.Size = new System.Drawing.Size(53, 12);
97 | this.numlabel.TabIndex = 5;
98 | this.numlabel.Text = " ";
99 | //
100 | // dotlab
101 | //
102 | this.dotlab.AutoSize = true;
103 | this.dotlab.BackColor = System.Drawing.SystemColors.ButtonShadow;
104 | this.dotlab.Location = new System.Drawing.Point(813, 303);
105 | this.dotlab.Name = "dotlab";
106 | this.dotlab.Size = new System.Drawing.Size(167, 12);
107 | this.dotlab.TabIndex = 6;
108 | this.dotlab.Text = "无字符 ";
109 | //
110 | // label1
111 | //
112 | this.label1.AutoSize = true;
113 | this.label1.Font = new System.Drawing.Font("SimSun", 12F);
114 | this.label1.Location = new System.Drawing.Point(811, 9);
115 | this.label1.Name = "label1";
116 | this.label1.Size = new System.Drawing.Size(120, 16);
117 | this.label1.TabIndex = 8;
118 | this.label1.Text = "在此输入文字:";
119 | //
120 | // Zoom
121 | //
122 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
123 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
124 | this.ClientSize = new System.Drawing.Size(1263, 612);
125 | this.Controls.Add(this.label1);
126 | this.Controls.Add(this.dotlab);
127 | this.Controls.Add(this.numlabel);
128 | this.Controls.Add(this.poslabel);
129 | this.Controls.Add(this.poslab);
130 | this.Controls.Add(this.confirmstring);
131 | this.Controls.Add(this.enterstring);
132 | this.Controls.Add(this.Zoompicbox);
133 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
134 | this.Name = "Zoom";
135 | this.Text = "ZOOM";
136 | this.Load += new System.EventHandler(this.Zoom_Load);
137 | ((System.ComponentModel.ISupportInitialize)(this.Zoompicbox)).EndInit();
138 | this.ResumeLayout(false);
139 | this.PerformLayout();
140 |
141 | }
142 |
143 | #endregion
144 |
145 | private System.Windows.Forms.MaskedTextBox enterstring;
146 | private System.Windows.Forms.Button confirmstring;
147 | public System.Windows.Forms.PictureBox Zoompicbox;
148 | private System.Windows.Forms.Label poslab;
149 | private System.Windows.Forms.Label poslabel;
150 | private System.Windows.Forms.Label numlabel;
151 | private System.Windows.Forms.Label dotlab;
152 | private System.Windows.Forms.Label label1;
153 | }
154 | }
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/obj/x86/Release/ImageLabelFramework.csproj.FileListAbsolute.txt:
--------------------------------------------------------------------------------
1 | D:\Project\Image Label Framework\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\bin\Release\ImageLabelFramework.exe
2 | D:\Project\Image Label Framework\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\bin\Release\ImageLabelFramework.pdb
3 | D:\Project\Image Label Framework\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ResolveAssemblyReference.cache
4 | D:\Project\Image Label Framework\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.MainForm.resources
5 | D:\Project\Image Label Framework\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Properties.Resources.resources
6 | D:\Project\Image Label Framework\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\GenerateResource.read.1.tlog
7 | D:\Project\Image Label Framework\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\GenerateResource.write.1.tlog
8 | D:\Project\Image Label Framework\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.exe
9 | D:\Project\Image Label Framework\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.pdb
10 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.exe
11 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.pdb
12 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\bin\Release\ImageLabelFramework.exe
13 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\bin\Release\ImageLabelFramework.pdb
14 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ResolveAssemblyReference.cache
15 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.MainForm.resources
16 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Properties.Resources.resources
17 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\GenerateResource.read.1.tlog
18 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\GenerateResource.write.1.tlog
19 | C:\Users\ibm\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.exe
20 | C:\Users\ibm\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.pdb
21 | C:\Users\ibm\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\bin\Release\ImageLabelFramework.exe
22 | C:\Users\ibm\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\bin\Release\ImageLabelFramework.pdb
23 | C:\Users\ibm\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.MainForm.resources
24 | C:\Users\ibm\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Properties.Resources.resources
25 | C:\Users\ibm\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.csproj.GenerateResource.Cache
26 | C:\Users\ibm\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.csprojResolveAssemblyReference.cache
27 | C:\Users\ibm\Desktop\ImageLabelFramework_Poly_V2.0_txt\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Zoom.resources
28 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.exe
29 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.pdb
30 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\bin\Release\ImageLabelFramework.exe
31 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\bin\Release\ImageLabelFramework.pdb
32 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ResolveAssemblyReference.cache
33 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.MainForm.resources
34 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Properties.Resources.resources
35 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Zoom.resources
36 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\GenerateResource.read.1.tlog
37 | C:\Users\feiyu.gfy\Desktop\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\GenerateResource.write.1.tlog
38 | C:\Users\feiyu.gfy\Desktop\work\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.exe
39 | C:\Users\feiyu.gfy\Desktop\work\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.pdb
40 | C:\Users\feiyu.gfy\Desktop\work\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\bin\Release\ImageLabelFramework.exe
41 | C:\Users\feiyu.gfy\Desktop\work\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\bin\Release\ImageLabelFramework.pdb
42 | C:\Users\feiyu.gfy\Desktop\work\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ResolveAssemblyReference.cache
43 | C:\Users\feiyu.gfy\Desktop\work\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.MainForm.resources
44 | C:\Users\feiyu.gfy\Desktop\work\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Properties.Resources.resources
45 | C:\Users\feiyu.gfy\Desktop\work\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Zoom.resources
46 | C:\Users\feiyu.gfy\Desktop\work\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\GenerateResource.read.1.tlog
47 | C:\Users\feiyu.gfy\Desktop\work\ImageLabelFramework_Poly_V3.0\ImageLabelFramework\obj\x86\Release\GenerateResource.write.1.tlog
48 | C:\Users\feiyu.gfy\Desktop\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.exe
49 | C:\Users\feiyu.gfy\Desktop\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.pdb
50 | C:\Users\feiyu.gfy\Desktop\work\BigPic\ImageLabelFramework\bin\Release\ImageLabelFramework.exe
51 | C:\Users\feiyu.gfy\Desktop\work\BigPic\ImageLabelFramework\bin\Release\ImageLabelFramework.pdb
52 | C:\Users\feiyu.gfy\Desktop\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.MainForm.resources
53 | C:\Users\feiyu.gfy\Desktop\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Properties.Resources.resources
54 | C:\Users\feiyu.gfy\Desktop\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Zoom.resources
55 | C:\Users\feiyu.gfy\Desktop\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.csprojResolveAssemblyReference.cache
56 | C:\Users\feiyu.gfy\Desktop\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.csproj.GenerateResource.Cache
57 | D:\data\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.exe
58 | D:\data\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.pdb
59 | D:\data\work\BigPic\ImageLabelFramework\bin\Release\ImageLabelFramework.exe
60 | D:\data\work\BigPic\ImageLabelFramework\bin\Release\ImageLabelFramework.pdb
61 | D:\data\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.csprojResolveAssemblyReference.cache
62 | D:\data\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.MainForm.resources
63 | D:\data\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Properties.Resources.resources
64 | D:\data\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Zoom.resources
65 | D:\data\work\BigPic\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.csproj.GenerateResource.Cache
66 | D:\data\work\文字框加内容标注\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.exe
67 | D:\data\work\文字框加内容标注\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.pdb
68 | D:\data\work\文字框加内容标注\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.csprojResolveAssemblyReference.cache
69 | D:\data\work\文字框加内容标注\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.MainForm.resources
70 | D:\data\work\文字框加内容标注\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Properties.Resources.resources
71 | D:\data\work\文字框加内容标注\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.Zoom.resources
72 | D:\data\work\文字框加内容标注\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.csproj.GenerateResource.Cache
73 | D:\data\work\文字框加内容标注\ImageLabelFramework\bin\Release\ImageLabelFramework.exe
74 | D:\data\work\文字框加内容标注\ImageLabelFramework\bin\Release\ImageLabelFramework.pdb
75 | C:\Users\zhibo.yzb\Desktop\文字框加内容标注\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.exe
76 | C:\Users\zhibo.yzb\Desktop\文字框加内容标注\ImageLabelFramework\obj\x86\Release\ImageLabelFramework.pdb
77 |
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/ImageMetaData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 |
6 | using System.Drawing;
7 | using System.IO;
8 | using System.Drawing.Imaging;
9 | using System.Drawing.Drawing2D;
10 | using System.Windows.Forms;
11 |
12 | namespace ImageLabelFramework
13 | {
14 | struct Poly
15 | {
16 | public int angle;
17 | public Point[] rgP;
18 | public String name;
19 |
20 | public Poly(int x0, int y0, int x1, int y1, int ang)
21 | {
22 | angle = ang;
23 | rgP = new Point[2];
24 | rgP[0] = new Point(x0, y0);
25 | rgP[1] = new Point(x1, y1);
26 | name = "BLANK";
27 | }
28 |
29 | public Poly(Point[] _rgP, int ang)
30 | {
31 | angle = ang;
32 | rgP = new Point[2];
33 | for (int i = 0; i < 2; ++i)
34 | {
35 | rgP[i] = new Point(_rgP[i].X, _rgP[i].Y);
36 | }
37 | name = "BLANK";
38 | }
39 |
40 | public Poly(int x0, int y0, int x1, int y1, int ang, String na)
41 | {
42 | angle = ang;
43 | rgP = new Point[2];
44 | rgP[0] = new Point(x0, y0);
45 | rgP[1] = new Point(x1, y1);
46 | name = na;
47 | }
48 |
49 | public Poly Clone()
50 | {
51 | Poly tmp = new Poly(rgP[0].X, rgP[0].Y, rgP[1].X, rgP[1].Y, angle, name);
52 | return tmp;
53 | }
54 | }
55 |
56 | class ImgMetaData
57 | {
58 | public string path = null;
59 | public string metaPath = null;
60 | public string raw_name = null;
61 |
62 | private Image img = null;
63 | //private List vRect = null;
64 | private List vPoly = null;
65 |
66 | public int height, width;
67 | public int h, w;
68 | public float ratio;
69 |
70 | public static int extend = 20;
71 |
72 | public ImgMetaData(string _path)
73 | {
74 | path = _path;
75 | metaPath = path.Replace(Path.GetExtension(path), ".txt");
76 | vPoly = new List();
77 |
78 | if (File.Exists(metaPath))
79 | {
80 | try
81 | {
82 | string[] rg_parts;
83 | using (StreamReader sr = new StreamReader(metaPath))
84 | {
85 | raw_name = sr.ReadLine().Trim();
86 |
87 | rg_parts = sr.ReadLine().Split('\t');
88 | width = Convert.ToInt32(rg_parts[0]);
89 | height = Convert.ToInt32(rg_parts[1]);
90 |
91 | int count = Convert.ToInt32(sr.ReadLine());
92 | for (int i = 0; i < count; ++i)
93 | {
94 | int angle = Convert.ToInt32(sr.ReadLine());
95 | rg_parts = sr.ReadLine().Split('\t');
96 | String stname = Convert.ToString(sr.ReadLine());
97 | vPoly.Add(new Poly(Convert.ToInt32(rg_parts[0]),
98 | Convert.ToInt32(rg_parts[1]),
99 | Convert.ToInt32(rg_parts[2]),
100 | Convert.ToInt32(rg_parts[3]),
101 | angle,stname));
102 | }
103 | }
104 | }
105 | catch
106 | {
107 | MessageBox.Show("Read Error!");
108 | vPoly.Clear();
109 | }
110 | }
111 | else
112 | {
113 | raw_name = Path.GetFileNameWithoutExtension(path);
114 | }
115 | }
116 |
117 | public void SaveMetaDate()
118 | {
119 | using (StreamWriter sw = new StreamWriter(metaPath, false))
120 | {
121 | sw.WriteLine(raw_name);
122 | sw.WriteLine("" + width + "\t" + height);
123 | sw.WriteLine(vPoly.Count);
124 | foreach (Poly poly in vPoly)
125 | {
126 | sw.WriteLine(poly.angle);
127 | foreach (Point p in poly.rgP)
128 | {
129 | sw.Write("" + p.X + "\t" + p.Y + "\t");
130 | }
131 | sw.WriteLine();
132 | sw.WriteLine(poly.name);
133 | }
134 | }
135 | }
136 |
137 | public bool IsEmpty()
138 | {
139 | return vPoly.Count == 0;
140 | }
141 |
142 | public void deldetimg()
143 | {
144 | img.Dispose();
145 | img = null;
146 | File.Delete(path);
147 | File.Delete(metaPath);
148 | path = null;
149 | metaPath = null;
150 | }
151 |
152 | public Image GetImg()
153 | {
154 | Image tmp_img = null;
155 | if (null == img)
156 | {
157 | try
158 | {
159 | img = Image.FromFile(path);
160 | ratio = 1.0f;
161 | height = img.Height;
162 | width = img.Width;
163 | //MessageBox.Show(MainForm.maxH.ToString() + "," + MainForm.maxW.ToString());
164 |
165 | if (1.0 * height / (MainForm.maxH-2*extend) > 1.0 * width / (MainForm.maxW-2*extend))
166 | {
167 | if (height > (MainForm.maxH-2*extend))
168 | {
169 | ratio = 1.0f * (MainForm.maxH-2*extend) / height;
170 | }
171 | }
172 | else
173 | {
174 | if (width > (MainForm.maxW-2*extend))
175 | {
176 | ratio = 1.0f * (MainForm.maxW-2*extend) / width;
177 | }
178 | }
179 | //tmp_img = (Bitmap)img.Clone();
180 |
181 | if (ratio < 1.0f)
182 | {
183 | //MessageBox.Show("ERROR");
184 | Image souImg = img;
185 | h = Convert.ToInt32(ratio * height);
186 | w = Convert.ToInt32(ratio * width);
187 | tmp_img = new Bitmap(w+2*extend, h+2*extend);
188 | //MessageBox.Show((h+extend).ToString() + "," + (w+extend).ToString());
189 | Graphics g = Graphics.FromImage(tmp_img);
190 | g.Clear(Color.White);
191 | g.InterpolationMode = InterpolationMode.High;
192 | g.SmoothingMode = SmoothingMode.HighQuality;
193 | g.DrawImage(souImg, new Rectangle(extend, extend, w, h), new Rectangle(0, 0, width, height), GraphicsUnit.Pixel);
194 | }
195 | else
196 | {
197 | Image souImg = img;
198 | h = height;
199 | w = width;
200 | //MessageBox.Show(h.ToString()+","+w.ToString());
201 | tmp_img = new Bitmap(w + 2 * extend, h + 2 * extend);
202 | Graphics g = Graphics.FromImage(tmp_img);
203 | g.Clear(Color.White);
204 | g.DrawImage(souImg, new Rectangle(extend, extend, w, h), new Rectangle(0, 0, width, height), GraphicsUnit.Pixel);
205 | }
206 | }
207 | catch
208 | {
209 | img = null;
210 | }
211 | }
212 | img.Dispose();
213 | img = null;
214 | return tmp_img;
215 | }
216 |
217 | public int GetCount()
218 | {
219 | return vPoly.Count;
220 | }
221 |
222 | public Poly[] GetPoly()
223 | {
224 | Poly[] tmp = vPoly.ToArray();
225 |
226 | for (int i = 0; i < tmp.Length; ++i)
227 | {
228 | for (int j = 0; j < tmp[i].rgP.Length; ++j)
229 | {
230 | tmp[i].rgP[j].X = (int)Math.Round(tmp[i].rgP[j].X * ratio + extend);
231 | tmp[i].rgP[j].Y = (int)Math.Round(tmp[i].rgP[j].Y * ratio + extend);
232 | }
233 | }
234 |
235 | return tmp;
236 | }
237 |
238 | public void SetRect(Poly[] rgPoly, int len)
239 | {
240 | vPoly.Clear();
241 | for (int i = 0; i < len; ++i)
242 | {
243 | vPoly.Add(new Poly((int)Math.Round((rgPoly[i].rgP[0].X - extend) / ratio),
244 | (int)Math.Round((rgPoly[i].rgP[0].Y - extend) / ratio),
245 | (int)Math.Round((rgPoly[i].rgP[1].X - extend) / ratio),
246 | (int)Math.Round((rgPoly[i].rgP[1].Y - extend) / ratio),
247 | rgPoly[i].angle,
248 | rgPoly[i].name));
249 | }
250 | }
251 | }
252 | }
253 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright [yyyy] [name of copyright owner]
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/MainForm.Designer.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Forms;
2 |
3 | namespace ImageLabelFramework
4 | {
5 | partial class MainForm
6 | {
7 | ///
8 | /// Required designer variable.
9 | ///
10 | private System.ComponentModel.IContainer components = null;
11 |
12 | ///
13 | /// Clean up any resources being used.
14 | ///
15 | /// true if managed resources should be disposed; otherwise, false.
16 | protected override void Dispose(bool disposing)
17 | {
18 | if (disposing && (components != null))
19 | {
20 | components.Dispose();
21 | }
22 | base.Dispose(disposing);
23 | }
24 |
25 | #region Windows Form Designer generated code
26 |
27 | ///
28 | /// Required method for Designer support - do not modify
29 | /// the contents of this method with the code editor.
30 | ///
31 | private void InitializeComponent()
32 | {
33 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
34 | this.mainMenuStrip = new System.Windows.Forms.MenuStrip();
35 | this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
36 | this.menuToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
37 | this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
38 | this.exitToolStripMenu = new System.Windows.Forms.ToolStripMenuItem();
39 | this.dlgChooseDirectory = new System.Windows.Forms.FolderBrowserDialog();
40 | this.mainPictureBox = new System.Windows.Forms.PictureBox();
41 | this.bottomStatusStrip = new System.Windows.Forms.StatusStrip();
42 | this.Click0Label = new System.Windows.Forms.ToolStripStatusLabel();
43 | this.Click1Label = new System.Windows.Forms.ToolStripStatusLabel();
44 | this.Click2Label = new System.Windows.Forms.ToolStripStatusLabel();
45 | this.avalabel = new System.Windows.Forms.ToolStripStatusLabel();
46 | this.bottomToolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
47 | this.buttonPanel = new System.Windows.Forms.Panel();
48 | this.remove = new System.Windows.Forms.Button();
49 | this.edittext = new System.Windows.Forms.Button();
50 | this.deletetext = new System.Windows.Forms.Button();
51 | this.Confirm = new System.Windows.Forms.Button();
52 | this.label1 = new System.Windows.Forms.Label();
53 | this.avaitext = new System.Windows.Forms.ComboBox();
54 | this.nextButton = new System.Windows.Forms.Button();
55 | this.redrawButton = new System.Windows.Forms.Button();
56 | this.preButton = new System.Windows.Forms.Button();
57 | this.sealButton = new System.Windows.Forms.Button();
58 | this.availableButton = new System.Windows.Forms.Button();
59 | this.undoButton = new System.Windows.Forms.Button();
60 | this.clearButton = new System.Windows.Forms.Button();
61 | this.mainMenuStrip.SuspendLayout();
62 | ((System.ComponentModel.ISupportInitialize)(this.mainPictureBox)).BeginInit();
63 | this.bottomStatusStrip.SuspendLayout();
64 | this.buttonPanel.SuspendLayout();
65 | this.SuspendLayout();
66 | //
67 | // mainMenuStrip
68 | //
69 | this.mainMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
70 | this.toolStripMenuItem1,
71 | this.menuToolStripMenuItem,
72 | this.aboutToolStripMenuItem,
73 | this.exitToolStripMenu});
74 | this.mainMenuStrip.Location = new System.Drawing.Point(0, 0);
75 | this.mainMenuStrip.Name = "mainMenuStrip";
76 | this.mainMenuStrip.Size = new System.Drawing.Size(839, 25);
77 | this.mainMenuStrip.TabIndex = 0;
78 | this.mainMenuStrip.Text = "menuStrip1";
79 | this.mainMenuStrip.MouseMove += new System.Windows.Forms.MouseEventHandler(this.mainMenuStrip_Move);
80 | //
81 | // toolStripMenuItem1
82 | //
83 | this.toolStripMenuItem1.Name = "toolStripMenuItem1";
84 | this.toolStripMenuItem1.Size = new System.Drawing.Size(12, 21);
85 | //
86 | // menuToolStripMenuItem
87 | //
88 | this.menuToolStripMenuItem.Name = "menuToolStripMenuItem";
89 | this.menuToolStripMenuItem.Size = new System.Drawing.Size(63, 21);
90 | this.menuToolStripMenuItem.Text = "Load(&L)";
91 | this.menuToolStripMenuItem.Click += new System.EventHandler(this.menuToolStripMenuItem_Click);
92 | //
93 | // aboutToolStripMenuItem
94 | //
95 | this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
96 | this.aboutToolStripMenuItem.Size = new System.Drawing.Size(55, 21);
97 | this.aboutToolStripMenuItem.Text = "About";
98 | this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click);
99 | //
100 | // exitToolStripMenu
101 | //
102 | this.exitToolStripMenu.Name = "exitToolStripMenu";
103 | this.exitToolStripMenu.Size = new System.Drawing.Size(40, 21);
104 | this.exitToolStripMenu.Text = "Exit";
105 | this.exitToolStripMenu.Click += new System.EventHandler(this.exitToolStripMenu_Click);
106 | //
107 | // mainPictureBox
108 | //
109 | this.mainPictureBox.Enabled = false;
110 | this.mainPictureBox.Location = new System.Drawing.Point(12, 28);
111 | this.mainPictureBox.Name = "mainPictureBox";
112 | this.mainPictureBox.Size = new System.Drawing.Size(640, 640);
113 | this.mainPictureBox.TabIndex = 1;
114 | this.mainPictureBox.TabStop = false;
115 | this.mainPictureBox.MouseClick += new System.Windows.Forms.MouseEventHandler(this.mainPictureBox_Click);
116 | this.mainPictureBox.MouseMove += new System.Windows.Forms.MouseEventHandler(this.mainPictureBox_Move);
117 | //
118 | // bottomStatusStrip
119 | //
120 | this.bottomStatusStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
121 | this.Click0Label,
122 | this.Click1Label,
123 | this.Click2Label,
124 | this.avalabel,
125 | this.bottomToolStripStatusLabel});
126 | this.bottomStatusStrip.Location = new System.Drawing.Point(0, 679);
127 | this.bottomStatusStrip.Name = "bottomStatusStrip";
128 | this.bottomStatusStrip.Size = new System.Drawing.Size(839, 22);
129 | this.bottomStatusStrip.TabIndex = 2;
130 | //
131 | // Click0Label
132 | //
133 | this.Click0Label.AutoSize = false;
134 | this.Click0Label.BackColor = System.Drawing.SystemColors.ActiveBorder;
135 | this.Click0Label.Enabled = false;
136 | this.Click0Label.Name = "Click0Label";
137 | this.Click0Label.Size = new System.Drawing.Size(140, 17);
138 | //
139 | // Click1Label
140 | //
141 | this.Click1Label.AutoSize = false;
142 | this.Click1Label.BackColor = System.Drawing.SystemColors.GradientActiveCaption;
143 | this.Click1Label.Enabled = false;
144 | this.Click1Label.Name = "Click1Label";
145 | this.Click1Label.Size = new System.Drawing.Size(70, 17);
146 | //
147 | // Click2Label
148 | //
149 | this.Click2Label.AutoSize = false;
150 | this.Click2Label.BackColor = System.Drawing.SystemColors.InactiveBorder;
151 | this.Click2Label.Enabled = false;
152 | this.Click2Label.Name = "Click2Label";
153 | this.Click2Label.Size = new System.Drawing.Size(70, 17);
154 | //
155 | // avalabel
156 | //
157 | this.avalabel.AutoSize = false;
158 | this.avalabel.BackColor = System.Drawing.SystemColors.ActiveBorder;
159 | this.avalabel.Enabled = false;
160 | this.avalabel.Name = "avalabel";
161 | this.avalabel.Size = new System.Drawing.Size(140, 17);
162 | //
163 | // bottomToolStripStatusLabel
164 | //
165 | this.bottomToolStripStatusLabel.Name = "bottomToolStripStatusLabel";
166 | this.bottomToolStripStatusLabel.Size = new System.Drawing.Size(12, 17);
167 | this.bottomToolStripStatusLabel.Text = " ";
168 | //
169 | // buttonPanel
170 | //
171 | this.buttonPanel.Controls.Add(this.remove);
172 | this.buttonPanel.Controls.Add(this.edittext);
173 | this.buttonPanel.Controls.Add(this.deletetext);
174 | this.buttonPanel.Controls.Add(this.Confirm);
175 | this.buttonPanel.Controls.Add(this.label1);
176 | this.buttonPanel.Controls.Add(this.avaitext);
177 | this.buttonPanel.Controls.Add(this.nextButton);
178 | this.buttonPanel.Controls.Add(this.redrawButton);
179 | this.buttonPanel.Controls.Add(this.preButton);
180 | this.buttonPanel.Controls.Add(this.sealButton);
181 | this.buttonPanel.Controls.Add(this.availableButton);
182 | this.buttonPanel.Controls.Add(this.undoButton);
183 | this.buttonPanel.Controls.Add(this.clearButton);
184 | this.buttonPanel.Location = new System.Drawing.Point(658, 33);
185 | this.buttonPanel.Name = "buttonPanel";
186 | this.buttonPanel.Size = new System.Drawing.Size(169, 635);
187 | this.buttonPanel.TabIndex = 3;
188 | this.buttonPanel.MouseMove += new System.Windows.Forms.MouseEventHandler(this.buttonPanel_Move);
189 | //
190 | // remove
191 | //
192 | this.remove.Font = new System.Drawing.Font("SimSun", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
193 | this.remove.Location = new System.Drawing.Point(31, 547);
194 | this.remove.Name = "remove";
195 | this.remove.Size = new System.Drawing.Size(106, 45);
196 | this.remove.TabIndex = 10;
197 | this.remove.Text = "REMOVE";
198 | this.remove.UseVisualStyleBackColor = true;
199 | this.remove.Click += new System.EventHandler(this.remove_Click);
200 | //
201 | // edittext
202 | //
203 | this.edittext.Enabled = false;
204 | this.edittext.Location = new System.Drawing.Point(31, 437);
205 | this.edittext.Name = "edittext";
206 | this.edittext.Size = new System.Drawing.Size(75, 23);
207 | this.edittext.TabIndex = 9;
208 | this.edittext.Text = "Edit(&E)";
209 | this.edittext.UseVisualStyleBackColor = true;
210 | this.edittext.Click += new System.EventHandler(this.edittext_Click);
211 | //
212 | // deletetext
213 | //
214 | this.deletetext.Enabled = false;
215 | this.deletetext.Location = new System.Drawing.Point(31, 397);
216 | this.deletetext.Name = "deletetext";
217 | this.deletetext.Size = new System.Drawing.Size(75, 23);
218 | this.deletetext.TabIndex = 8;
219 | this.deletetext.Text = "Delete(&D)";
220 | this.deletetext.UseVisualStyleBackColor = true;
221 | this.deletetext.Click += new System.EventHandler(this.deletetext_Click);
222 | //
223 | // Confirm
224 | //
225 | this.Confirm.Enabled = false;
226 | this.Confirm.Location = new System.Drawing.Point(31, 257);
227 | this.Confirm.Name = "Confirm";
228 | this.Confirm.Size = new System.Drawing.Size(75, 23);
229 | this.Confirm.TabIndex = 4;
230 | this.Confirm.Text = "Confirm(&Q)";
231 | this.Confirm.UseVisualStyleBackColor = true;
232 | this.Confirm.Click += new System.EventHandler(this.Confirm_Click);
233 | //
234 | // label1
235 | //
236 | this.label1.AutoSize = true;
237 | this.label1.Location = new System.Drawing.Point(29, 326);
238 | this.label1.Name = "label1";
239 | this.label1.Size = new System.Drawing.Size(65, 12);
240 | this.label1.TabIndex = 7;
241 | this.label1.Text = "现有文本:";
242 | //
243 | // avaitext
244 | //
245 | this.avaitext.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
246 | this.avaitext.Enabled = false;
247 | this.avaitext.FormattingEnabled = true;
248 | this.avaitext.Location = new System.Drawing.Point(29, 357);
249 | this.avaitext.Name = "avaitext";
250 | this.avaitext.Size = new System.Drawing.Size(121, 20);
251 | this.avaitext.TabIndex = 5;
252 | this.avaitext.SelectedIndexChanged += new System.EventHandler(this.avaitext_SelectedIndexChanged);
253 | //
254 | // nextButton
255 | //
256 | this.nextButton.Enabled = false;
257 | this.nextButton.Location = new System.Drawing.Point(31, 214);
258 | this.nextButton.Name = "nextButton";
259 | this.nextButton.Size = new System.Drawing.Size(75, 23);
260 | this.nextButton.TabIndex = 0;
261 | this.nextButton.Text = "Next(&X)";
262 | this.nextButton.UseVisualStyleBackColor = true;
263 | this.nextButton.Click += new System.EventHandler(this.nextButton_Click);
264 | //
265 | // redrawButton
266 | //
267 | this.redrawButton.Enabled = false;
268 | this.redrawButton.Location = new System.Drawing.Point(31, 13);
269 | this.redrawButton.Name = "redrawButton";
270 | this.redrawButton.Size = new System.Drawing.Size(75, 23);
271 | this.redrawButton.TabIndex = 5;
272 | this.redrawButton.Text = "Redraw(&R)";
273 | this.redrawButton.UseVisualStyleBackColor = true;
274 | this.redrawButton.Click += new System.EventHandler(this.redrawButton_Click);
275 | //
276 | // preButton
277 | //
278 | this.preButton.Enabled = false;
279 | this.preButton.Location = new System.Drawing.Point(31, 185);
280 | this.preButton.Name = "preButton";
281 | this.preButton.Size = new System.Drawing.Size(75, 23);
282 | this.preButton.TabIndex = 1;
283 | this.preButton.Text = "Pre(&Z)";
284 | this.preButton.UseVisualStyleBackColor = true;
285 | this.preButton.Click += new System.EventHandler(this.preButton_Click);
286 | //
287 | // sealButton
288 | //
289 | this.sealButton.Enabled = false;
290 | this.sealButton.Location = new System.Drawing.Point(31, 42);
291 | this.sealButton.Name = "sealButton";
292 | this.sealButton.Size = new System.Drawing.Size(75, 23);
293 | this.sealButton.TabIndex = 6;
294 | this.sealButton.Text = "Seal(&S)";
295 | this.sealButton.UseVisualStyleBackColor = true;
296 | this.sealButton.Click += new System.EventHandler(this.sealButton_Click);
297 | //
298 | // availableButton
299 | //
300 | this.availableButton.Enabled = false;
301 | this.availableButton.Location = new System.Drawing.Point(31, 156);
302 | this.availableButton.Name = "availableButton";
303 | this.availableButton.Size = new System.Drawing.Size(75, 23);
304 | this.availableButton.TabIndex = 4;
305 | this.availableButton.Text = "Avai(&A)";
306 | this.availableButton.UseVisualStyleBackColor = true;
307 | this.availableButton.Click += new System.EventHandler(this.availableButton_Click);
308 | //
309 | // undoButton
310 | //
311 | this.undoButton.Enabled = false;
312 | this.undoButton.Location = new System.Drawing.Point(31, 71);
313 | this.undoButton.Name = "undoButton";
314 | this.undoButton.Size = new System.Drawing.Size(75, 23);
315 | this.undoButton.TabIndex = 2;
316 | this.undoButton.Text = "Undo(&U)";
317 | this.undoButton.UseVisualStyleBackColor = true;
318 | this.undoButton.Click += new System.EventHandler(this.undoButton_Click);
319 | //
320 | // clearButton
321 | //
322 | this.clearButton.Enabled = false;
323 | this.clearButton.Location = new System.Drawing.Point(31, 100);
324 | this.clearButton.Name = "clearButton";
325 | this.clearButton.Size = new System.Drawing.Size(75, 23);
326 | this.clearButton.TabIndex = 3;
327 | this.clearButton.Text = "Clear";
328 | this.clearButton.UseVisualStyleBackColor = true;
329 | this.clearButton.Click += new System.EventHandler(this.clearButton_Click);
330 | //
331 | // MainForm
332 | //
333 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
334 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
335 | this.AutoScroll = true;
336 | this.ClientSize = new System.Drawing.Size(839, 701);
337 | this.Controls.Add(this.buttonPanel);
338 | this.Controls.Add(this.bottomStatusStrip);
339 | this.Controls.Add(this.mainPictureBox);
340 | this.Controls.Add(this.mainMenuStrip);
341 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
342 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
343 | this.MainMenuStrip = this.mainMenuStrip;
344 | this.MaximizeBox = false;
345 | this.MinimizeBox = false;
346 | this.Name = "MainForm";
347 | this.Text = "Image Labeling Toolbox";
348 | this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing);
349 | this.Load += new System.EventHandler(this.MainForm_Load);
350 | this.mainMenuStrip.ResumeLayout(false);
351 | this.mainMenuStrip.PerformLayout();
352 | ((System.ComponentModel.ISupportInitialize)(this.mainPictureBox)).EndInit();
353 | this.bottomStatusStrip.ResumeLayout(false);
354 | this.bottomStatusStrip.PerformLayout();
355 | this.buttonPanel.ResumeLayout(false);
356 | this.buttonPanel.PerformLayout();
357 | this.ResumeLayout(false);
358 | this.PerformLayout();
359 |
360 | }
361 |
362 | #endregion
363 |
364 | private System.Windows.Forms.MenuStrip mainMenuStrip;
365 | private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
366 | private System.Windows.Forms.ToolStripMenuItem menuToolStripMenuItem;
367 | private System.Windows.Forms.FolderBrowserDialog dlgChooseDirectory;
368 | private System.Windows.Forms.PictureBox mainPictureBox;
369 | private System.Windows.Forms.StatusStrip bottomStatusStrip;
370 | private System.Windows.Forms.Panel buttonPanel;
371 | private System.Windows.Forms.Button clearButton;
372 | private System.Windows.Forms.Button undoButton;
373 | private System.Windows.Forms.Button preButton;
374 | private System.Windows.Forms.Button nextButton;
375 | private System.Windows.Forms.Button availableButton;
376 | private System.Windows.Forms.ToolStripStatusLabel bottomToolStripStatusLabel;
377 | private System.Windows.Forms.ToolStripStatusLabel Click0Label;
378 | private System.Windows.Forms.ToolStripStatusLabel Click1Label;
379 | private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem;
380 | private System.Windows.Forms.ToolStripStatusLabel Click2Label;
381 | private System.Windows.Forms.Button sealButton;
382 | private System.Windows.Forms.Button redrawButton;
383 | private System.Windows.Forms.Button Confirm;
384 | private ToolStripStatusLabel avalabel;
385 | private ToolStripMenuItem exitToolStripMenu;
386 | private ComboBox avaitext;
387 | private Label label1;
388 | private Button deletetext;
389 | private Button edittext;
390 | private Button remove;
391 | }
392 | }
393 |
394 |
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/MainForm.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Data;
5 | using System.Drawing;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Windows.Forms;
9 |
10 | using System.IO;
11 | using System.Drawing.Imaging;
12 | using System.Drawing.Drawing2D;
13 |
14 | namespace ImageLabelFramework
15 | {
16 | public partial class MainForm : Form
17 | {
18 | static private int maxLebel = 100;
19 | //static private double err = 1e-5;
20 | static private string[] rgSuffix = new string[] { "*.jpg", "*.bmp", "*.png", "*.gif", "*.jpeg" };
21 | static private Pen pen = new Pen(Brushes.Red, 2);
22 | static private Pen pen_sel = new Pen(Brushes.Green, 2);
23 | static private Pen pen2 = new Pen(Brushes.GreenYellow, 1);
24 | static private int extend = 20;
25 |
26 | private ImgMetaData[] rgIMD = null;
27 | private int cur = -1;
28 | private int ava = -1;
29 | //private Point[] stack = new Point[4];
30 | private int ptr = -1;
31 | private int ang = 0;
32 | private Point[] clkpoint = new Point[2];
33 | private Point[] newpoint = new Point[4];
34 | //public static String orcname;
35 | //private Point uppoint = Point.Empty;
36 |
37 | public static int maxH = 0;
38 | public static int maxW = 0;
39 |
40 | private Bitmap bmp = null;
41 | private Poly[] buffer = new Poly[maxLebel];
42 | private int index = 0;
43 |
44 | private int selected = -1;
45 |
46 | private void Initialize(string rootPath)
47 | {
48 | List vList = new List();
49 | foreach (string suf in rgSuffix)
50 | {
51 | vList.AddRange(new DirectoryInfo(rootPath).GetFiles(suf));
52 | }
53 |
54 | if (0 == vList.Count)
55 | {
56 | bottomToolStripStatusLabel.Text = "Invalid or empty directory.";
57 | }
58 | else
59 | {
60 | rgIMD = new ImgMetaData[vList.Count];
61 | for (int i = 0; i < vList.Count; ++i)
62 | {
63 | //MessageBox.Show("002");
64 | rgIMD[i] = new ImgMetaData(vList[i].FullName);
65 | }
66 |
67 | cur = ava = 0;
68 | LoadImg();
69 | }
70 | this.mainPictureBox.Focus();
71 | }
72 |
73 | private void FindAva()
74 | {
75 | int tar = -1;
76 | for (int i = ava + 1; i % rgIMD.Length != ava; ++i)
77 | {
78 | if (rgIMD[i % rgIMD.Length].IsEmpty())
79 | {
80 | tar = i % rgIMD.Length;
81 | break;
82 | }
83 | }
84 | ava = tar;
85 | availableButton.Enabled = ava >= 0;
86 | }
87 |
88 | private void updatecombobox()
89 | {
90 | avaitext.Items.Clear();
91 | avaitext.Text = "";
92 | for (int i = 0; i < index; i++)
93 | {
94 | avaitext.Items.Add(buffer[i].name);
95 | }
96 | }
97 |
98 | private void OperateClick()
99 | {
100 | mainPictureBox.Enabled = Click0Label.Enabled = Click1Label.Enabled = Click2Label.Enabled = (bmp != null);
101 | Click0Label.Text = Click1Label.Text = Click2Label.Text = "";
102 | ptr = -1;
103 | redrawButton.Enabled = sealButton.Enabled = Confirm.Enabled = false;
104 | undoButton.Enabled = clearButton.Enabled = avaitext.Enabled = (index > 0);
105 | deletetext.Enabled = edittext.Enabled = (selected >= 0);
106 | if (rgIMD != null)
107 | avalabel.Text = (cur+1) + "/" + rgIMD.Length;
108 | updatecombobox();
109 | AcceptButton = nextButton;
110 | }
111 |
112 | private void DrawPanel(int sel)
113 | {
114 | if (bmp != null)
115 | {
116 | Graphics g = Graphics.FromImage(bmp);
117 | Point[] newpoint = new Point[4];
118 | double alp, beta, le;
119 | int mx, my;
120 | for (int i = 0; i < index; ++i)
121 | {
122 | if (buffer[i].rgP[0].X < buffer[i].rgP[1].X)
123 | {
124 | newpoint[0] = new Point(buffer[i].rgP[0].X, buffer[i].rgP[0].Y);
125 | newpoint[2] = new Point(buffer[i].rgP[1].X, buffer[i].rgP[1].Y);
126 | }
127 | else
128 | {
129 | newpoint[0] = new Point(buffer[i].rgP[1].X, buffer[i].rgP[1].Y);
130 | newpoint[2] = new Point(buffer[i].rgP[0].X, buffer[i].rgP[0].Y);
131 | }
132 | if (buffer[i].angle == 0 || buffer[i].angle == 90 || buffer[i].angle == -90)
133 | {
134 | newpoint[1] = new Point(newpoint[0].X, newpoint[2].Y);
135 | newpoint[3] = new Point(newpoint[2].X, newpoint[0].Y);
136 | }
137 | else
138 | {
139 | alp = buffer[i].angle / 180.0 * Math.PI;
140 | beta = Math.Atan2((double)(newpoint[2].Y - newpoint[0].Y), (double)(newpoint[2].X - newpoint[0].X));
141 | le = Math.Sqrt((newpoint[2].Y - newpoint[0].Y) * (newpoint[2].Y - newpoint[0].Y) + (newpoint[2].X - newpoint[0].X) * (newpoint[2].X - newpoint[0].X));
142 | mx = (int)(le * Math.Cos(alp - beta) * Math.Cos(alp));
143 | my = (int)(le * Math.Cos(alp - beta) * Math.Sin(alp));
144 | newpoint[1] = new Point(newpoint[0].X + mx, newpoint[0].Y + my);
145 | newpoint[3] = new Point(newpoint[2].X - mx, newpoint[2].Y - my);
146 | }
147 | if(i==sel)
148 | g.DrawPolygon(pen_sel, newpoint);
149 | else
150 | g.DrawPolygon(pen, newpoint);
151 | }
152 | }
153 |
154 | mainPictureBox.Image = bmp;
155 | undoButton.Enabled = clearButton.Enabled = index > 0;
156 | }
157 |
158 | private void AddPoly()
159 | {
160 | Graphics g = Graphics.FromImage(bmp);
161 | Point[] newpoint = new Point[4];
162 | if (buffer[index - 1].rgP[0].X < buffer[index - 1].rgP[1].X)
163 | {
164 | newpoint[0] = new Point(buffer[index - 1].rgP[0].X, buffer[index - 1].rgP[0].Y);
165 | newpoint[2] = new Point(buffer[index - 1].rgP[1].X, buffer[index - 1].rgP[1].Y);
166 | }
167 | else
168 | {
169 | newpoint[0] = new Point(buffer[index - 1].rgP[1].X, buffer[index - 1].rgP[1].Y);
170 | newpoint[2] = new Point(buffer[index - 1].rgP[0].X, buffer[index - 1].rgP[0].Y);
171 | }
172 | if (buffer[index - 1].angle == 0 || buffer[index - 1].angle == 90 || buffer[index - 1].angle == -90)
173 | {
174 | newpoint[1] = new Point(newpoint[0].X, newpoint[2].Y);
175 | newpoint[3] = new Point(newpoint[2].X, newpoint[0].Y);
176 | }
177 | else
178 | {
179 | double alp = buffer[index - 1].angle / 180.0 * Math.PI;
180 | double beta = Math.Atan2((double)(newpoint[2].Y - newpoint[0].Y), (double)(newpoint[2].X - newpoint[0].X));
181 | double le = Math.Sqrt((newpoint[2].Y - newpoint[0].Y) * (newpoint[2].Y - newpoint[0].Y) + (newpoint[2].X - newpoint[0].X) * (newpoint[2].X - newpoint[0].X));
182 | int mx = (int)(le * Math.Cos(alp - beta) * Math.Cos(alp));
183 | int my = (int)(le * Math.Cos(alp - beta) * Math.Sin(alp));
184 | newpoint[1] = new Point(newpoint[0].X + mx, newpoint[0].Y + my);
185 | newpoint[3] = new Point(newpoint[2].X - mx, newpoint[2].Y - my);
186 | }
187 | g.DrawPolygon(pen, newpoint);
188 |
189 | mainPictureBox.Image = bmp;
190 | undoButton.Enabled = clearButton.Enabled = true;
191 | }
192 |
193 | private void LoadImg()
194 | {
195 | //MessageBox.Show(cur.ToString());
196 | Image img = rgIMD[cur].GetImg();
197 | if (null != img)
198 | {
199 | bmp = new Bitmap(img);
200 | Poly[] rgPoly = rgIMD[cur].GetPoly();
201 | if (rgPoly.Length > 0)
202 | {
203 | index = rgPoly.Length;
204 | Array.Copy(rgPoly, buffer, index);
205 | }
206 |
207 | bottomToolStripStatusLabel.Text = Path.GetFileName(rgIMD[cur].path);
208 | }
209 | else
210 | {
211 | bottomToolStripStatusLabel.Text = "Image corruption : " + Path.GetFileName(rgIMD[cur].path);
212 | }
213 |
214 | DrawPanel(-1);
215 | OperateClick();
216 |
217 | if (ava == cur)
218 | {
219 | FindAva();
220 | }
221 |
222 | nextButton.Enabled = (cur + 1) < rgIMD.Length;
223 | preButton.Enabled = cur > 0;
224 | }
225 |
226 | private void SaveImg()
227 | {
228 | if (rgIMD != null)
229 | {
230 | rgIMD[cur].SetRect(buffer, index);
231 | rgIMD[cur].SaveMetaDate();
232 | }
233 |
234 | bmp = null;
235 | index = 0;
236 | }
237 |
238 | private void Finish()
239 | {
240 | SaveImg();
241 | OperateClick();
242 |
243 | rgIMD = null;
244 |
245 | nextButton.Enabled = false;
246 | preButton.Enabled = false;
247 |
248 | mainPictureBox.Image = null;
249 | bottomToolStripStatusLabel.Text = null;
250 | }
251 |
252 | public MainForm()
253 | {
254 | InitializeComponent();
255 |
256 | maxH = mainPictureBox.Height;
257 | maxW = mainPictureBox.Width;
258 | }
259 |
260 | private void loadDirectoryToolStripMenuItem_Click(object sender, EventArgs e)
261 | {
262 | Finish();
263 |
264 | if (dlgChooseDirectory.ShowDialog() == DialogResult.OK)
265 | {
266 | Initialize(dlgChooseDirectory.SelectedPath);
267 | }
268 | }
269 |
270 | private void MainForm_Load(object sender, EventArgs e)
271 | {
272 | bottomToolStripStatusLabel.Text = "Welcome.";
273 | }
274 |
275 | private void nextButton_Click(object sender, EventArgs e)
276 | {
277 | SaveImg();
278 | ++cur;
279 | if (ava < 0)
280 | {
281 | ava = cur;
282 | }
283 | LoadImg();
284 | }
285 |
286 | private void preButton_Click(object sender, EventArgs e)
287 | {
288 | SaveImg();
289 | --cur;
290 | if (ava < 0)
291 | {
292 | ava = cur;
293 | }
294 | LoadImg();
295 | }
296 |
297 | private void availableButton_Click(object sender, EventArgs e)
298 | {
299 | SaveImg();
300 | cur = ava;
301 | LoadImg();
302 | }
303 |
304 | private void mainPictureBox_Click(object sender, MouseEventArgs e)
305 | {
306 | if (e.X < rgIMD[cur].w+2*extend && e.Y < rgIMD[cur].h+2*extend)
307 | {
308 | ptr++;
309 | if (ptr < 2)
310 | clkpoint[ptr] = new Point(e.X, e.Y);
311 |
312 | sealButton.Enabled = false;
313 | if (0 == ptr)
314 | {
315 | undoButton.Enabled = false;
316 | clearButton.Enabled = false;
317 | redrawButton.Enabled = true;
318 | }
319 | else if (1 == ptr)
320 | {
321 | sealButton.Enabled = true;
322 | }
323 | else if (2 == ptr)
324 | {
325 | Bitmap dest = (Bitmap)bmp.Clone();
326 | Graphics g = Graphics.FromImage(dest);
327 | Pen p = new Pen(Color.Blue, 1);
328 | if (clkpoint[1].X < clkpoint[0].X)
329 | {
330 | newpoint[0] = new Point(clkpoint[1].X, clkpoint[1].Y);
331 | newpoint[2] = new Point(clkpoint[0].X, clkpoint[0].Y);
332 | }
333 | else
334 | {
335 | newpoint[0] = new Point(clkpoint[0].X, clkpoint[0].Y);
336 | newpoint[2] = new Point(clkpoint[1].X, clkpoint[1].Y);
337 | }
338 | double pang = Math.Atan2((double)(e.Y - newpoint[0].Y), (double)(e.X - newpoint[0].X));
339 | ang = (int)(pang / Math.PI * 180.0);
340 | Click2Label.Text = "" + ang + "°";
341 | if (ang == 0 || ang == 90 || ang == -90)
342 | {
343 | newpoint[1] = new Point(newpoint[0].X, newpoint[2].Y);
344 | newpoint[3] = new Point(newpoint[2].X, newpoint[0].Y);
345 | }
346 | else
347 | {
348 | double alp = ang / 180.0 * Math.PI;
349 | double beta = Math.Atan2((double)(newpoint[2].Y - newpoint[0].Y), (double)(newpoint[2].X - newpoint[0].X));
350 | double le = Math.Sqrt((newpoint[2].Y - newpoint[0].Y) * (newpoint[2].Y - newpoint[0].Y) + (newpoint[2].X - newpoint[0].X) * (newpoint[2].X - newpoint[0].X));
351 | int mx = (int)(le * Math.Cos(alp - beta) * Math.Cos(alp));
352 | int my = (int)(le * Math.Cos(alp - beta) * Math.Sin(alp));
353 | newpoint[1] = new Point(newpoint[0].X + mx, newpoint[0].Y + my);
354 | newpoint[3] = new Point(newpoint[2].X - mx, newpoint[2].Y - my);
355 | }
356 | g.DrawPolygon(p, newpoint);
357 | g.Dispose();
358 | p.Dispose();
359 | Graphics g1 = this.mainPictureBox.CreateGraphics();
360 | g1.DrawImage(dest, new Point(0, 0));
361 | g1.Dispose();
362 | dest.Dispose();
363 | sealButton.Enabled = false;
364 | Confirm.Enabled = true;
365 | }
366 | }
367 | }
368 |
369 | private void mainPictureBox_Move(object sender, MouseEventArgs e)
370 | {
371 | if (e.X < rgIMD[cur].w + 2 * extend && e.Y < rgIMD[cur].h + 2 * extend)
372 | {
373 | this.Cursor = Cursors.Cross;
374 | Click0Label.Text = "" + e.X + "/" + (rgIMD[cur].w + 2 * extend) + ", " + e.Y + "/" + (rgIMD[cur].w + 2 * extend);
375 |
376 | if (ptr == -1)
377 | {
378 | Bitmap dest = (Bitmap)bmp.Clone();
379 | Graphics g = Graphics.FromImage(dest);
380 | Pen p = new Pen(Color.Blue, 1);
381 | g.DrawLine(p, new Point(e.X, e.Y - 20), new Point(e.X, e.Y + 20));
382 | g.DrawLine(p, new Point(e.X - 20, e.Y), new Point(e.X + 20, e.Y));
383 | g.Dispose();
384 | p.Dispose();
385 | Graphics g1 = this.mainPictureBox.CreateGraphics();
386 | g1.DrawImage(dest, new Point(0, 0));
387 | g1.Dispose();
388 | dest.Dispose();
389 | }
390 | else if (ptr == 0) {
391 | Bitmap dest = (Bitmap)bmp.Clone();
392 | Graphics g = Graphics.FromImage(dest);
393 | Pen p = new Pen(Color.Blue, 1);
394 | newpoint[0] = clkpoint[0];
395 | newpoint[2].X = e.X;
396 | newpoint[2].Y = e.Y;
397 | newpoint[1].X = clkpoint[0].X;
398 | newpoint[1].Y = e.Y;
399 | newpoint[3].X = e.X;
400 | newpoint[3].Y = clkpoint[0].Y;
401 | g.DrawPolygon(p, newpoint);
402 | g.Dispose();
403 | p.Dispose();
404 | Graphics g1 = this.mainPictureBox.CreateGraphics();
405 | g1.DrawImage(dest, new Point(0, 0));
406 | g1.Dispose();
407 | dest.Dispose();
408 | }
409 | else if (ptr == 1)
410 | {
411 | Bitmap dest = (Bitmap)bmp.Clone();
412 | Graphics g = Graphics.FromImage(dest);
413 | Pen p = new Pen(Color.Blue, 1);
414 | if (clkpoint[1].X < clkpoint[0].X)
415 | {
416 | newpoint[0] = new Point(clkpoint[1].X, clkpoint[1].Y);
417 | newpoint[2] = new Point(clkpoint[0].X, clkpoint[0].Y);
418 | }
419 | else
420 | {
421 | newpoint[0] = new Point(clkpoint[0].X, clkpoint[0].Y);
422 | newpoint[2] = new Point(clkpoint[1].X, clkpoint[1].Y);
423 | }
424 | double pang = Math.Atan2((double)(e.Y - newpoint[0].Y), (double)(e.X - newpoint[0].X));
425 | ang = (int)(pang / Math.PI * 180.0);
426 | Click2Label.Text = "" + ang + "°";
427 | if (ang == 0 || ang == 90 || ang == -90)
428 | {
429 | newpoint[1] = new Point(newpoint[0].X, newpoint[2].Y);
430 | newpoint[3] = new Point(newpoint[2].X, newpoint[0].Y);
431 | }
432 | else
433 | {
434 | double alp = ang / 180.0 * Math.PI;
435 | double beta = Math.Atan2((double)(newpoint[2].Y - newpoint[0].Y), (double)(newpoint[2].X - newpoint[0].X));
436 | double le = Math.Sqrt((newpoint[2].Y - newpoint[0].Y) * (newpoint[2].Y - newpoint[0].Y) + (newpoint[2].X - newpoint[0].X) * (newpoint[2].X - newpoint[0].X));
437 | int mx = (int)(le * Math.Cos(alp - beta) * Math.Cos(alp));
438 | int my = (int)(le * Math.Cos(alp - beta) * Math.Sin(alp));
439 | newpoint[1] = new Point(newpoint[0].X + mx, newpoint[0].Y + my);
440 | newpoint[3] = new Point(newpoint[2].X - mx, newpoint[2].Y - my);
441 | }
442 | g.DrawPolygon(p,newpoint);
443 | g.Dispose();
444 | p.Dispose();
445 | Graphics g1 = this.mainPictureBox.CreateGraphics();
446 | g1.DrawImage(dest, new Point(0, 0));
447 | g1.Dispose();
448 | dest.Dispose();
449 | }
450 | }
451 | else
452 | {
453 | this.Cursor = Cursors.Default;
454 | Click0Label.Text = "" + e.X + "/" + (rgIMD[cur].w + 2 * extend) + ", " + e.Y + "/" + (rgIMD[cur].w + 2 * extend);
455 | }
456 | }
457 |
458 | private void buttonPanel_Move(object sender, MouseEventArgs e)
459 | {
460 | this.Cursor = Cursors.Default;
461 | }
462 |
463 | private void mainMenuStrip_Move(object sender, MouseEventArgs e)
464 | {
465 | this.Cursor = Cursors.Default;
466 | }
467 |
468 | private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
469 | {
470 | Finish();
471 | }
472 |
473 | private void exitToolStripMenuItem_Click(object sender, EventArgs e)
474 | {
475 | Finish();
476 | this.Dispose();
477 | }
478 |
479 | private void undoButton_Click(object sender, EventArgs e)
480 | {
481 | bmp = new Bitmap(rgIMD[cur].GetImg());
482 | --index;
483 | DrawPanel(-1);
484 | }
485 |
486 | private void clearButton_Click(object sender, EventArgs e)
487 | {
488 | bmp = new Bitmap(rgIMD[cur].GetImg());
489 | index = 0;
490 | DrawPanel(-1);
491 | }
492 |
493 | private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
494 | {
495 | string strSuf = "";
496 | foreach (string suf in rgSuffix)
497 | {
498 | strSuf += suf + " ";
499 | }
500 | MessageBox.Show("Image Labeling Toolbox V1.25 (4 Points Polygon + 2 Points Rectangle). \n"
501 | + "Designed by Cao Yang. \n"
502 | + "Max Label : " + maxLebel + "\n"
503 | + "Suffix : " + strSuf);
504 | }
505 |
506 | private void redrawButton_Click(object sender, EventArgs e)
507 | {
508 | this.mainPictureBox.Image = bmp;
509 | OperateClick();
510 | }
511 |
512 | private void sealButton_Click(object sender, EventArgs e)
513 | {
514 | if (1 == ptr && clkpoint[0].X != clkpoint[1].X && clkpoint[0].Y != clkpoint[1].Y)
515 | {
516 | newpoint[0] = clkpoint[0];
517 | newpoint[2] = clkpoint[1];
518 | newpoint[1].X = clkpoint[0].X;
519 | newpoint[1].Y = clkpoint[1].Y;
520 | newpoint[3].X = clkpoint[1].X;
521 | newpoint[3].Y = clkpoint[0].Y;
522 | ang = 0;
523 | Bitmap dest = (Bitmap)bmp.Clone();
524 | Graphics g = Graphics.FromImage(dest);
525 | Pen p = new Pen(Color.Blue, 1);
526 | g.DrawPolygon(p, newpoint);
527 | g.Dispose();
528 | p.Dispose();
529 | Graphics g1 = this.mainPictureBox.CreateGraphics();
530 | g1.DrawImage(dest, new Point(0, 0));
531 | g1.Dispose();
532 | dest.Dispose();
533 | ptr = 2;
534 | sealButton.Enabled = false;
535 | Confirm.Enabled = true;
536 | Click2Label.Text = "" + ang + "°";
537 | }
538 | else
539 | {
540 | MessageBox.Show("Wrong Seal!");
541 | }
542 | //OperateClick();
543 | }
544 |
545 | private void Confirm_Click(object sender, EventArgs e)
546 | {
547 | buffer[index] = new Poly(clkpoint, ang);
548 | ++index;
549 | Zoom f = new Zoom(index);
550 | f.mf = this;
551 | Image img = new Bitmap(800,600);
552 | Image org = new Bitmap(rgIMD[cur].GetImg());
553 | Graphics g = Graphics.FromImage(img);
554 | int lx, rx, ly, ry;
555 | double ra, rax, ray;
556 | lx = Math.Min(newpoint[0].X, newpoint[1].X); lx = Math.Min(lx, newpoint[2].X); lx = Math.Min(lx, newpoint[3].X);
557 | rx = Math.Max(newpoint[0].X, newpoint[1].X); rx = Math.Max(rx, newpoint[2].X); rx = Math.Max(rx, newpoint[3].X);
558 | ly = Math.Min(newpoint[0].Y, newpoint[1].Y); ly = Math.Min(ly, newpoint[2].Y); ly = Math.Min(ly, newpoint[3].Y);
559 | ry = Math.Max(newpoint[0].Y, newpoint[1].Y); ry = Math.Max(ry, newpoint[2].Y); ry = Math.Max(ry, newpoint[3].Y);
560 | rax = 800.0 / (double)(rx - lx);
561 | ray = 600.0 / (double)(ry - ly);
562 | ra = Math.Min(rax, ray);
563 | g.Clear(Color.White);
564 | g.InterpolationMode = InterpolationMode.High;
565 | g.SmoothingMode = SmoothingMode.HighQuality;
566 | g.DrawImage(org, new Rectangle(0, 0, (int)(ra*(rx-lx)), (int)(ra*(ry-ly))), new Rectangle(lx,ly,rx-lx,ry-ly), GraphicsUnit.Pixel);
567 | f.setdata(ra,lx,ly);
568 | f.Zoompicbox.Image = img;
569 | f.Show();
570 | AddPoly();
571 | selected = -1;
572 | OperateClick();
573 | }
574 |
575 | public void updatename(String orcname, int textidx)
576 | {
577 | buffer[textidx - 1].name = orcname;
578 | }
579 | public int getang()
580 | {
581 | return buffer[index - 1].angle;
582 | }
583 |
584 | public void UpdatePanel()
585 | {
586 | OperateClick();
587 | bmp = new Bitmap(rgIMD[cur].GetImg());
588 | DrawPanel(-1);
589 | }
590 |
591 | private void menuToolStripMenuItem_Click(object sender, EventArgs e)
592 | {
593 | Finish();
594 | if (dlgChooseDirectory.ShowDialog() == DialogResult.OK)
595 | {
596 | Initialize(dlgChooseDirectory.SelectedPath);
597 | }
598 | }
599 |
600 | private void exitToolStripMenu_Click(object sender, EventArgs e)
601 | {
602 | Finish();
603 | this.Dispose();
604 | }
605 |
606 | private void avaitext_SelectedIndexChanged(object sender, EventArgs e)
607 | {
608 | selected = avaitext.SelectedIndex;
609 | deletetext.Enabled = true;
610 | edittext.Enabled = true;
611 | this.buttonPanel.Focus();
612 | DrawPanel(selected);
613 | }
614 |
615 | private void deletetext_Click(object sender, EventArgs e)
616 | {
617 | for (int i = selected; i < index - 1; i++)
618 | {
619 | buffer[i] = buffer[i + 1].Clone();
620 | }
621 | index--;
622 | selected = -1;
623 | OperateClick();
624 | bmp = new Bitmap(rgIMD[cur].GetImg());
625 | DrawPanel(-1);
626 | }
627 |
628 | private void edittext_Click(object sender, EventArgs e)
629 | {
630 | Zoom f = new Zoom(selected + 1);
631 | f.mf = this;
632 | Image img = new Bitmap(800, 600);
633 | Image org = new Bitmap(rgIMD[cur].GetImg());
634 | Graphics g = Graphics.FromImage(img);
635 | int lx, rx, ly, ry;
636 | double ra, rax, ray;
637 | Point[] newp = new Point[4];
638 | newp[0] = new Point(buffer[selected].rgP[0].X, buffer[selected].rgP[0].Y);
639 | newp[2] = new Point(buffer[selected].rgP[1].X, buffer[selected].rgP[1].Y);
640 | if (buffer[selected].angle == 0 || buffer[selected].angle == 90 || buffer[selected].angle == -90)
641 | {
642 | newp[1] = new Point(newp[0].X, newp[2].Y);
643 | newp[3] = new Point(newp[2].X, newp[0].Y);
644 | }
645 | else
646 | {
647 | double alp = buffer[selected].angle / 180.0 * Math.PI;
648 | double beta = Math.Atan2((double)(newp[2].Y - newp[0].Y), (double)(newp[2].X - newp[0].X));
649 | double le = Math.Sqrt((newp[2].Y - newp[0].Y) * (newp[2].Y - newp[0].Y) + (newp[2].X - newp[0].X) * (newp[2].X - newp[0].X));
650 | int mx = (int)(le * Math.Cos(alp - beta) * Math.Cos(alp));
651 | int my = (int)(le * Math.Cos(alp - beta) * Math.Sin(alp));
652 | newp[1] = new Point(newp[0].X + mx, newp[0].Y + my);
653 | newp[3] = new Point(newp[2].X - mx, newp[2].Y - my);
654 | }
655 | lx = Math.Min(newp[0].X, newp[1].X); lx = Math.Min(lx, newp[2].X); lx = Math.Min(lx, newp[3].X);
656 | rx = Math.Max(newp[0].X, newp[1].X); rx = Math.Max(rx, newp[2].X); rx = Math.Max(rx, newp[3].X);
657 | ly = Math.Min(newp[0].Y, newp[1].Y); ly = Math.Min(ly, newp[2].Y); ly = Math.Min(ly, newp[3].Y);
658 | ry = Math.Max(newp[0].Y, newp[1].Y); ry = Math.Max(ry, newp[2].Y); ry = Math.Max(ry, newp[3].Y);
659 | rax = 800.0 / (double)(rx - lx);
660 | ray = 600.0 / (double)(ry - ly);
661 | ra = Math.Min(rax, ray);
662 | g.Clear(Color.White);
663 | g.InterpolationMode = InterpolationMode.High;
664 | g.SmoothingMode = SmoothingMode.HighQuality;
665 | g.DrawImage(org, new Rectangle(0, 0, (int)(ra * (rx - lx)), (int)(ra * (ry - ly))), new Rectangle(lx, ly, rx - lx, ry - ly), GraphicsUnit.Pixel);
666 | f.setdata(ra, lx, ly);
667 | f.setstr(buffer[selected].name);
668 | f.Zoompicbox.Image = img;
669 | f.Show();
670 | selected = -1;
671 | OperateClick();
672 | }
673 |
674 | private void remove_Click(object sender, EventArgs e)
675 | {
676 | rgIMD[cur].deldetimg();
677 | ++cur;
678 | if (ava < 0)
679 | {
680 | ava = cur;
681 | }
682 | LoadImg();
683 | }
684 | }
685 | }
686 |
687 |
--------------------------------------------------------------------------------
/text-label/ImageLabelFramework/Zoom.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 | text/microsoft-resx
110 |
111 |
112 | 2.0
113 |
114 |
115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
119 |
120 |
121 |
122 |
123 | AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABAAAAAAAAAAAAAAAAAAAA
124 | AAD/////////////////////////////////////////////////////////////////////////////
125 | ////////////////////////////////////////////////////////////////////////////////
126 | ////////////////////////////////////////////////////////////////////////////////
127 | //////////////////////////////////////////////////////////////79///+/f7//v/8////
128 | +v/7+vX//fz4//36+v/9+fv/+Pn1//z8+P/7/Pf/9/f1//7//P/+//3//v/9//7+/f//////////////
129 | ////////////////////////////////////////////////////////////////////////////////
130 | ////////////////////////////////////////////////////////////////////////////////
131 | ////////////////////////////////////////////////////////////////////////////////
132 | ////////////////////////////////////////////////////////////////////////////////
133 | ////////////////////////////////////////////////////////////////////////////////
134 | ////////////////////////////////////////////////////////////////////////////////
135 | ////////////////////////////////////////////////////////////////////////////////
136 | /////////////////////////v3+//7+/f/+//v////6//78+f///Pz//vr8//76/v/49fv//Pr+//j2
137 | +v/8+/3//v3+//7+/f/+//z//v/8////////////////////////////////////////////////////
138 | ////////////////////////////////////////////////////////////////////////////////
139 | ////////////////////////////////////////////////////////////////////////////////
140 | ////////////////////////////////////////////////////////////////////////////////
141 | ////////////////////////////////////////////////////////////////////////////////
142 | ////////////////////////////////////////////////////////////////////////////////
143 | ////////////////////////////////////////////////////////////////////////////////
144 | ///////////////////////////////////////////////////////////////////+//v//v/6//7/
145 | +v////r//fv6//z4/P/68/r//PT8//32///48f7/+vT+//j0/v/+/P///v79//7/+v/+//n/////////
146 | ////////////////////////////////////////////////////////////////////////////////
147 | ////////////////////////////////////////////////////////////////////////////////
148 | ////////////////////////////////////////////////////////////////////////////////
149 | ////////////////////////////////////////////////////////////////////////////////
150 | ////////////////////////////////////////////////////////////////////////////////
151 | ////////////////////////////////////////////////////////////////////////////////
152 | ////////////////////////////////////////////////////////////////////////////////
153 | //////////////////////////////7/+f/+//n//v/6///+/P/8+vz//PX9/8W6yv+sn7T/tarH/1FG
154 | Zv9NRV7/7Obw//77///+/v7//v/6//7/9///////////////////////////////////////////////
155 | ////////////////////////////////////////////////////////////////////////////////
156 | ////////////////////////////////////////////////////////////////////////////////
157 | ////////////////////////////////////////////////////////////////////////////////
158 | ////////////////////////////////////////////////////////////////////////////////
159 | ////////////////////////////////////////////////////////////////////////////////
160 | ////////////////////////////////////////////////////////////////////////////////
161 | /////////////////////////////////////////////////////////////////////////v/5//7/
162 | +f/+//r///79//v3/P/Jwc3/MCM6/zEiPf8tIkT/U0ho/1NKZP+Yk6L//vv///7+/v/+//r//v/3////
163 | ////////////////////////////////////////////////////////////////////////////////
164 | ////////////////////////////////////////////////////////////////////////////////
165 | ////////////////////////////////////////////////////////////////////////////////
166 | ////////////////////////////////////////////////////////////////////////////////
167 | ////////////////////////////////////////////////////////////////////////////////
168 | ////////////////////////////////////////////////////////////////////////////////
169 | ////////////////////////////////////////////////////////////////////////////////
170 | ///////////////////////////////////+//z//v/8//7+/P///f7//fn+/4yDkv88Lkf/OClG/5OM
171 | o/+knK7/dXCA/4uHkP/+/P///v79//7/+v/+//n/////////////////////////////////////////
172 | ////////////////////////////////////////////////////////////////////////////////
173 | ////////////////////////////////////////////////////////////////////////////////
174 | ////////////////////////////////////////////////////////////////////////////////
175 | ////////////////////////////////////////////////////////////////////////////////
176 | ////////////////////////////////////////////////////////////////////////////////
177 | ////////////////////////////////////////////////////////////////////////////////
178 | //////////////////////////////////////////////////////////////////////////////79
179 | /v/+/f7//v3+///8////+///iX+O/y8iOf/Bs8f/+vf8//Ty9v/18/b/lJSW//79/v/+/v3//v/8//7/
180 | /P//////////////////////////////////////////////////////////////////////////////
181 | ////////////////////////////////////////////////////////////////////////////////
182 | ////////////////////////////////////////////////////////////////////////////////
183 | ////////////////////////////////////////////////////////////////////////////////
184 | ////////////////////////////////////////////////////////////////////////////////
185 | ////////////////////////////////////////////////////////////////////////////////
186 | ////////////////////////////////////////////////////////////////////////////////
187 | /////////////////////////////////////////vz///78///+/f////z///z3/f+Mg5L/YlZr//ru
188 | /f/4+fT/+fr1/9PU0P+9vrv//v/8//7//f/+//3//v79////////////////////////////////////
189 | ////////////////////////////////////////////////////////////////////////////////
190 | ////////////////////////////////////////////////////////////////////////////////
191 | ////////////////////////////////////////////////////////////////////////////////
192 | ////////////////////////////////////////////////////////////////////////////////
193 | ////////////////////////////////////////////////////////////////////////////////
194 | ////////////////////////////////////////////////////////////////////////////////
195 | /////////////////////////////////////////f39//39/f/9/f3/+/v7////////////////////
196 | ///9/////f////3////9////+vv9/4yNkf/Hx8r/9PT5//j5+//2+Pn/u729/+Lk4//3+/f/+v34//b6
197 | 8//6/fb/+fr1//X28v/9/vr/+/v5/////v////7//////////////v////7///////////7////+////
198 | /P////z////8////////////////////////////////////////////////////////////////////
199 | ////////////////////////////////////////////////////////////////////////////////
200 | ////////////////////////////////////////////////////////////////////////////////
201 | ////////////////////////////////////////////////////////////////////////////////
202 | ////////////////////////////////////////////////////////////////////////////////
203 | ////////////////////////////////////////////////////////////////////////////////
204 | ///6+vr//Pz8//r6+v/8/Pz///////////////////////3////9/////f////3////3+fr/mpuf//r6
205 | /f/y8vb/8vL3//b3+v+wsbP/mpyc//v9/P/09vT/+Pr4//b59f/7+/v/+/v7//r5+v/49/j/////////
206 | ///////////////+/////v////7///////////7////9/////P////z/////////////////////////
207 | ////////////////////////////////////////////////////////////////////////////////
208 | ////////////////////////////////////////////////////////////////////////////////
209 | ////////////////////////////////////////////////////////////////////////////////
210 | ////////////////////////////////////////////////////////////////////////////////
211 | ////////////////////////////////////////////////////////////////////////////////
212 | //////////////////////////////////////////////39/f/5+fn//Pz8//39/f//////////////
213 | /////////f////3////9/////f///6+ws//HyMz/6uvw//Ly9v/w8Pf/5uXt/5WVm/+Li5D/+fr8//f5
214 | +//X2dv/2tzc/6Ccpf+em6T/7erx//z6/v///v////7///////////7///7////+/////v////7////+
215 | //////7////+/////v//////////////////////////////////////////////////////////////
216 | ////////////////////////////////////////////////////////////////////////////////
217 | ////////////////////////////////////////////////////////////////////////////////
218 | ////////////////////////////////////////////////////////////////////////////////
219 | ////////////////////////////////////////////////////////////////////////////////
220 | ///////////////////////////////////////////////+/////v////7////+/////v////7////+
221 | /////v//+Pr7//3////Y2tv/4uTl//3////9/////f////3////9/////f////3////9////lJWY/9zd
222 | 4f/g4eb/yMjO/5aVnv+npq//hIOM/4B/iP/Ew8v/m5ug/4WEjP+VlJz/oJyu/9bT4f+DgY3/9vT7//39
223 | ///9/v///f////3//v/9/P///f3///39///9/v///f7///3////9/////f//////////////////////
224 | ////////////////////////////////////////////////////////////////////////////////
225 | ////////////////////////////////////////////////////////////////////////////////
226 | ////////////////////////////////////////////////////////////////////////////////
227 | ////////////////////////////////////////////////////////////////////////////////
228 | ///////////////////////////////////////////////////////////////////7+/v//f39//v7
229 | +//7+/v/+fj6//v6+//5+Pr//fz+//f2+P/7+vz/z87Q/7Gws/+tr7L/j5GU/8zO0P/V19j/vb/C/8PF
230 | yP/t7/H/+fz8/93f3//Exsb/wMLC/77Awf+Fh4n/vr/D/7Cwtf+JiY//3dzj/8XEzP+wr7j/eXiB/3h3
231 | gf92dX//eHeB/39+iP+sqbz/wb/Q/5qYpv+LipX/dXZ9/7y/wf+oq6v/7PDv/6iosP/KytH/uLnB/6qr
232 | sf+9v8P/9vj7//f5+//3+vv/9/f3//f39//9/f3/+/v7//39/f/6+vr//f39//39/f//////////////
233 | ////////////////////////////////////////////////////////////////////////////////
234 | ////////////////////////////////////////////////////////////////////////////////
235 | ////////////////////////////////////////////////////////////////////////////////
236 | ////////////////////////////////////////////////////////////////////////////////
237 | //////////////////////////////n5+f/9/f3//Pz8//v7+//39vj/+vn7//v6/P/6+fv/397i/6Wk
238 | qP+CgYX//Pv9//T3+v/09/r/4+bq//Dz9v/r7vH/8/b4/4iLj/+cn6L/rK6u//L09P/n6en/5+nq/93e
239 | 4P+Oj5P/tba6/9ra3v/p6u7/+Pj8//Hx9/+bmqL/c3J7/318hv+zsrz/eXiC/62suv+JiZb/f4CL/1tc
240 | Zf9vcnf/r7K3/8fKzf+OkpT/v7/K/6ansv9jZG7/wcLL/8/S2f+anaL/q66z/+bp7P/4+Pj//Pz8//z8
241 | /P/6+vr/+fn5//7+/v/7+/v//v7+////////////////////////////////////////////////////
242 | ////////////////////////////////////////////////////////////////////////////////
243 | ////////////////////////////////////////////////////////////////////////////////
244 | ////////////////////////////////////////////////////////////////////////////////
245 | /////////////////////////////////////////////////////////////////////////Pz8//v7
246 | +//7+/v/+vr6//v6/f+4trr/d3Z7/3Jxdv90cnf/5+Xp//f1+v/e3eH/0NTY//b5+//r7/L/8/b5/+rt
247 | 8P/1+fv/aGtw/8zQ1P+mqKj/7e/v//b4+P/j5eb/7u/x//T1+P/u7vL/9PT5/9rc3f/l5+j/w8TH/+Pk
248 | 6P+qqq//TEtU/56dp/+cm6X/f4OI/2xwdf9rbnT/mp6i/1NXW//Gyc7/297j/8bJzv/t7vr/kpOf/5KT
249 | nv+Mjpj/3+Dp/+bo8P/c3+b/pqqv//j4+P/5+fn//Pz8//z8/P/6+vr/+Pj4//39/f/8/Pz/////////
250 | ////////////////////////////////////////////////////////////////////////////////
251 | ////////////////////////////////////////////////////////////////////////////////
252 | ////////////////////////////////////////////////////////////////////////////////
253 | ////////////////////////////////////////////////////////////////////////////////
254 | ///////////////////////////////////7+/v/8/Pz//Hx8f/CwsL/pKKo/3Z0ev/KyM3/rKqw/29t
255 | c/+7ub//7evw//v5/f/z9/v/8vb6//j8/v/y9vn/9fn8/+7y9f9xdXr/z9PY/52fn//09vb/9/n5//T2
256 | 9//x8/T/9PX5//b3+v/5+fz/9/n4//n7+//09vb/z9HT//Dw9f++vsX/oaCp/4eGkP92e3v/vcLD/9vg
257 | 4f+XnJ7/1tve/5OXm/+xtbr/mZ2i/72+zP+Gh5X/oaOu/4iKlf+pq7X/19ni/9rd5P/Y2+P/tLS0/5eX
258 | l/+pqan/q6ur/8LCwv+qqqr/9fX1//j4+P//////////////////////////////////////////////
259 | ////////////////////////////////////////////////////////////////////////////////
260 | ////////////////////////////////////////////////////////////////////////////////
261 | ////////////////////////////////////////////////////////////////////////////////
262 | /////////////////////////////////////////////////////////Pv7//j6+P/1+/f/8fv2/+73
263 | 9f96f4D/l5ac/353gv+Lipv/bG52/3V5ef9kZ2r/iIiV/6emuP/b3en/9Pj8//3/7v/5/fz/8vb//+/3
264 | ///t+/3/3+zl/3J3dv+wrbb/lZSl/9XX6P/V3e7/z97s/8zd5v/V6Or/5PTv//H99//9/f3//f78//f5
265 | 9v/j5+H/9/r3/8HGxf/V2Nv/jY+W/4CGjP+5usb/4uDr/+/u8v/X2dT/+f35/6ersP/g4vD/o6eY/3N2
266 | dP+lpLT/gX6e/4qHpv/S0uH/9vv0/8zUvv/o6/f/ycvY/7q9w//t8PL/7O7t//b29P+1s7P/+/n6//r6
267 | +v/9/f3/+vr6//v7+///////////////////////////////////////////////////////////////
268 | ////////////////////////////////////////////////////////////////////////////////
269 | ////////////////////////////////////////////////////////////////////////////////
270 | ////////////////////////////////////////////////////////////////////////////////
271 | ///////////////////8+fz/9vb4//X6+//V293/cXd7/6Kkq/+gnqj/z8jT/66suP/c3OH/qKqq/6Cg
272 | p//Iwtf/W1Rw/1FLZf/W0ub/9/n1/+/y+P/p7/v/3On0/9bm5f/f6+r/e3yL/5qPsf9LM3z/U0R//3Nx
273 | lv/d6Pb/2Ors/9jp6v/a6O7/3ej0/+vw9//u9Pn/7fL1/+3y9P/m6+3/1tng/93f6v+Cg5D/gYSN/7m4
274 | yf9PSGH/U0ti/765xf/c3d//5uzp/8TNxv/08fv/7e71/97k5P/S3Nn/uMK//9je4P/5+v//9/T7/+Lp
275 | 6v+krKr/0NbT//T69v/N0M7/8fHz/+rn7f+koKn/rq6u//b29v/8/Pz/+vr6////////////////////
276 | ////////////////////////////////////////////////////////////////////////////////
277 | ////////////////////////////////////////////////////////////////////////////////
278 | ////////////////////////////////////////////////////////////////////////////////
279 | //////////////////////////////////////////////////////////////77/v/19Pf/hoeP/3p8
280 | hf+KjJb/urrD/9TR2//OyNP/6uru/9zc3P/x8PH/qqWy/21egP8+Kln/NiFR/3Zii//d2er/2tvr/9vk
281 | 7P/S5OH/1urj/9vk7P+Ohq7/SDN0/3pHzv9rRbL/XEmO/42Nrf/P3OX/1ubs/93q+P/X4/r/2Ofv/9jm
282 | 7f/e7PD/1uHk/83W2//S2OH/zc/d/39/kP98fon/kIuk/zMkUP89KV7/MR5P/5SKpf/b3uH/2OHU//b2
283 | /f/U2d3/3unk/668sv/B0Mb/2+Xl//f5///49f//7vfx/4+akf/x+fL/9v33//n+/P/z9vj/zc3V//Hv
284 | +f+vr6//7+/v//f39//9/f3/////////////////////////////////////////////////////////
285 | ////////////////////////////////////////////////////////////////////////////////
286 | ////////////////////////////////////////////////////////////////////////////////
287 | ////////////////////////////////////////////////////////////////////////////////
288 | /////////////////////////P37//38/P/NzNH/ZmRu/4B9h//LytH/1tXX/+zs7P/w9PH/+Pn2//j2
289 | +P/Qxdj/PCZV/0IiY/8yEFP/US9u/4J3mP/Z1+r/2+fm/9To2//V5+D/29/y/25fmf9kSJ3/cjXL/2o3
290 | u/9yTrT/UD2D/6Why//e5vr/3Or4/9Xm8f/T6uz/1uzs/9bq6f/U5uT/zNnZ/87X3P+9wcr/g4SQ/4mG
291 | l/9JPmD/Pydl/0kmf/9/Wbv/RSd3/2VWhP/PzN7/093P/9/o4f/N19n/iZOc/87X4v/W3+X/3+bl/9zk
292 | 3f+wsrv/oKSq/+Hm6P/3/Pv/9fr5//f7+//0+Pn/7/L1/7Ozs//4+Pj//v7+//f39///////////////
293 | ////////////////////////////////////////////////////////////////////////////////
294 | ////////////////////////////////////////////////////////////////////////////////
295 | ////////////////////////////////////////////////////////////////////////////////
296 | ///////////////////////////////////////////////////////////////////8/fX/+vv3/+Ph
297 | 5P/c2OD/39rh/+vp7P/o6uT/+/zz//j9+f/5/fr/8/L3/2dYd/9AI13/Rh9s/0cea/9MIWv/OSdS/5eQ
298 | qf/R19v/1uPf/9/n8v+Kg63/UTmE/188mv91P7r/cj68/3hHxf98U8f/Vz2Y/6+m2P/f5/n/2u3u/9Tp
299 | 7//W6vD/1+ns/9fl6f/P2t7/09nh/5OVof+np7b/gneY/ygWRP8+I2v/XzGk/4NM2f99StP/bEaw/1E3
300 | hf+3ucD/3N/o/5Wbpv++xtD/ydLb/83V2f/O1NT/fIF9/0g9Zv9ORGj/wbvV/9zb6f/t7vT/8vb2//f7
301 | +v+boZz//v7+//7+/v/+/v7/////////////////////////////////////////////////////////
302 | ////////////////////////////////////////////////////////////////////////////////
303 | ////////////////////////////////////////////////////////////////////////////////
304 | ////////////////////////////////////////////////////////////////////////////////
305 | //////////////////////////////n99f/8/Pv/hH2I/52TpP/f1eP/7Obv//v89//4/PD/8/36/+30
306 | 8//d3ej/aFh9/0gqav87EmL/VSd3/0cZZf88IFn/OSVQ/5yTsv+5tNf/ZFeQ/2lPoP9wTKr/XjSX/3NK
307 | qf9tPq7/d0HI/4BJ2v97TNH/ZUir/19Wkf+OkrP/tbTX/7y72//AvuH/v7vh/7ex2P+tpM7/a16N/3hr
308 | nf9QN3z/Ujd7/0EdcP97ScD/hEXh/4ND6/+BS+H/gFPS/1Q4jv+FcrL/iISh/8rR0//M19D/0NTZ/6yl
309 | wv88LVv/MRZY/z8oYv9aRnb/xrfb/9fO5v/Vz9//bGl0/+7t8/////////////7+/v/9/f3/////////
310 | ////////////////////////////////////////////////////////////////////////////////
311 | ////////////////////////////////////////////////////////////////////////////////
312 | ////////////////////////////////////////////////////////////////////////////////
313 | ////////////////////////////////////////////////////////////////////////+vv+/+7o
314 | 9P9BMVD/Mx5G/3xnjv/q3/D/9/T6/+3w7f/a6en/097h/9na6f+CdZ3/RShq/zoSYf9RJHH/SBtg/0ce
315 | bP81E1n/Nxxj/1I0j/96U8n/glLU/4NQyf9UIY3/bEil/3BEsf92QMT/gkbb/39G3f+CUt3/e1fP/3VZ
316 | xP9rSq//ZkWp/2FCo/9hQqH/Y0Ok/2JBpv94Vb7/fVnE/4pf0f+BW7v/Mw9i/4RVvv+KTt3/iEft/4ZK
317 | 6f99SNf/gk3h/3hOxP9ROoX/jISp/7y40P/Eu93/SDNq/0ksdv88Gl7/RiVm/z4hW/9ROGv/ppC//19P
318 | d/82JE//gW+Y//z8/P/+/v7//v7+//39/f//////////////////////////////////////////////
319 | ////////////////////////////////////////////////////////////////////////////////
320 | ////////////////////////////////////////////////////////////////////////////////
321 | ////////////////////////////////////////////////////////////////////////////////
322 | ///////////////////////////////////39P//1svk/1I9bP9AJF3/Oh5W/047ZP+0rMH/3Nzk/8rb
323 | 3v/P3OH/oKS2/01Ba/9HK23/OxRi/0keZv9AFlb/UiF+/2Q4k/98Urr/iFfc/31D5P+JSu7/jU/c/2Qq
324 | n/9WMJv/b0O2/3RAv/+GStf/g0Xe/4JF6f98ROz/e0by/4VL4P+FTeD/g07e/4NO3f+FUOD/iVTo/3xG
325 | 3v+ASeT/gEre/14wo/9AGW7/QRZx/3tFwv+FSN//iU/m/4JP2P+FSun/hE7g/3xSzP9pSqz/STB+/083
326 | fP84IV7/Qidm/z0bWP9BHlv/RSRf/0kpZP9cPnz/Qylo/0Qmbv9WOIP/+Pj4//39/f///////v7+////
327 | ////////////////////////////////////////////////////////////////////////////////
328 | ////////////////////////////////////////////////////////////////////////////////
329 | ////////////////////////////////////////////////////////////////////////////////
330 | //////////////////////////////////////////////////////////////////////////////rz
331 | +//78P//iXij/0s1b/85IF//MxpX/ykTSP9RPWv/mY2k/2ZUfP9XPH//b0un/2lAq/9IHov/Rh6F/29J
332 | qP9vR7T/dUbE/4VP3v+ESuH/ilLd/4FPw/9hNpH/OBBd/zkTXP91SqT/c0G3/4FK2f99ReH/fEfi/31N
333 | 3/9+U9z/hErk/4VL5/+FSur/hEfr/4VI7f+BROf/g0fo/4VK6P+NTeX/RRt3/zUeRv84HVL/XCyh/4VG
334 | 7/+CQ+3/g0zf/4JR1v+CT9n/gU3e/4JM4f+DTuL/h1Xg/4ZX2f9vQr7/MRRV/0AcY/9DGmj/RhZq/0cY
335 | av9TLHX/UzRy/0MpYf/7+/v//f39//7+/v/+/v7/////////////////////////////////////////
336 | ////////////////////////////////////////////////////////////////////////////////
337 | ////////////////////////////////////////////////////////////////////////////////
338 | ////////////////////////////////////////////////////////////////////////////////
339 | /////////////////////////////////////////P3n//r67//49fr/vbDP/2lSjv9uT57/XjuV/2A7
340 | m/9nQqT/cUm0/2s/tf9qPbf/b0K3/21Fqv9DInT/PiJl/2ZBoP9vQbb/cDrC/4RP0f9oOqL/OhRh/zcU
341 | Vf8+Glz/MwtQ/1Amef91RK//hk/U/4NJ4P+ESun/g0vq/39I5v9/Tdr/gU7d/4JO4P+BTeH/gEzg/4JP
342 | 4P+DUd//fUzX/3tFvf8vBlz/SClh/0cpYP85FGf/eUm+/4tY2/+FUdb/g0bv/4NE8P+DRfH/hUnu/4VO
343 | 5P+FVNP/aD6m/y0MYf9BIVz/SCRj/0YdYv9GG2H/Rh5f/0YmXP85I07/vq3J//z8/P/+/v7//v7+//39
344 | /f//////////////////////////////////////////////////////////////////////////////
345 | ////////////////////////////////////////////////////////////////////////////////
346 | ////////////////////////////////////////////////////////////////////////////////
347 | ////////////////////////////////////////////////////////////////////////////////
348 | ///4++H/9vvk//7+9v/48/r/1sfh/4xzs/9oSKP/a0ew/2o8wP9nOMD/bz3K/2s4xP9uPr//bkOx/3FM
349 | pv9QLnr/OxVp/2E3mf9uP6n/USWE/0IeYv8vEUH/QCJR/y0LQv9DGln/PhNb/1cogP9sOaX/iVLS/4lO
350 | 3/+IS+j/hkjr/4JR3P+DUd7/gk/e/4BO3P+BUNz/f0/X/4JT1v+AU9P/Vit9/zcQW/88GFv/Ti5l/zAS
351 | SP9MKm//bEKh/4JSxf+ATdz/hE7i/4ZO5f+GTOD/i1bZ/2M1nP88FmH/RSNd/zoVTf86E0z/SCBa/0om
352 | XP9FKFX/TDpX/9fO3P/++v///v7+///////+/v7//f39////////////////////////////////////
353 | ////////////////////////////////////////////////////////////////////////////////
354 | ////////////////////////////////////////////////////////////////////////////////
355 | ////////////////////////////////////////////////////////////////////////////////
356 | //////////////////////////////////////////////nz+v/9+f//+/j5//v5+v/7+P3/9+/9/5GE
357 | q/9kU4j/X0aZ/2hLpv9qSLD/bkW6/2w+uP9uQLr/cEG3/3JEtv9MI3f/LgpR/zcWUv9HJmD/NxVV/1Qv
358 | c/9MKmf/QyRX/0ohXv85EU//RBxe/0UcZv9LH3f/Xy6X/3M/tv99Rsb/fUbL/4BJzv+ETNL/hU7T/3xG
359 | x/94RMD/ZTOp/0cWiP87F1X/QBxY/zYVTP9CIln/ORdU/zMNWP9AFXP/TB+I/1Q3f/9mRpj/dlCv/3tP
360 | tf9dMJL/PhVm/0gjX/85GEf/MgxE/0EYU/86FUz/NRhG/0UwUv+Cd4v/4N3k//f5+f//////////////
361 | ///9/f3/////////////////////////////////////////////////////////////////////////
362 | ////////////////////////////////////////////////////////////////////////////////
363 | ////////////////////////////////////////////////////////////////////////////////
364 | ////////////////////////////////////////////////////////////////////////////////
365 | //////////H////1////+////v/6//v+9//i5uX/xcbQ/8jH2v+3stH/dGyT/0Mza/9jSZP/ZkSe/2hA
366 | pv9pPKn/YDKh/0kceP9CI1j/IAwj/yMJMf9FHXL/dEOx/0ohev85G1P/NhBU/zwXWP8xD0n/QyNa/0Qk
367 | W/9CIGD/QB1l/0Aaaf9JGHL/SBdx/0sZdv9KGHP/SRhw/0YXav9FGWX/TCBo/zAMTf9JKVv/LBA7/0Ig
368 | Xv9WKov/d0S9/1gonv9OIYz/KwtZ/zMRZP8rBV7/Mgxj/y8MWv8xEVH/LAxB/x0BK/8tCET/Tilm/ykN
369 | Qf9NOGT/xbfY/8XA0/+bnKX/+Pz8////////////////////////////////////////////////////
370 | ////////////////////////////////////////////////////////////////////////////////
371 | ////////////////////////////////////////////////////////////////////////////////
372 | ////////////////////////////////////////////////////////////////////////////////
373 | ////////////////////////////////////////////////////+/3///38///++f/9//f/9vz1/5eb
374 | oP/Mzd//ycji/6Okuv+OjKf/GhQ1/xcMNf8pFUn/PiRi/zwdYP9BH2X/Qxlx/zQWTv8oEzP/Vzxy/3JI
375 | q/9rPLP/YDia/1M3ef9sR53/QiFy/yEKTP8lCkv/MBVT/zUaV/87IF3/QCVi/0gkV/9HI1f/Sidc/0om
376 | XP9JJln/SSdW/0MiTf8uETX/JgZN/y8PTf83GFL/Tyl//4ZU0v+ASNv/ilXd/2I3qf95PtL/jFPf/4ZV
377 | z/+FWsD/SiZ1/z0hXf80HUn/Mx5D/0MlXf82HVH/NCJQ/2thhv/Avdr/vb3R/66wvv+HiZP/////////
378 | ////////////////////////////////////////////////////////////////////////////////
379 | ////////////////////////////////////////////////////////////////////////////////
380 | ////////////////////////////////////////////////////////////////////////////////
381 | ////////////////////////////////////////////////////////////////////////////////
382 | ////////////////9v////b//v/3//3/+v/2+/r/mp6n/9zf7//Q0+j/pKm8/7CzyP+zscr/PDVV/x8T
383 | Of8bCTb/Kg1H/zYXVP89HWP/VjOC/2ZCmv9pRZ//aUmc/1k+if+GbLX/TTR8/2tKs/+Na9X/fFrG/29N
384 | uf9YN5//Ti2R/z4gfv8zGG//MRRZ/y4PWP8tDln/KQlW/yYGU/8oCVP/LxNY/0UnbP9iQJH/SiV//0of
385 | iv+BU8z/f0/P/31Pzv9aLqn/eVDG/4xL6P9/Rs//VimU/zgYZP8wG03/QzVc/yccP/8mHUD/Kx5C/yIa
386 | PP8lIj3/srXM/7vC1f+9xNT/jZGf/7i5x///////////////////////////////////////////////
387 | ////////////////////////////////////////////////////////////////////////////////
388 | ////////////////////////////////////////////////////////////////////////////////
389 | ////////////////////////////////////////////////////////////////////////////////
390 | //////////////////////////////////////////////////////////39///9/v/+/f7//f3+//j8
391 | /P+7w8H/rrq1/+Xy7f/n8/T/0Nne/8PF0//Dvdn/hXWj/1E3d/9mQpL/ZT2W/15Fev9XLpT/Ux+r/1Ak
392 | nP9LNXP/w7rQ/5KHrv9OOYL/TS6k/2VEwP+BXOP/flXk/4NZ6v+FW+n/h17l/4hh4v+CYNr/f1zZ/35b
393 | 3P97V9r/elXZ/31Z3P+AXd7/e1nY/3VVpP89EoX/fkfe/4BM4P92TcH/ZESh/2RCp/9+V8//fU6y/04m
394 | dv8tEkX/fnCJ/3x3hP/EwtP/mpa1/5iRu/+xsMT/YmV4/7rD0v99i5b/x9bf/8nU3f+aoKv/trjA////
395 | ////////////////////////////////////////////////////////////////////////////////
396 | ////////////////////////////////////////////////////////////////////////////////
397 | ////////////////////////////////////////////////////////////////////////////////
398 | ////////////////////////////////////////////////////////////////////////////////
399 | /////////////////////////////////////////Pz8//f39/+Wlpb/p6en/9Xx+v/O5er/prG2/8rH
400 | 1f/Kutn/ppG+/ysZSf8wIE//UCmA/1s4ef9dOn3/VDSG/1hNhP/t8v3/oZe3/1QshP9NNIz/QiqC/0w0
401 | j/+AZsz/f2PY/31c4/95U+z/e1P2/4JZ4v+AWtn/hmLe/4JZ5f9/T/D/fUvv/31S4/93U87/VCSK/3tF
402 | w/+DTtr/dk3I/0Epf/+Lerv/aFOe/04ykf8xKEf/nJO6/62k0P+9udz/xsjb/9XY3//m5uv/4t/p/9jZ
403 | 6f/f4er/2d3j/93f6//d3PH/3Nrv/4KEkP/2+/v/////////////////////////////////////////
404 | ////////////////////////////////////////////////////////////////////////////////
405 | ////////////////////////////////////////////////////////////////////////////////
406 | ////////////////////////////////////////////////////////////////////////////////
407 | ////////////////////////////////////////////////////////////////////////////////
408 | ///4+Pj/+vr6//f39/80NDT/pZiq/3N0gP+isbj/uMzZ/7G51/+pm8j/OhJJ/1kgW/8uClT/Lw1F/zkW
409 | Uf8+ImX/iYSo/+Xx7/+ko7T/UTV4/0E0aP9QRHj/WlKE/xcMS/9SQpH/emXH/3xi1f90V9X/YTus/08t
410 | lf9YN53/fFrJ/4Rf3P9+Wtb/fGLH/y4faf9NKnP/Zz+e/3ZOvP9WOJf/QTBw/56Tuv9aSoL/UzuG/7u0
411 | 0f+3sNT/vbbe/7u51//W2uf/9/v9//r6/P/9+v//7vH3//L39//z+fb/9vr7//T2/f+ztL7/xcnN//b9
412 | 9///////////////////////////////////////////////////////////////////////////////
413 | ////////////////////////////////////////////////////////////////////////////////
414 | ////////////////////////////////////////////////////////////////////////////////
415 | ////////////////////////////////////////////////////////////////////////////////
416 | //////////////////////////////////////////////j4+P/4+Pj/+vr6/8LCwv9KNkT/lI2Z/9Pb
417 | 6f+zwtX/s7nY/3Vkkf9IHFj/Vhhb/z0bWv9EIVf/QiBW/yoURv+xtMX/2e7h/6u3uf82K1T/oqOw/8rL
418 | 2f/U1eP/jo6l/yMiQ/8hGU3/Jxtg/ycZZf8zEmX/LAtb/ysMW/8tFGH/OR9y/zMhaP8sJVH/OjtU/xkM
419 | K/8+K2D/Uj2B/0w9ef9dVXv/ioWe/z4yVP9EMWP/w77Y/8jC4v+8udn/0dLp/6Wqsf/x9fX//fz+//v2
420 | /P/3+fz/+f/7//f98//1/fP/9vr5/6aprP/U2db/7vXr////////////////////////////////////
421 | ////////////////////////////////////////////////////////////////////////////////
422 | ////////////////////////////////////////////////////////////////////////////////
423 | ////////////////////////////////////////////////////////////////////////////////
424 | ////////////////////////////////////////////////////////////////////////////////
425 | ////////+vr6//v7+//4+Pj/9vb2/3uKjf/W3+v/xsTd/8e+3v/IuN3/YE57/yMPSP8iEE//MhFQ/zEM
426 | TP8yDUv/Hgk1/9HX4f/S697/vtDQ/56guP/c4+H/7/Xz/9vh3//Q1tn/09fj/0FAXP9taJH/LiZZ/1gy
427 | fP9aNX//VzaB/0Yqcf9PPHj/KCBI/3l9i//c5+T/srK6/9nW7P9QSm3/TUlr/318kv+EgpL/Jx41/1RF
428 | Z//GxNv/vrzW/9DQ6v/k6fX/tbu9/5qdnf/t6PL/5Nno/9rW6v/29/z/+P33//b69P/P0tH/kpWY//T3
429 | 9v/5/vj/////////////////////////////////////////////////////////////////////////
430 | ////////////////////////////////////////////////////////////////////////////////
431 | ////////////////////////////////////////////////////////////////////////////////
432 | ////////////////////////////////////////////////////////////////////////////////
433 | ///////////////////////////////////////////////////7+/v//Pz8//n5+f/k5OT/tdDP/8HT
434 | 5P+9yOf/lpzE/ywsUf8VGUH/JiRc/yYhZ/9EJG7/TiN8/00idv80Hk7/4+ny/8PZ1//K3OP/l6Gz/+7z
435 | 9v/1+/7/8/j5/9/j6P/Mzdr/MC1G/2BZfv80Klb/XDh6/1YxfP9WM4T/PSFs/25clf83MVH/ztTd/97p
436 | 5v/l6en/3eDp/+Xn+f+Pkqj/ioyg/5OSpv8gGjH/NClF/8zN4f/Dxdv/w8bb/8HH0//m7O//a2t0/0Q4
437 | Uv88KFH/OSxb/7evy/9RUFn/o6Sn/3h4fv/V1Nz//Pv+//j6/P//////////////////////////////
438 | ////////////////////////////////////////////////////////////////////////////////
439 | ////////////////////////////////////////////////////////////////////////////////
440 | ////////////////////////////////////////////////////////////////////////////////
441 | ////////////////////////////////////////////////////////////////////////////////
442 | //////////////f39//9/f3/+fn5/8bGxv/U19r/v8vl/199qf9klL7/gbbT/3udvP9xc6f/RjB6/1xB
443 | lP9xRbL/cEGo/zQdUv/T2eT/t8nR/83d7P+ms7//9Pf///X5///i5O3/0dTd/9fW5f9taYH/LiVI/zYq
444 | VP89JlP/OyBe/z0fbP9HLHf/LR1S/y4qRf/b4Oj/8fn7//j8/P/y9/r/7PL7/3qBkf+EiJ//rq/I/11b
445 | dP9jX3f/b3OF/29zh/+1us7/xsvZ/9TX4v/n4PP/Mh1N/0EhZf9CKXH/RDNm/zIqQ//MydD/8O31//z4
446 | ///49f7/+/n9////////////////////////////////////////////////////////////////////
447 | ////////////////////////////////////////////////////////////////////////////////
448 | ////////////////////////////////////////////////////////////////////////////////
449 | ////////////////////////////////////////////////////////////////////////////////
450 | /////////////////////////////////////////////////////////Pz8//f39//7+/v/xsbG/+7t
451 | 9P9/hqn/hKDX/4m57P+Lw+H/t+D1/7a+6/+Idr3/UT6Q/3FJvv9wQ7H/NSFR/6Kpr/+0xM7/0eDu/5yr
452 | rP/v9Pv/5Ovw/8zS0//b4OH/8fT3/726x/87NEn/xLrT/+Xj6f/t4/r/VUR7/zcnX/8zK0//3+Hs/+vy
453 | 8//x+Pn/+Pj5//b6+v/v9/n/iZOc/4KJnf/K0en/k5it/8zT4f+sssT/v8TY/3qAlP+wtcb/yMfb/6yf
454 | xv8vFFf/WjCP/39huP9cR4X/ycDV//v5/P/9/P7//Pv9//79/v/7/Pr/////////////////////////
455 | ////////////////////////////////////////////////////////////////////////////////
456 | ////////////////////////////////////////////////////////////////////////////////
457 | ////////////////////////////////////////////////////////////////////////////////
458 | ////////////////////////////////////////////////////////////////////////////////
459 | ///////////////////8/Pz/+fn5//j4+P+zs7P/vtTd/4COtP98hcb/Hipn/xAgQ/9JYXr/gpfA/4+b
460 | 2/9gVKP/ZkK4/2xBr/8vHkn/eYKB/87d5P/S4Or/pLWs/9rj4f+tt7L/usW6//b88//4/fX/4+Xj/6ek
461 | qv/69f3/9v/q/+/y9P+0rs//IxxC/2Rjdv/0+vj/9fz0//P69P/Y19b/+vz4/9/n4/+grK//e4eW/+Pt
462 | /P+EkJ7/yNXb/8zT5f/Fyt7/wMXa/6qvwv+5t9D/sKDR/00sfv+NXMz/YEGc/76p2f/68f//9/b4//v8
463 | 9//7/Pb//P32//3/9f//////////////////////////////////////////////////////////////
464 | ////////////////////////////////////////////////////////////////////////////////
465 | ////////////////////////////////////////////////////////////////////////////////
466 | ////////////////////////////////////////////////////////////////////////////////
467 | //////////////////////////////////////////////////////////////r6+v//////+fn5/9PT
468 | 0/9ceqv/eo7A/ysxWf8nKD//io6V/77N1f9uiJ7/haTK/4R2xP9bRJH/XkKF/zcnUv+PlqT/zeTj/9Pr
469 | 7P+Bk5z/Tzx1/1xWdP/b5eX/6Pjx/+/6/f/P0eH/lpKf//Xy9P/q/Pf/4eXu/6WZs/8wJUT/TU9h/+r2
470 | +v/w+/n/9/r6/2xed/9YTmj/ubfP/6mvyf9+iqH/3ur4/6eyu//DzNL/6vP7/9/n8P/t9Pb/9vz5/+Tn
471 | 5f/Y0d7/ZlCF/25Onv+7u7v/+fn5//7+/v/7+/v/////////////////////////////////////////
472 | ////////////////////////////////////////////////////////////////////////////////
473 | ////////////////////////////////////////////////////////////////////////////////
474 | ////////////////////////////////////////////////////////////////////////////////
475 | ////////////////////////////////////////////////////////////////////////////////
476 | /////////////////////////Pz8//7+/v/8/Pz//Pz8/2qEsv9QYI3/Gh5B/4OClf/Fyc3/x9XZ/6G3
477 | y/9deJv/gnnE/0w6gf87Jl//Zlx9/9Hb4//a7+//4/T7/0dPZ/9fT5T/R0Bo/7m9w//g6uL/8vn3//P3
478 | +/+tsLb/p6qr/7/T0f/K0Nr/bGN5/xwUKf+rrbf/7PX2//H1+f+uqLf/RTJs/0g6cf8rKFL/sLfV/5Kg
479 | tf/V4+//5/D2/6GosP/1+v7/9fj9//L0+f/2+fn/+fr3/7GttP9VR2b/ybTg//r6+v/6+vr//v7+//r6
480 | +v//////////////////////////////////////////////////////////////////////////////
481 | ////////////////////////////////////////////////////////////////////////////////
482 | ////////////////////////////////////////////////////////////////////////////////
483 | ////////////////////////////////////////////////////////////////////////////////
484 | ///////////////////////////////////////////////////////////////////7+/v//Pz8//7+
485 | /v/5+fn/eY2w/0ZRc/+eobr/9/b+/9zg3v+rt7b/xNbl/3SJp/91crf/Midl/11RfP+amKj/6vbz/9/x
486 | 8v/l7P//T0l1/3JhwP9DOHj/iISc/9LSz//q7OT/8/f2/8jS1f88R0r/Y3h//ysxPf98dYL/Z2Jn/6Wp
487 | pv/1+fr/3tbr/z0oT/9rTbz/fmnI/1JNkf+jrNH/prXL/87d6f/t9v//s7fC/42Kk//Pydj/7eb1//Pu
488 | +f/59/j/jIqI/9PQ1f/38fv//Pz8//39/f/4+Pj//f39////////////////////////////////////
489 | ////////////////////////////////////////////////////////////////////////////////
490 | ////////////////////////////////////////////////////////////////////////////////
491 | ////////////////////////////////////////////////////////////////////////////////
492 | ////////////////////////////////////////////////////////////////////////////////
493 | //////////////////////////////39/f/8/Pz/+/v7//39/f+ap73/UVdu//b2///29fn/7vDr/5eh
494 | nf+5xtD/h5Wu/2Bjnf81M2P/cG2I/+rw8f/l9+3/6/r6/97b/P9QO3z/c1/c/046mv+Xhrv/sKKz/9vU
495 | 1P/5/Pv/t8TN/0Zaaf9gcYP/c3mJ//r4/f/GxL//n6SZ//T0+P+Ziaz/QiFf/3lR6v98YeL/XVWt/5qj
496 | 0P+3yd7/z9/n/+31/f/t7/j/X1Nj/zYnQ/9FM1j/OipK/46FlP+zsrD/+/zy//n68v/7+/v//Pz8//z8
497 | /P/6+vr/////////////////////////////////////////////////////////////////////////
498 | ////////////////////////////////////////////////////////////////////////////////
499 | ////////////////////////////////////////////////////////////////////////////////
500 | ////////////////////////////////////////////////////////////////////////////////
501 | ////////////////////////////////////////////////////////////////////////////////
502 | /////////////7W7xP+QkZ//+Pf+//r8/P/c49r/pa+n/7C7wv90f5T/YWqV/46RtP+6vMr/7/n2/+P2
503 | 6v/t+v3/zcbv/z8ja/93W+v/dFjS/21Spv8zHkr/xbrL/+Dj7P/BzeH/gJKy/0NQbv+pr8T/9fP7//r6
504 | 9f9/hXn/zMzV/5qHtv9MJnT/fVH3/3VX4v9hV7b/lZ3K/73P5P/N3ub/7fX+//L0/v/r3+3/RjRY/3Jd
505 | jf9MOGT/49fr//z5/P/8/fb//f30///////////////////////+/v7//v7+//7+/v/+/v7/////////
506 | ////////////////////////////////////////////////////////////////////////////////
507 | ////////////////////////////////////////////////////////////////////////////////
508 | ////////////////////////////////////////////////////////////////////////////////
509 | ////////////////////////////////////////////////////////////////////////////////
510 | ////////////////////////////////////////////////////////9/n6/7m5vP/4+fz/9fn3/+Tt
511 | 4/+EkYj/f4mP/3qClf9lcIr/houg/+3x+//u+vj/4vfv/+f2/f+6s9z/NRpe/3tZ5P95WNf/e13C/zci
512 | Yv9EPVz/xsrb/7nE3f+Nmr//Sld9/1hbfP/DvtL/oqGj/4WMif++wdD/PC1h/3NSpf+BVuv/fF3b/1xQ
513 | p/+Fi7z/w9Ln/83d5v/r9P3/8PX+//v3///g1ev/TT5n/7yuzf/68f7//fr+//v7+f/+/vv/////////
514 | //////////////7+/v/+/v7//v7+//7+/v//////////////////////////////////////////////
515 | ////////////////////////////////////////////////////////////////////////////////
516 | ////////////////////////////////////////////////////////////////////////////////
517 | ////////////////////////////////////////////////////////////////////////////////
518 | ////////////////////////////////////////////////////////////////////////////////
519 | ///////////////////7+vf/2djZ//f5/P/u9fP/wM7E/1VlXf/k7/H/bHGF/2x3gv/g5O//8/X8/+Xv
520 | 8//h9vX/2+v2/6ShxP88JV//f1zN/3hWyP9AJor/KR1i/y0wUf+/y9j/tcDS/4+XtP8/SXf/Pz9p/2BZ
521 | eP9bWWn/wsrS/3V8k/8nIFb/Qyx9/3RMv/94W73/OS11/3F0oP/G1Or/y9vl/+fx+f/t9fv/8fn1//H0
522 | +P/T0d//ycfW//v6/v/+/fv//fv6///8/v///////////////////////v7+//7+/v/+/v7//v7+////
523 | ////////////////////////////////////////////////////////////////////////////////
524 | ////////////////////////////////////////////////////////////////////////////////
525 | ////////////////////////////////////////////////////////////////////////////////
526 | ////////////////////////////////////////////////////////////////////////////////
527 | //////////////////////////////////////////////////////////////389v/FxMT/6+/z/9Db
528 | 2P+js6r/UmJb/5Cbof90eY7/sLu9/+7y+v/x8fv/3OXw/+P4/P/O4Oz/j4+u/0EwYv9hPpj/RSaI/zci
529 | gP98eLX/oq3L/2J0e//Aztb/iI6i/zM6a/9EQnL/bWSM/7+81f+xusr/WGN+/0pIfv83JnT/QBt1/0cr
530 | ev8sH1z/WVuD/87a8f/P3ej/6PP6/+/5/f/r/Ov/6vfv//L7+P/O09H/wMa8//7/9f/8+fb//vr+////
531 | ///////////////////+/v7//v7+//7+/v/+/v7/////////////////////////////////////////
532 | ////////////////////////////////////////////////////////////////////////////////
533 | ////////////////////////////////////////////////////////////////////////////////
534 | ////////////////////////////////////////////////////////////////////////////////
535 | ///////////////////////////////////////////////////////////////+////////////////
536 | ///7+/v/+fv7//n7+//5/v3/9/3p/9XXy//c4OD/6fL5/4WXp/9feJj/g6HU/01qrf9bb5f/xdHk/+ns
537 | 8//s8Oz/6/Tw/83U4f99d5v/Sjhs/18ggf9lMIn/OyNt/2Z/tf94uNv/jMzm/1hxkP+kl7r/MTle/11c
538 | gP9dWnr/jqG8/0h9mf9/weX/MmaY/1h4tf8fHlv/PiRh/00hWv9XOmf/0tn0/8fi8P/d7fX/+vj+/+T2
539 | 9f/n9vb/7/38/+34+P+yubn/09fY//f5+f/7+vv/////////////////////////////////////////
540 | ////////////////////////////////////////////////////////////////////////////////
541 | ////////////////////////////////////////////////////////////////////////////////
542 | ////////////////////////////////////////////////////////////////////////////////
543 | ////////////////////////////////////////////////////////////////////////////////
544 | //////////////////////////7///////////////////v7+//8/v7/+/39//j8/P+lxd//XHug/2mH
545 | sv9CZJP/Yoy8/36v5P90q+r/frf7/4+65P9IaIf/ssXU/+f2+P/h7/P/ydDl/2xhjP9SOXT/UDaF/zst
546 | dv9ESIT/JjRl/yM0X/9meZ7/jaLG/0BYev85NGD/c3ee/zRCYv9hb43/qrLV/zs7Z/8YE0n/ZmOg/1le
547 | k/84Jlv/RSNV/zYgRv/T2/P/x+Dt/+Tz+v/59/z/6fr5/9no5//x/v3/8Pv7/+ft7f+lqar/+Pr7//r7
548 | /P//////////////////////////////////////////////////////////////////////////////
549 | ////////////////////////////////////////////////////////////////////////////////
550 | ////////////////////////////////////////////////////////////////////////////////
551 | ////////////////////////////////////////////////////////////////////////////////
552 | /////////////////////////////////////////////////////////////////////v//////////
553 | /////////v7+//n7+//7/f3/2t/e/1N8tv+Isev/e6Ld/4Or4v+r1/z/jsDs/4G56v9/uur/iMTq/5XE
554 | 4v9Sc4b/3fT+/8bZ5/+8xN//YFSB/0QoY/9NQXj/GCdW/5C33/8gQGX/KzFZ/1lTff87RG7/Mk94/0Yy
555 | Zf9haZT/Jkdo/3CLqf9lZon/Vkpy/ygpVv+Tqdf/fIuy/zYyV/8zH0P/JRg2/7zH2P/L4er/5vX6//b2
556 | /P/u/Pz/2ufo/+j09f/z/f7/8fj5/8rP0f+ztrj/9/r7////////////////////////////////////
557 | ////////////////////////////////////////////////////////////////////////////////
558 | ////////////////////////////////////////////////////////////////////////////////
559 | ////////////////////////////////////////////////////////////////////////////////
560 | ////////////////////////////////////////////////////////////////////////////////
561 | ///////////////////////////////+///////////////////7+/v/+/39//r8/P/P1NP/kqrF/520
562 | zP+kt87/mqm+/yo2VP8lM07/cYWU/4egpf9ikK3/ZIef/2mBk//P4+7/uc3c/624z/9iXoL/PSpY/2RK
563 | bv+PlbP/Z5Sr/5zW7P9kkKv/e4+y/4SJtf9HR3j/JRpL/yUxXf8ZOlz/Q3SP/0x8lP9HfJT/gsjf/33T
564 | 6v9/lKz/pKrC/5ONpf9FQVX/nai0/9Hj6//k8Pb/8/b8/+/8/f/n8/X/1uHj//P8/v/w9/n/5evt/56j
565 | pv/1+fv/////////////////////////////////////////////////////////////////////////
566 | ////////////////////////////////////////////////////////////////////////////////
567 | ////////////////////////////////////////////////////////////////////////////////
568 | ////////////////////////////////////////////////////////////////////////////////
569 | //////////////////////////////////////////////////////////////////////////7/////
570 | //////////////7+/v/7/f3/+vz8//P49//u+/T/8vzx//r+9v/9+v7/STtS/z4wSP/e19//+Pfw/9/w
571 | /P/U3ev/8PP9/9vh7P+4yNL/kKCv/32DmP+0sMn/08bX/8a+zv+5wc//bI2c/5HI2f+i1ez/XHSY/1tX
572 | hf9NZI7/cYGp/1hsjv9hiaP/muDr/5Lo8v9/z9r/VZmn/3GFjv+9ytT/yMzY/8HEz/97g4z/ztni/+Ls
573 | 9P/s9Pv/8Pr8//P9///R2t7/6PH0//D3+v/u9Pf/wMXJ/8XKzP/9/f3//Pz8//7+/v/+/v7/////////
574 | ////////////////////////////////////////////////////////////////////////////////
575 | ////////////////////////////////////////////////////////////////////////////////
576 | ////////////////////////////////////////////////////////////////////////////////
577 | ////////////////////////////////////////////////////////////////////////////////
578 | /////////////////////////////////////v//////////////////+vr6//j6+v/6/Pz/9Pn4/+n5
579 | 9P/v/fX/xNDI/3t7iv80KFX/QjVp/+Pf+P/x9vv/393k/+Lb5P/57/v/0c/c/7vG0v+HmKP/h5Gc/87P
580 | 2//F2t7/9/P5///0/f/r5vD/ssfR/2qWp/9Xf5f/Qll4/z5ohv9DVnX/S01s/2Nvh/9bf47/XIWP/4+h
581 | q//Uzdr/5PDy/+z3+v/2/f//zdLZ/3d6hP/Jztn/0trn/+r0/f/x+fz/9f3//+Hp7f/U2+D/8fj8/+/2
582 | +v/o8PP/nqaq//r6+v/+/v7//f39//39/f//////////////////////////////////////////////
583 | ////////////////////////////////////////////////////////////////////////////////
584 | ////////////////////////////////////////////////////////////////////////////////
585 | ////////////////////////////////////////////////////////////////////////////////
586 | ///////////////////////////////////////////////////////////////////////////////+
587 | ///////////////////4+Pj/+/39//f5+f/u8vL/maax/7rIyv+Aio7/ra3H/0E4dv8/N3r/4eb//93v
588 | 8//M1dn/6Ojz/+Xg8f+6utD/s7zR/2RugP+4ucj/9u75/+f09//1+Pv/7enu/+ri6f/v7fP/5/L4/7zQ
589 | 4P+JoLP/QVBm/4SOpf/DyN7/ur7S/8HE0//Oy9j/+/H6//z0+//3+vf/9vv6//f+/v/u8fb/pqWw/7Sz
590 | w//Gzd//4O78/+zy+P/0+v//8Pb6/8/V2//d5uv/8vv8/+Do7f+aoqj/+/v7//v7+//9/f3//Pz8////
591 | ////////////////////////////////////////////////////////////////////////////////
592 | ////////////////////////////////////////////////////////////////////////////////
593 | ////////////////////////////////////////////////////////////////////////////////
594 | ////////////////////////////////////////////////////////////////////////////////
595 | //////////////////////////////////////////7///////////////////39/f/6/Pz/4+Xl/4uQ
596 | j/+/usz/srG3/4+Mkf/t5P3/UD96/1VIg//k6f3/zeHU/8Lc4v/f7/3/u8LZ/6ux0P+YocH/XWJ+/8rC
597 | 2P/jzeH///H6/9nd4f+pycf/o8K+/6mvsv+QgIr/g3OB/4B5iv+rkKf/cXCC/2N3hf+HmKX/kJCd/8G7
598 | xf+zvsH/f56b/9vX0v/g4t//4ufn//Dx9f/NyNX/j4ue/8HH2//E1er/5unx//D2/P/1+///3OLp/8jQ
599 | 1//n7/X/7/j8/8LM0//T09P/+fn5///////5+fn/////////////////////////////////////////
600 | ////////////////////////////////////////////////////////////////////////////////
601 | ////////////////////////////////////////////////////////////////////////////////
602 | ////////////////////////////////////////////////////////////////////////////////
603 | //////////////////////////////////////////7////+/////////////////v////7////+////
604 | /f/8+Pf//fv8//38/f/09fj/8/X7//b4/f+IiZf/xsbV/83I0P95dZH/wcfT/+no/v9aQoz/aVSR/+Ln
605 | 8f/D0tr/4Nvw/9/b7/+1tMf/s7PF/4GElP84PUz/dXyJ/7a+y/+lqbj/rrLE/2hvgf+Mlqn/mKa7/9Xm
606 | +v/N4vj/0Of9/9jn+v/Z6Pv/1OP4/8fV6/+ntcr/X22F/3J/mf9HT2f/lpqt/3yCj/+stLv/vsfK/8HJ
607 | z/+Ok6L/yMrj/8DA3//Gz+D/5u/4//T8/f/q9O//zNbP/9Ha2f/t+fz/3unz/7e8vP/2+/z/9fn5//n8
608 | /P/9//7////+/////P////z/////////////////////////////////////////////////////////
609 | ////////////////////////////////////////////////////////////////////////////////
610 | ////////////////////////////////////////////////////////////////////////////////
611 | ////////////////////////////////////////////////////////////////////////////////
612 | /////v/////////////////////+/////v////7////+//z7/P/y7/H/+/r8/7S0uf9zdX3/i42W/6yu
613 | uP/AwM3/s7C7/5GOq//L0t7/6uz//1xKk/9lWJT/0Njm/8nZ4//h4PT/wMDV/6ipvv9xdIf/aW+B/3J4
614 | h/+xu8f/zNbk/7a+yv+gqbn/t8HM/9rn+P/b6vj/1uf8/9nr/v/V6f3/2ur8/9jn+f/Z6Pv/1+b6/9Ti
615 | +P/Y5vj/1+X4/9jl9/+9w9f/k5us/11kb/9cZm//WWFs/3J5i//Aw9//wcLk/7rA2P/L0+T/7fP7//X9
616 | /P/V3tz/zNXU/9nl6v/r9v7/pKmq//X6+//5/f3/+Pv7//3//v////7////9/////P//////////////
617 | ////////////////////////////////////////////////////////////////////////////////
618 | ////////////////////////////////////////////////////////////////////////////////
619 | ////////////////////////////////////////////////////////////////////////////////
620 | //////////////////////////////////////////////////////////////////////////7////+
621 | /////v//9/j8//X2+v/ExMn/urrA/7y8w//NztX/w8bM/9TW3f93eYb/uLfV/97m7//g5/j/YVqe/2Jg
622 | mv/F0+H/y9vo/8jO5v9vdYz/cHeN/7vE1P/k7/3/3er7/9fk9f/d6/j/2un1/9/u+P/S4vH/2+v5/93s
623 | /f/d6/z/1uX4/9zq/f/b6/r/2en5/9rq+//Y6Pn/1+b4/9Xk+P/Z5/n/1+X6/9nk+P/a5vT/1+Xy/9Xj
624 | 8f+erLr/QEtj/3mBof+0u+D/uLzc/7a60//l6Pj/9fv//+Xs7//M1Nf/ytXa/+fz+v+QlZj/9vr8//b6
625 | +//3+vr//f///////v////7////+////////////////////////////////////////////////////
626 | ////////////////////////////////////////////////////////////////////////////////
627 | ////////////////////////////////////////////////////////////////////////////////
628 | ////////////////////////////////////////////////////////////////////////////////
629 | //////////////////////////7////+/////v////7////+///p7fP/hYeQ/4aGj//Ixs//4+Ln/+zt
630 | 8//x9ff/r7S3/5yltP+8vt3/5O73/+Dv+/93f7v/Xmyh/8rh7f+UpbX/ZHGI/7TC1f/c6/v/1+b5/9jo
631 | +f/X6Pn/2uv7/9rr+//W7fn/1er2/9zw/P/Z6vf/2ur4/9zr+f/g7fv/3+r6/8ze6v/V5vL/3O36/9jo
632 | 9//e7vv/2+v6/9np+f/Y5/n/2ef9/9Tj+P/Z6fn/2Oj6/9Tk+P/U4fz/m6bF/1Vfhf+SlLr/s7XW/76/
633 | 1//r7fn/8vf9/9DX3v/I09n/1eLo/6uws/95fYD/6u3w//j7/P/9/////////////v////7/////////
634 | ////////////////////////////////////////////////////////////////////////////////
635 | ////////////////////////////////////////////////////////////////////////////////
636 | ////////////////////////////////////////////////////////////////////////////////
637 | //////////////////////////////////////////////////////7////+/////////v//+vn7//b1
638 | +f/49vz/9/T5/2ZsdP/BxMz/zs3W/8fEzP/q6e//9fj8//D4+v+Aio3/ytzq/8/V8f/t+fz/3/j6/5Gq
639 | 2/9/n8v/h6my/6Cywv/M4PX/xtrv/8TY6v/V6ff/1ur7/9br+//Y7Pz/2e38/9Pt+f/V7fn/1+76/9ru
640 | +v/e7/r/4vL9/7bEzv+qtsH/qbzB/56xt/+WqLH/2Ov0/9/w/P/b7fn/2uv5/9rq+f/U5/z/1Oj7/9Tn
641 | +//T5vv/0eP5/8/f+//O3fz/u8nr/25wlv96e57/razI/8XG2//v8vz/4efv/8zW3v/I1dv/rbG2/5OX
642 | nP+ChYn/5Obo//f5+f/+/f7/9/f3//r6+v//////////////////////////////////////////////
643 | ////////////////////////////////////////////////////////////////////////////////
644 | ////////////////////////////////////////////////////////////////////////////////
645 | ////////////////////////////////////////////////////////////////////////////////
646 | /////////////////v////7///7////+///39vn//Pn+//r3/v++usX/qrC1//f5///59/z/+fX7//b1
647 | +v/2+///uMTJ/6a5vP/O6fT/4Ov+/+z89v/c/fb/rdf2/4S21//C7vL/zOLx/8Pb7P/I4fL/1u78/9fu
648 | /P/Z7vz/2u/7/9zw/P/d8Pz/2fP+/9v0/v/d9P7/4PX//+H2+f+rvcX/xNbb/+X3+//i9vn/4/b4/8nd
649 | 4f9+kZj/1unx/+H0/P/e8fr/3vD6/9nu+//Y7fr/1+z6/9bq+//Y7Pz/0eT4/6m70/+OoLn/pqrL/4OG
650 | pP9paYX/ubnQ/8vN3v/t8vz/zdfg/8jU3P/Dx83/iYyS/+7x9P+lp6r/ubq9/5iXmf/9/P3/9vX2////
651 | ////////////////////////////////////////////////////////////////////////////////
652 | ////////////////////////////////////////////////////////////////////////////////
653 | ////////////////////////////////////////////////////////////////////////////////
654 | ///////////////////////////////////////////////////////////+/////v///v////7//+zq
655 | 7//38/v/ioaS/7ezvf/y9fX/+/v7//nz+P/++v7/5OLr/9Pb4/+gs7v/z+rx/9Pz+//k9P//7P3y/9v/
656 | 8f+t5Pv/qur7/7nt7P/e9fz/0Ov1/7DK1//N5vH/2vL8/93z/f/f9Pz/4fX9/+P2/f/d9f//3vb//+D2
657 | ///g+P//3vT5/9Xr8P/m+/3/4vf5/+X5+v/h9vf/5/v8/9Xq7v/Z7fP/5fj9/+P2/P/j9vz/4Pf7/9/1
658 | +v/d8vr/3PD6/9jr9//b7vv/2ev4/7fJ2f+Hjab/jZKq/0pLY/9vcIX/tLbJ/9nd6//b5PD/x9Lb/83Q
659 | 2P+Agor/6+7z//j6/P+kpan/jIuP/8rJy//8+/z/////////////////////////////////////////
660 | ////////////////////////////////////////////////////////////////////////////////
661 | ////////////////////////////////////////////////////////////////////////////////
662 | ////////////////////////////////////////////////////////////////////////////////
663 | //////////////////////3////+///+/////v//mZee/2VhbP/KxtL/5+Lt//r7+f/7+fn//vr8//fx
664 | 9//KydL/rbfB/5uxvP/Y9v7/0/j9/+X2///w//T/yvbe/6jm7/+e5/n/uPPt/83m8P/B3eb/3fj8/9r1
665 | +v/d9vv/4Pf+/+T4/v/l+f7/5vn+/+L3///i+P//4vn//+P7///f+Pv/4fr7/+P7/P/i+/v/5fn6/+j8
666 | /f/l+vv/5vr7/+b6/f/k+P3/5fj+/+b5/v/n/fr/5fr6/+L3+v/g8/r/4PP7/9/x+//d7/r/2+74/9Pc
667 | 7f+hp7v/rrDC/zc4TP+xs8b/tbnJ/93m8//Ez9r/1Nff/4uNlf/1+Pv/+Pn9//b2+f/Lys7/kpGT//z7
668 | /P//////////////////////////////////////////////////////////////////////////////
669 | ////////////////////////////////////////////////////////////////////////////////
670 | ////////////////////////////////////////////////////////////////////////////////
671 | //////////////////////////////////////////////////////////////v5/P/1+vP/9vz0/+bt
672 | 8P+Wla7/x8Ph/93b6v/9/vr/8/78//z8+v/+9vr/xbfK/01Lav84SGb/q8nX/9X3+//l9fv/4/r8/9f6
673 | /P+e1dz/svP6/6Xi7//I8/L/0/Dl/+v9+v/o+vr/3/L2/9vv9v/g9P3/4vf+/+X6/v/n+v7/5vr8/+b6
674 | /P/m+vz/5vr8/+b6/P/m+vz/5vr8/+b6/P/n+vz/5/r8/+f6/P/n+vz/5/r8/+f6/P/n+vz/5/r8/+P+
675 | 9//m+/z/6vj//+jw///j6/7/2OX+/9Pn/v/P5/v/3Of3/7/L2v+yvsz/1uDt/3B5iv+lrL//wMbZ/8bK
676 | 4v/U2N//hImR/9PW4v/p7Pb/9ff+/+/w+v96eYL/6Obq//77/P/8+vn/+/n3//38+P///f3///3////7
677 | ////+f//////////////////////////////////////////////////////////////////////////
678 | ////////////////////////////////////////////////////////////////////////////////
679 | ////////////////////////////////////////////////////////////////////////////////
680 | /////////////////////////Pv9//X69P/0+/T/qbC0/8HB2P/JxeH/7Or1//z9+f/y/Pf/39ve/+3b
681 | 6/87J0f/OjZc/01cfP/Q7vn/1/r8/972/P/i/f//u9zf/3Wjrv+68v7/n9bk/7Th5f/c+vb/4vz7/+H8
682 | /f/c9Pr/2O/4/9bq9f/g9Pz/5fn8/+b7+//n+v3/5/r9/+f6/f/n+v3/5/r9/+f6/f/n+v3/5/r9/+f6
683 | /f/n+v3/5/r9/+f6/f/n+v3/5/r9/+f6/f/n+v3/5fv9/+b5/f/p9/7/5PD7/9vo9P/Y6fT/0ejw/9Lt
684 | 9P/a5fb/2+f1/42aqv/l7/j/2+Tr/3J5jP+ts8n/vcHZ/87R3f+ChpD/wsbP/+Hk7P/1+P3/9fb8/8HA
685 | yf+Tj5n/+/f7//37/f/8+vv/+/r5///9/P///v7///z////7////////////////////////////////
686 | ////////////////////////////////////////////////////////////////////////////////
687 | ////////////////////////////////////////////////////////////////////////////////
688 | ///////////////////////////////////////////////////////////////////5+fn/+Pv5//b7
689 | +f+wtbz/xsfb/8fG2//e3ef//P37//P79P9mXmf/hGuM/zwiVP8+Nmf/b36g/9b1/v/U+/r/1Pn9/9b2
690 | +v+jwcb/nb/M/7Db8v+czOL/teLt/9b8/P/W/v7/2P3//9Py/P/Q6vr/1+38/93x+f/o+/v/5/z1/+f6
691 | ///n+v//5/r//+f6///n+v//5/r//+f6///n+v//5/r//+f6///n+v//5/r//+f6///n+v//5/r//+f6
692 | ///o+f//5/j+/+n5/P/k8/X/2err/9jr7v/S5+3/0unx/9bh9v/a5fj/vMnZ/5Sfrf/l7vv/zNPf/3R5
693 | kP+0uNL/wsTX/5WXpv+1t7//2Nvd//T3+P/4+fv/6+ry/5iWo/+3sb3/4t3m//r3+v/9/Pz///38///+
694 | /f///v7///3+////////////////////////////////////////////////////////////////////
695 | ////////////////////////////////////////////////////////////////////////////////
696 | ////////////////////////////////////////////////////////////////////////////////
697 | //////////////////////////////j49v/5/Pv/0dXZ/6Glsf/FyNj/3t/s//f3/P/7+/v/7fLv/2VW
698 | a/9EI1b/QiFi/zQpYP+ntdX/0fH6/9X5+P/L+Pz/ud3i/9Hr8P/C2+f/iarF/5C72P/F9f//wfH4/5nR
699 | 1/+fz9z/ncPZ/5+40f/K3ff/6Pj//+j6+f/r/fT/5fj//+X4///l+P//5fj//+X4///l+P//5fj//+X4
700 | ///m+f//5vn//+b5///m+f//5vn//+b5///m+f//5vn//+n4///p+f//6/v+/+b2/P/N2+n/p7TL/4yX
701 | uf+CjLL/fIWe/9Lc8v/Q3O//iJOh/87Y5f/n7vv/io+n/56gvf+1tc//qqq9/6Okrf/Cw8T/oqGg//Tz
702 | 9f/y8Pf/x8TU/6ihtf+Dfo3/8/D5//79/v/9/vz//v/7//7/+//9/vv/////////////////////////
703 | ////////////////////////////////////////////////////////////////////////////////
704 | ////////////////////////////////////////////////////////////////////////////////
705 | ////////////////////////////////////////////////////////////////////////+/z3/8PG
706 | yP9jZXH/uLvL/93h7v/2+f7/+fv///v6/v/b2t7/PCdI/00jZP9CHmX/Myhc/8/g+v/Q8vv/0ff6/77p
707 | 8f/O7/T/5/z//9zx/f9nh6L/gazM/7jp9v+Wytr/oeHw/6fc9f+PtNv/WW6d/yUwW/80PFn/ipWe/+Xz
708 | 8f/j9v//4/b//+P2///j9v//5Pf//+T3///k9///5Pf//+L1/v/i9f7/4vX+/+L1/v/i9f7/4vb//+P2
709 | ///k9///5vj4/+b3/f90g5L/ICxL/yAnVf8qLW3/QD+L/01Jm/8yNmH/YWeJ/9bf9v+msMP/pK6+/9Tb
710 | 7P/Kzuj/dniW/7GyzP+7utH/cGx8/7Gqtf+noKj/zcjQ//f1+//n5/P/0srh/6ukt/+vq7X/+/n8//7+
711 | /f/+//v//v/7//7/+///////////////////////////////////////////////////////////////
712 | ////////////////////////////////////////////////////////////////////////////////
713 | ////////////////////////////////////////////////////////////////////////////////
714 | ///////////////////////////////////2+fD/ra+z/7+/0f/Bwtb/zNHZ/+zy8v/6/f3/9/T7/8C4
715 | xv87H0z/SRxk/0gjZ/9OSG//0uf1/83w9//L7vv/yurx/+b+///n/P3/2/b8/2SLov+UxuH/ksfg/63h
716 | 9v+l5v3/rOD//6PD+v+Kltr/eny+/1laiv8tMkz/6vT8/+D0///g9P//4PT//+D0///g9P//4PT//+D0
717 | ///g9P//3/P//9/z///f8///3/P//9/z///f8///4PT//+H1///k+Pn/xdbk/x4rUP9haqf/cnXF/3p3
718 | 1f+Aet//eXHY/4F+vf8qKl//x8zs/8nQ6v+aorX/tr3R/9HW7v91d5X/tLfO/7+91v8uI0D/SDhV/7Cg
719 | uv+KgJL/8/H5//L1+f/17/7/vbnL/5SSnP/29vv//P7+//z//f/8/v3//P79////////////////////
720 | ////////////////////////////////////////////////////////////////////////////////
721 | ////////////////////////////////////////////////////////////////////////////////
722 | //////////////////////////////////////////////////////////////////////////////n8
723 | 8v/j5Ov/sq/H/8/P5f/u9Pr/+P76//z//v/y7/j/UkRh/0clW/9JGWP/ORVQ/4uIoP/F3uD/yu30/7va
724 | 8v/p+v7/7f38/+r+/f+/4ub/kcPW/7Hq/v+Z0er/rN/1/6De/f+RwPL/epPb/3V4z/92bcT/fna6/ysq
725 | Vf/j6P//3fH9/93x/f/d8f3/3fH9/9zx/f/c8f3/3PH9/9zx/f/b8Pz/2/D8/9vw/P/b8Pz/2/D8/9zx
726 | /f/d8f7/3fL+/+P2/v9zhKL/VWGc/2tyyP9ucdb/a2zS/25vzP9tb8T/d26+/11Znf+Cg7D/1Nn1/56l
727 | u//ByNz/wMXd/6Gkwf+Znq//wr/a/04+Z/87IlT/NBxI/2BTbv/39Pv/9fv3//Xw/v/Dv9D/dHN9//r6
728 | /f/8/v7//P7+//z+/v/8/f//////////////////////////////////////////////////////////
729 | ////////////////////////////////////////////////////////////////////////////////
730 | ////////////////////////////////////////////////////////////////////////////////
731 | /////////////////////////////////////////f/1//b3/P98eZT/2dnw/+/1+f/3/ff/7vLw/8bD
732 | zf9BL1T/RyJe/08faP8yE0X/w8PQ/8Pf2P+oy9L/vdrx//T6/f/z/fz/5/33/7jh4f+z7fn/quv5/6jh
733 | +f+r3fX/kcvz/2yWz/9JXK3/VFG0/3Jjxv90Z7f/NC9m/+Hj/v/a7/7/2u/+/9rv/v/a7/7/2e79/9nu
734 | /f/Z7v3/2e79/9nu/f/Z7v3/2e79/9nu/f/Z7v3/2e79/9rv/v/b8P//2u38/1Bfif91f8n/bnXY/2Rp
735 | 1P9JT6//RU+a/1RgnP9pXLf/aGCu/1JQiv/Z3Pz/mZ+4/9Xc7/+6v9f/trnV/4+Xo/+7uNP/dWGS/0Ei
736 | Yf8+H1r/fGmO/9bU3P/3/PX/8/L//8nJ1/+TlZ7/7fDz//r+///6/f//+v3///r9////////////////
737 | ////////////////////////////////////////////////////////////////////////////////
738 | ////////////////////////////////////////////////////////////////////////////////
739 | ////////////////////////////////////////////////////////////////////////////////
740 | ///6+ff/0NDT/4yNl//t8Pb/+P3+//X5+//g2+z/TEBf/0wcaf9LImb/QCRa/0I1XP/Qzuf/xszc/5eh
741 | qv/t+f3/5/z8/+T8///R7vz/t93l/8v4+P/J+vn/x/X5/7vm9/+Hs+j/W4O3/2J+tP9UYaD/bW61/3Fu
742 | rv8zMl//2t7y/9ft/v/T6/3/0ez9/87s/f/O7P3/z+z9/9Lr/f/T6/3/0ev7/9Ls/P/T7Pz/1O39/9fu
743 | /v/Z8P//1+v8/9vv///j7f//ZneZ/4Kgyv90mc7/Xn+7/0lcnv9dXqL/VEqN/2ZUpP9rXaH/OjNm/+Li
744 | /f+anbP/rLDC/6aqvv+5u9L/iI+j/8C+3P+Mfqj/NB1O/zAYRf/Qwtj/8vL4//T8+f/9/P3/zMvY/8HB
745 | 1v+DhZb/7PL0//f89f/+/vn//fr5////////////////////////////////////////////////////
746 | ////////////////////////////////////////////////////////////////////////////////
747 | ////////////////////////////////////////////////////////////////////////////////
748 | //////////////////////////////////////////////z8+f+7u7//zM3X/+3w9//4/f7/9/r8/+bh
749 | 8/9HO1r/Tx9q/0YdYP89IVb/eGqR/8nI4P+pr7//u8XN/+35/f/n+Pv/5Pj8/8DY6P+11eH/xu3y/5rF
750 | yv/D6fb/uNr1/3qi0P9+oMv/fJTC/3J8tf95eLf/dW+q/zEvV//W1+3/2Oz+/9Xs/v/R7P3/zuv8/83r
751 | /P/O6/z/0ev8/9Lq/P/Q6vr/0Or6/9Lr+//T7Pz/1ez8/9fu/v/Z7f7/2u7//9rr/P++1+n/s9fw/422
752 | 4f9uk8b/cIjA/36Gv/9saqP/aVel/2tcn/8zK1v/2tn3/6Ckt//Z3ez/X2N2/6mtw/+Ei5//v73a/7Kk
753 | zv83IVH/Ykx3/8y/2//e3+f/9f35//r6+//19P3/y8nf/6mqvf/IzNH/9Pj0//389v///fv/////////
754 | ////////////////////////////////////////////////////////////////////////////////
755 | ////////////////////////////////////////////////////////////////////////////////
756 | ////////////////////////////////////////////////////////////////////////////////
757 | /////////f36/+zr7/+3uML/4eTr//b7/P/x9Pb/3Nfp/zMmRf9LHWb/RyBh/zcdUf+dkbb/zc3l/4CI
758 | l//o8/r/6vf9/+r2/f/G0+L/scLW/4uitP/E4ez/bIiY/5y00f+tv+v/pcPq/46my/+Flb3/jY/D/4Z+
759 | u/9wZZ7/LidO/97b7//V5fn/0+f6/9Hp/P/P6/7/zOr8/87q/P/Q6vz/0en8/9Ls/P/S7P3/0+39/9Xt
760 | /v/U6vv/1ev8/9nt/v/W6vv/2e72/63H1/+u0Ob/ocbr/3GSvv9+lMb/eIKz/3d4qf93Y63/WUmI/ygf
761 | TP+3tdH/mp2v//P4//+MkqT/e4GV/3+Fmf+7udb/yb3k/0EuWv9HNVv/6d70//f4/P/z+/f/+vv9//X1
762 | /f/NyuP/YF50/5iaov/4+vj//P34///++///////////////////////////////////////////////
763 | ////////////////////////////////////////////////////////////////////////////////
764 | ////////////////////////////////////////////////////////////////////////////////
765 | ///////////////////////////////////////////////////+/fv/+Pj7/8bH0f/x9Pr/9fr8/+rt
766 | 8P/Oydv/MCRD/0odYv9II2H/NRxN/7OpzP/CxNv/lp+u/+f0/f/p9v3/3+bw/73F1/97hZ3/j56z/+L0
767 | //85SGD/Qktz/1ZYj/97iLT/jpfB/5eZxv+Ui8P/fWyu/1NBgP8vIk//z8nl/7nH3f/O3/T/1uz//83n
768 | +//N6f3/zun9/8/p/f/Q6f3/0Or7/9Hr/P/S6/3/0+v9/9Xr/f/V6/3/2Oz+/9Hl9//Q2ef/cHyQ/4mZ
769 | uP+ktd7/eoe6/3+Euv90cKb/Z12S/0s2e/86KmT/HxY+/6Wju/+NkZ//5Orz/7nA0P+orsH/YWZ6/7Ky
770 | zf/IwOP/Rzlh/y8jRP/FvtP/7/D1//j++//4/Pz/8O/7/87I5f8yLUn/T0xb//n6+v/7/Pj//vz6////
771 | ////////////////////////////////////////////////////////////////////////////////
772 | ////////////////////////////////////////////////////////////////////////////////
773 | ////////////////////////////////////////////////////////////////////////////////
774 | //////////////n49v/Kys7/xsfP//P2+//2+/z/+Pz+/97Z6/9OQWD/SiBh/0kmYf87JVP/vLTV/6Kl
775 | u//H0tv/5vT8/+b2/P/Lztz/srfL/3+GnP+cprn/u8bS/yMqQv8pKFP/IRdT/ysmXf8yKl//QDNr/0Er
776 | bf87Imv/OiJn/zEgUv/Eu93/tsDY/8/b8P/S5fv/0+r8/8/q/v/O6f7/zef8/8/n/f/Q6fr/0On8/83m
777 | +f/U7P3/1+z9/9Tp/P/T5vr/zODx/8W91f9JQmH/OjNd/0A3bv9AM3L/PClq/zojZP8+I2P/Pihn/zcl
778 | Wv8iGj3/srDE/1dbZv+VnKb/2ODr/6OrvP+Tl6v/oaG7/7652P9ORmf/NCtI/726y//h5Oj/9fr3//X7
779 | /P/V1eX/ycLj/zoxUv82MET/+/n9//n6+P/8/fv/////////////////////////////////////////
780 | ////////////////////////////////////////////////////////////////////////////////
781 | ////////////////////////////////////////////////////////////////////////////////
782 | ////////////////////////////////////////////////////////+fj2/6GgpP/R0tz/9Pf9//f8
783 | /v/5/f7/8+79/3pujf9LI2H/Px9W/1ZCbv/Dvdz/jpOo/+by+//l9Pr/3+/4/7/C0f9/g5b/wsjb/5+o
784 | tf9kbnf/MTVG/1ZPdf8uHlb/NCNh/zglYP8+J2P/PSJk/z8iav88I2P/QjNg/87I4v+sssv/qbPL/9Tk
785 | +v/R5/3/zuj9/83o/f/M5/z/z+j9/8/o/P/N5vr/zOX4/9Do/P/T6Pz/0+j8/9fq/v+ww9b/x7rV/2tb
786 | fv87J1b/OyNe/zwgY/8/IGb/QSBl/0IgZP89JV7/PSpZ/ygePP+Mipr/NTlB/5GZoP/m7/j/n6i3/9vf
787 | 8P98fZX/srDM/15ad/9pZn3/8PD5//f7/P/3/Pn/7vb3/9zc7//Oxej/MiVL/zEnP////P//+fv6//v+
788 | /f//////////////////////////////////////////////////////////////////////////////
789 | ////////////////////////////////////////////////////////////////////////////////
790 | ////////////////////////////////////////////////////////////////////////////////
791 | ///////////////////+/vz/1tba/6ustv/W2eH/8PX3//b5/P/b1uj/d2uK/0ciXP8/IVb/cF6H/8C7
792 | 2P+Gi5//5/T9/+Pz+//U5e3/qrC//5Oaq//V3ev/oa2z/2Rvb/82OkH/iYKe/zMiUf89Jl//QCle/zwk
793 | WP9BJl//OyFc/zsnWP9UTmj/Z2px/y8yTv+vttD/zdr1/87j+f/H4Pj/xuD4/9Dq///L5fz/zuf8/9Lq
794 | /v+70+f/xNzw/9Ln/P/P5Pr/0+X7/4qds/9eW23/koqk/yQVPP89J1r/QCdi/z0iYP87I1//PiZh/0An
795 | Xf9ALFj/Gw8s/xwZJ/9QVVr/tr/F/+Hq8/+krbv/7vL//4uNpP+vsMn/gYKa/3Z3iv/Y2uX/9fn6//r+
796 | +v/k7u//xsbZ/4qApv8wH0n/PzFO//35///6+vv/+P37////////////////////////////////////
797 | ////////////////////////////////////////////////////////////////////////////////
798 | ////////////////////////////////////////////////////////////////////////////////
799 | //////////////////////////////////////////////////////////////j29P/5+fv/lJWf/8XI
800 | z//1+vv/8vX3/9fS5P/Iu9r/RSBa/zodUP+Hdp7/r6zI/6asvv/g7fr/5PT9/8HS2/+CiZj/wsrY/+bw
801 | +v/W4+P/SVZQ/1heXv+Jg5j/aVqA/1E7bP84IU7/QClU/zghTv8tF0X/HREy/zk6Qv81PjT/TU9r/6+0
802 | 0P/H0+7/z+L7/7nS6v/J4/v/zOb9/8zm/f/L4/j/z+f8/6jA1v+VrML/vtPo/9Hm+//B0+r/hZeu/ztD
803 | S/89QFD/GxYz/y4hS/81Jlf/Nydb/zQnWf8wJlb/OyJV/1A8Zv9yZoH/VVJe/4KHi//k7vD/4+31/6Gr
804 | uf/p6vj/nqG2/6epwf9zdoz/io2e//H0/P/3+/z/8/fy/9fi4//Dw9f/x7zj/z8tWP99boz//fj///r7
805 | /P/4/vz/////////////////////////////////////////////////////////////////////////
806 | ////////////////////////////////////////////////////////////////////////////////
807 | ////////////////////////////////////////////////////////////////////////////////
808 | ////////////////////////9vv7//X6+/+3usD/z9Hc//Hz/P/19/z/3+Lr/9TX3v9oTnH/NyNE/5aL
809 | qP+cnLX/vcXW/9Xi8v/g7/v/u8vY/3mGif/a4+v/8fb+/+nu9/99hof/ZHB0/2dyhP+uuNT/0ur4/8zi
810 | 8f/O4e//v83h/7bA1f/Dyt7/jZKl/zc7Tf+Biq7/tr/q/7G+6/+90PT/udPt/83o+P/T6/r/yt73/8jq
811 | +P/P6Pr/x9fv/7G7z/+hq7n/yNXo/7nH7f+isOX/TVFv/1Vad/9qcYv/g42k/3yHnf9tepD/Z3SK/5Kf
812 | tv+cp8L/lZ60/3B5iP8+R0//yNPX/+z3/P/j8Pz/obC//9Xi6f/Ezdn/f4WZ/3p8lP/Q0eX/7vD6//n+
813 | /P/0+fD/1eHe/8rH4/+nlMz/LhhI/66lsv/5+fD//fz5//76////////////////////////////////
814 | ////////////////////////////////////////////////////////////////////////////////
815 | ////////////////////////////////////////////////////////////////////////////////
816 | ///////////////////////////////////////////////////////////////////3/Pz/8/f4/6Kl
817 | qv/HyNL/8PH7//X3/v/e4en/09fc/4Rykv8vIj//p6G9/4OGnv/EzeH/1uLw/9Ti8f+erbv/n6uu/9zl
818 | 7//v9f3/8/j+/2Rub/++ys//eYSX/4aPsP91jaH/bYOY/3uOpP+ImK7/doKY/1xlev9lbH//PEJW/5mj
819 | w/+jrtf/doOy/7LG7f/D3PX/zOj3/8zk9v+dscj/yun5/8zl+v/T4vr/pbDE/+Xw9/+Mmq3/xNP2/627
820 | 7f+ors7/YWiG/11ogf/J1ef/0+H3/8va7/+7yuH/pbTM/3aAnv9yepP/KTFB/3mCiv/s9/r/6fX7/+Tx
821 | +/+1xdL/0d7k/8rT4f90eo7/rrHH/+Lk9v/5+///9/z6//v+9//h6+z/vbjV/zgoW/81Ik7/9e73//39
822 | 9v/7+/j//vr/////////////////////////////////////////////////////////////////////
823 | ////////////////////////////////////////////////////////////////////////////////
824 | ////////////////////////////////////////////////////////////////////////////////
825 | //////////////////////////////X6+f/y9vb/lZed/8zN1v/g4ev/+/z///f5/f/b3uP/e3WP/0A9
826 | Vv+RlKv/bXaL/8fS5v/V4fP/0dzt/4qTpf/E0dX/5vD2/+3z/f/x+f7/T1lb/+Hs7/+CjaP/yNH0/8ff
827 | +f/L4vv/yt/2/8bX7/+Rn7b/q7fJ/4GJoP93fZP/tMHb/2Zzlv+2xe3/ssbs/8jh+f/M6Pb/0er5/4yi
828 | tv+vzNz/0ej8/8za9P+Qm6//5vL8/9Lf6f+Zp8L/xtT8/52mxf+AjKr/Y3KK/5Chtv+NoLL/lKi9/6m9
829 | 1P/C1O//n6jH/5ifu/+YoLH/n6mx/+z3+v/p9fr/6fj8/7rL1P/T3+v/x8/f/4GImv+Wmq3/3N7u//b4
830 | ///3+/v//P77/9TX4f9rZYP/OCpX/3Fih///+f7//v33//39+f/8+f7/////////////////////////
831 | ////////////////////////////////////////////////////////////////////////////////
832 | ////////////////////////////////////////////////////////////////////////////////
833 | ////////////////////////////////////////////////////////////////////////+Pz6//j7
834 | +/+9v8P/t7fA//f3///4+P7/+fv+/93f4/+ytcn/vMHU/2Zwg/9ZZXj/yNbp/9Te8v/O1ur/eoCV/8zb
835 | 4P/p8/z/6vL8//L6/f9xfX3/5PD1/4aRq/+9xO7/xt38/8jf+v/I3fj/j6K6/5qpvf/X4/X/cXmS/4yT
836 | rP+Glaj/nq3L/7jI8P+yx+v/yeL4/9Dt+v/K5PH/sMfT/4Wfr//S5v3/z933/4KOov/p9/7/4/L7/5em
837 | uv+8ye3/1OH//8TS8P9vgpr/v9Tn/8rh8v/N5Pn/0ef+/8jd+f+Pl7v/rrbS/2pyhP/N19//6/b5/+r3
838 | +f/o9/z/v9HY/9vl9v+3v9D/W2Jz/2Nod//q7vn/+Pv+//r9/v/l6Of/0Mzh/zkwT/84K1H/sae7//z4
839 | /P/9/vn//P36//38/v//////////////////////////////////////////////////////////////
840 | ////////////////////////////////////////////////////////////////////////////////
841 | ////////////////////////////////////////////////////////////////////////////////
842 | ///////////////////////////////////6/fr/+Pr6//n6/P9PT1b/2tnh//f3/f/z9Pj/6+3v/8rS
843 | 3//Ezdv/vcjY/zE7S//H0+b/0tvw/8bL4/+ChJ3/0N/m/+j0/v/t9v//6/b6/5ilpP/n9fv/gYyp/7i+
844 | 7//L3/z/v9P1/6S30/+Dlav/4fH+/7S/0f99hJv/W2B5/9Tl8P+Lm7b/tsbu/7zQ9//L5P3/y+b3/9Dq
845 | +P+xyNj/fJKi/8ja7//K1/L/hpKn/+n3///j9Pv/2un1/4eTrv/S3v//w9Hz/4+jvP+ku8v/zub3/8zk
846 | +P/O5f7/xdn6/5KbvP+0u9L/R09g/+v0/P/o8/f/6/f8/97t9P/C0t3/ydHn/661yP9NVWT/y9Lb/9bc
847 | 4v/v8/b/+Pv9/+/w8/+4qsv/LyNE/zkvTf/58////fz+//3/+//+//v//v7+////////////////////
848 | ////////////////////////////////////////////////////////////////////////////////
849 | ////////////////////////////////////////////////////////////////////////////////
850 | //////////////////////////////////////////////////////////////////////////////z8
851 | +f/6+vr//Pv9/5uZnv9raHD/+ff8//z7/f/6+fr/6e71/83U3v/J09//cX2M/8jS5f/K0ef/tbnS/5WW
852 | sv/U5Ov/6fb//+v1/v/p9ff/pbSy/+r4//9/iar/sbfs/8nZ/v+yw+X/dYah/9rq9P/n9P//naa3/46T
853 | qP+Eh5v/4vP8/4KSrf+3x/D/tsjy/8zj///O6P3/zeb3/8DW6P+MoLD/o7PK/83Z9f+HlKn/5PX9/+r6
854 | /P/o9/z/n6u8/7O95/+7yOz/qLrT/4edrv/R6Pj/zOP3/83i/v+/0vb/laC7/7O90P9XXmv/7vf8/+v1
855 | +//s9/7/3en1/7/O3f+wt9H/rrTJ/z1EUP/b5On/6fDy//b6/P/4+v3/3dzl/zwnU/89LVD/gnmO//v6
856 | ///6/v7/+//8//3/+//+//v/////////////////////////////////////////////////////////
857 | ////////////////////////////////////////////////////////////////////////////////
858 | ////////////////////////////////////////////////////////////////////////////////
859 | ////////////////////////////////////////+vv3//7//P/6+vr/8O/y/yQiKP/r6u7/9vX4//r5
860 | +v/39/z/7vD3/8jO2P+EjJn/rbXH/8jN5f+go7//nZ67/9fo8P/r+P//6vb+/+n29/+puLb/5vb+/4ON
861 | sf+oruf/ws32/5Ofwf+lssX/5/T+/+jy/P+aoK3/foCS/+Xk8v/Z6vb/lKO//6+96v+9zvj/yd7//83l
862 | /f/J4fb/x9zx/6Kywf+frMT/z9vy/3+NpP/o+f//4vX3/+b1+f/Y5O7/g4q4/6233f+jssz/nK/A/9Hm
863 | 9v/O4vj/0OL//7nK8P+Ypbn/o66//5iirP/p8/n/7fb+/+z1///Z5PX/uMXb/6qwzf9rcYf/Zm97/+Pt
864 | 7v/z+vr/9fn6//P1+f/r6fX/Si9j/zgmS//j3ej/9vn8//n//f/5//3//P/7//7/+f//////////////
865 | ////////////////////////////////////////////////////////////////////////////////
866 | ////////////////////////////////////////////////////////////////////////////////
867 | ////////////////////////////////////////////////////////////////////////////////
868 | ///9/vn//P36//n5+v/8+/7/W1lf/2tqb//19Pb/+fn5//Tv8//y8PT/yMvU/4ySn/+Jj6L/x8vk/5WX
869 | tP+srMr/2Ony/+r5///q9/7/6/n5/6++vf/p+P7/j5m+/5yi3v+yu+P/bniZ/+by///r9f//6/T8/46T
870 | nP+EhZT/8/H9/9Lj7v+Yp8X/r7zr/8DQ/P/J3f//zOP+/8vi+v/J3fP/orG//6azyv/Dz+z/foyi/93v
871 | 9//m+fn/5vX3/+34//+Fibr/p6/X/56rxf+hs8D/xdjo/9Hk+v/P3/3/narT/6a1w/+ZprP/vcjQ/+74
872 | +//s9f3/6vP//9Te8/+yvdj/qK3M/2Rqgf/i7PT/8fv7//P7+f/1+fr/4+Xt/7azwf9BIlv/ZFB2//r2
873 | /f/4/fz/+f/9//n//f/8//z//v/3////////////////////////////////////////////////////
874 | ////////////////////////////////////////////////////////////////////////////////
875 | ////////////////////////////////////////////////////////////////////////////////
876 | //////////////////////////////////////////////n9///6//n/+//0//3++/+Ujp3/NitB/+ji
877 | 6P/7++7/6e3p//j6+//i4ez/trXH/5iUrf/Lx+T/mpa1/7Gvzf/Y5/X/5PX+/+H1+v/i9/z/sMLL/+fx
878 | //+pqsL/mZS9/5WXvv+nrsX/6PT8/+n1/P/V3ev/goia/6qxvP/u9fv/0ubi/5adyv+xtfj/xtj//8jj
879 | 9v/L5P7/zOL+/8vl9v+jrbT/usbL/667xv96ipf/1eXy/+n2/v/s9/7/6/X8/6evyf+kp73/qam5/7W4
880 | yP+wvtz/y9v//8jV9v+JkbL/0dvy/5qmuf/S4O3/5vP7/+n1+v/t9/3/ytLg/7O6y/9naoT/ztva/+Ht
881 | 7//y9v//9Pf5//j77/+sn7L/NxRi/0o4bv+il7P//fv+//z8+v/+/vz//v3///79/v/+//z/////////
882 | ////////////////////////////////////////////////////////////////////////////////
883 | ////////////////////////////////////////////////////////////////////////////////
884 | ////////////////////////////////////////////////////////////////////////////////
885 | ////////+v3///r/+f/7//X//f78/9/Y5f93bYP//PX8//v69v/5/Pj/+v38/+vt8v/MzNr/paO4/7Kv
886 | yf+ZlrP/srDO/9Xi8f/j8/3/4fX6/9Lm6f/J2+L/5fD9/8rN5P9zcpX/hYmr/9zl8//n8/r/6/f9/8nS
887 | 3v9rcoL/y9Ld/+32+v/S5uP/lp3K/7G1+P/F1///x+L1/8ri/v/L4v7/x+Hy/6OttP/W4uj/go+a/3+P
888 | m//O3uv/5fL9/+v3/v/r9fz/ztbp/5KVqf+rq7v/0NXm/56qy//L3P//w9D2/3qCo//f6vr/laKy/9fl
889 | 7//q9/7/6vb8/9rk7f+wuMj/TlVn/5icsv/k8e//6vf0/+/2///2+v7/5OXg/y4cPf9gN5L/UUBz/+TZ
890 | 8P/7+fz//f76//7+/P/+/f///v3+//7//P//////////////////////////////////////////////
891 | ////////////////////////////////////////////////////////////////////////////////
892 | ////////////////////////////////////////////////////////////////////////////////
893 | ///////////////////////////////////////////////////7/f7/+//5//z/9v/9/vz/+/b9/y4k
894 | O/+mnbD/+vP8//r9+f/5/Pn/8/b3/9fZ4f/Nzdv/kZCl/5+cuP+vrMv/0t7s/+b2/v/m+vz/0ufp/7DE
895 | yf/e6/X/5Ov6/1lcd/9+hJ//6/b+/+f1+P/s+Pv/xM7X/2lxfv/d5u3/7/n5/9Pm5f+Xnsv/sLT3/8TW
896 | /v/G4fb/x9/8/8rg///B2+z/maOq/+j0+v9DUFv/kaGu/8ra5//k8fz/6/f+/+v1/P/n8///iY6g/7Cw
897 | wP/a3/P/lqLD/8vc/v+ruNv/o6rF/9Th7v+ntcL/2ujy/+v3/v/o8/v/ydLh/4aNn/+Gi6D/5+v5/9nm
898 | 4f/w/fX/8fr7//X6/P+2s8D/Qitg/3FGrv9kVYD/+/L///37/f/6+vf//v79//79///+/f7//v/8////
899 | ////////////////////////////////////////////////////////////////////////////////
900 | ////////////////////////////////////////////////////////////////////////////////
901 | ////////////////////////////////////////////////////////////////////////////////
902 | //////////////39/v/9//v//f/5//7+/P/39Pr/YVlw/zUoS//TxOD/+/79//f6+f/7/v3/6Ozt/8/S
903 | 2f+BgZH/h4Wf/66syv/O2OX/5vX9/+b4/v/d8vX/xNjc/8zc5f/G0d//UVhq/4qUpv/q+P7/6vn5/+v4
904 | +f+8x8//dn6K/+z1+v/v+vf/1Ofn/5eezP+wtPj/xNX+/8bh9v/G3fv/yt///73W6f+Vn6b/8Pv//yIs
905 | Nv+yws//y9vn/+Xy/f/s+P//6vT7/+X0//+EjZv/rrK//9vh8f+QnL3/ydn8/4SQsP/J0OL/wc/a/7vJ
906 | 1P/i8Pj/3Ojy/77J1v+stMT/gomb/+nv/P/q8Pf/7fjz/+788P/y/vj/4+fu/5OKrP87Hmj/c0i0/5KH
907 | pP/79f///Pz7//z9+f/+/v3//v3///79/v/+//z/////////////////////////////////////////
908 | ////////////////////////////////////////////////////////////////////////////////
909 | ////////////////////////////////////////////////////////////////////////////////
910 | ///////////////////////////////////////////////////////////+//7+/f/9/vv//f77//n3
911 | /P+akqj/a1yN/zYhY//d2+b/+Pj8//T49//s8e//ztPT/8vN1/9UVGn/sK/L/73F1f/o8/7/4fH7/9vu
912 | 9f/F2d//3fD3/+b1/P9eZ3L/hZGd/7TCx/+zwsD/p7S2/3J7hv9KUl//rre8/8LOyf/S5eb/l53N/62w
913 | 9v+8zfb/yeP6/8Pa+v/K4P3/udLk/5ulq//s+Pv/LzxH/7/P3P/H1+T/5/T+/+r1/P/u+P7/4/X+/3N+
914 | iP+5vcX/4eb5/5Kev/+6yu7/f4qo/+nw/v+0w83/rLrG/7zJ1v/R3Ov/xs/g/6iwwf+EjJv/5Ov4//b7
915 | +//0/Pr/9f75/+n27/+4ucr/KhtT/1EyiP9hPJz/0snf//n1+/////3/+Pr0///+/v///v////7/////
916 | +///////////////////////////////////////////////////////////////////////////////
917 | ////////////////////////////////////////////////////////////////////////////////
918 | ////////////////////////////////////////////////////////////////////////////////
919 | //////////////////////3///7+///9/f/9/fr//v3+/62nu/9tW5n/MhZw/7+40P/18f3/+fr+/+Po
920 | 5f/N09H/y8/U/4mKm/+wr8n/sbbK/93k9v/l8v7/3O33/8fa4v/U5u7/5fb9/4uZoP+xvcb/7Pv9/+n4
921 | 9v/a5uv/rbXD/3Z9jf/q8/f/6vXy/9Xo6f+Qlsf/rK/2/7fH9P/G4Pj/wtn6/8fd/P+rxNn/pK6z/+35
922 | /f9UYWz/ydnl/8fX5P/m8/3/6vX8/+33/v/f9Pv/eIeN/6+2v/+xuM3/RlFx/01cfv9pc47/wsjY/6m2
923 | xf++y9r/4u77/8zW5/+xusv/aXKA/9Td5//h6vL/9fz0//X5+//w9vn/3ufp/8vI4/8/Knb/aUuk/1M4
924 | gP/89v//+/r9//3++P/8/vf///7+///9/////v/////7////////////////////////////////////
925 | ////////////////////////////////////////////////////////////////////////////////
926 | ////////////////////////////////////////////////////////////////////////////////
927 | /////////////////////////////////////////////////////////////////f///f////z+//79
928 | +//8/vz/7+r7/2FOlf90U8H/RDdk/7qxy//5+P//5+zq/9/m4f/T2Nr/s7bD/3Jzif+ztM3/vMHZ/9Te
929 | 8//f7v3/ydro/8rc5v/j9fv/qLm+/8LP1//p+Pr/5vT1/+Pu9v/ByNv/houg/+73///u+Pf/2evt/4eM
930 | v/+srvb/sMDt/8fg+f/F3P3/x9z+/5y1y/+strz/7fn+/4iVoP/H1+P/x9fj/+Tx/P/q9v3/7Pb9/9Tt
931 | 8f+mtrj/5Ozy/93k9/+BjKz/gI2w/8PO4P/W3OX/tMDT/8DL3//U3/T/t8DV/2VugP/P2eD/4e3w/+/7
932 | +v/4/PD/9/j//+3u/P/f4vH/urPg/041jv9pTqL/iHej//v4/v/+/v3/+/30//z99v///v7///3////+
933 | //////v/////////////////////////////////////////////////////////////////////////
934 | ////////////////////////////////////////////////////////////////////////////////
935 | ////////////////////////////////////////////////////////////////////////////////
936 | ///////////////////////////8///9/////P7//v76//r8+f/28P7/WUSR/4Ri2f9nV43/gHSc//r3
937 | ///2+vv/9/34//L49//Mz9v/oKG2/3h4lP+ipMD/ucHa/9Ti9//L3O3/xtfj/9/y+f+htLj/y9jh/+r4
938 | +//r+Pv/4Or1/8zR5/+Dh57/8Pf//+z29v/c7vH/gIa5/6uu9v+su+n/xd73/8Xb/f/F2f3/j6e+/77I
939 | zv/q9fr/xdLd/8HR3f/H1+P/4u/6/+v3/v/r9fz/0Ors/7XGyP/e5ur/2uH2/4WQsP9xf6H/0Nvw/8HG
940 | 0f+2wdf/wMri/73H3/+NlKz/kJmp/+Hs9P/t+fn/7fn1//X87P/5+P3/xcPa/3Jyif9GO3L/Ykao/2BH
941 | mP+rorf//fv///3++//+//b//f74///+/v///f////7/////+///////////////////////////////
942 | ////////////////////////////////////////////////////////////////////////////////
943 | ////////////////////////////////////////////////////////////////////////////////
944 | ///////////////////////////////////////////////////////////////////+/f7////4///+
945 | +f///P///P72//n+9/+BfK7/e2Hf/3lb5v9YTZL/3OXh//X85//7+fj/+/P///fz+v/Z3s//vsfP/4iQ
946 | nP+kq77/ucHY/8vX6//N3ur/0efp/5+4tP/N2tj/6vj5/+j3/v/Y5vP/x9Tk/4ONm//s8/3/8vf//+Ls
947 | +v9/iqD/srH5/6uu+//F3fX/xuPz/8jZ//99kbT/zN3l/+T1/P/E1d7/xtfg/8bX4P/g8fn/5vf//+Lz
948 | +//J4+f/ssbK/9jn8P/V3uz/T1Vp/4eLo//Gyub/t7vZ/7u72f++wtz/n6m9/3iGk//V4+v/5fD1//T6
949 | /f/7/f//6Pn0/7y/0v8/Km3/Zzuq/287vf9vSLL/Tz55/+/v/P/+//7//f/+//3//v/8////+/////v/
950 | ///6////+v//////////////////////////////////////////////////////////////////////
951 | ////////////////////////////////////////////////////////////////////////////////
952 | ////////////////////////////////////////////////////////////////////////////////
953 | //////////////////////////////78//////j////5///8///6+/X/+Pz3/5mUu/97Ydb/d1br/2pX
954 | uP9BPWD/zM7S//r3/f/9+P//+Pb9//H28f/a4+j/ztbg/4SLnf+ss8r/vMfc/8/d7v/J3OT/ore5/8fa
955 | 2P/m+fr/5ff+/9Xl8v/K2Ob/foiW/+bt+f/w9P3/3+n2/4qWqv+ys/f/paf2/8fd9//E3fH/xdb+/2x/
956 | of/X6O//3/D3/8TV3v/G1+D/xtfg/+Dx+f/m9///3u/4/87n7P+ovMP/1OLt/8zT4v8TFyz/uLrT/77B
957 | 3f+zt9T/vLza/7i81v9pcYP/ydbf/+Ty9//t9/r/9v3+//n9/f/o7/X/iIKf/y8UWf9wQq3/bjqy/3FJ
958 | qv9fToD/9/f+/////v////7//v/+//7//v/+//7//f/+//z////8////////////////////////////
959 | ////////////////////////////////////////////////////////////////////////////////
960 | ////////////////////////////////////////////////////////////////////////////////
961 | /////////////////////////////////////////////////////////////////////////vv/////
962 | +P////j///z///v8+f/5/vn/ysfn/2pUt/91Uuz/fF/f/11JoP+nncr/5eLx//j6/P/7/f7/6ezx/+Lq
963 | 7P/T2eH/vcPT/291iv+vt87/vMfb/8/e7v+oucX/u9LT/931+f/g9/3/0OXw/8rb6P+Hk6D/2N/q/+/y
964 | /f/b5/P/laS0/6+z8/+fou//xNn5/8fe9/++zPj/Y3aV/+Hy+v/Y6fL/xtfg/8bX4P/I2eL/3/D4/+X2
965 | ///Y6fL/0+ry/5irtP/R3uv/rLPF/11gdv+0tc//t7nW/7i62P+3uNT/rbHI/3+Hlv/d6e7/5PHx//D8
966 | +f/4//7/7vPy/4N5lf8wHUj/ZEKI/3FDpP92RK3/b0ma/5yMrv/8+vz////+/////v////7////9////
967 | /f////3////9/////f//////////////////////////////////////////////////////////////
968 | ////////////////////////////////////////////////////////////////////////////////
969 | ////////////////////////////////////////////////////////////////////////////////
970 | ///////////////////////////////////++////v/3//7/9v/9/P//+/z8//j99//z8P//WkeT/4Bf
971 | 7f9+Wuj/f17X/045hP/i3vH/9v3x//X98//3/f//8/n5/9PZ3f/T1+T/c3mL/6SqwP+stMv/vMbc/77K
972 | 3v+uyM7/1e/2/9v2/f/N5fD/ydzn/5mns//Iz9j/7vL+/9nn8/+crbr/q7Ls/5yg7f+7zvT/ydz9/7G+
973 | 7v9kd5D/5Pf+/9Tn7//K3eX/xdjg/8jb4//d8Pj/5Pf+/9Pm7v/X6vT/jZ2q/9Hc7P+LkKP/lpiu/7S0
974 | zv+9vtr/r7LP/66yzP+sssb/gYqT/+jz9P/x+/n/9P37//f+/f/o7e7/MhhI/0wuY/9SK3D/TyN1/0wh
975 | df88HFv/08bc//v89/////7////+/////v////7////8/////P////z////7////////////////////
976 | ////////////////////////////////////////////////////////////////////////////////
977 | ////////////////////////////////////////////////////////////////////////////////
978 | //////////////////////////////////////////////////////////////////////////////75
979 | ///+//b//P/0//v8///3+f7/+v/5//b2+/96bJ//gWXY/35a2v9+V9X/OyB1/9fQ5P/1++v/9Pzt//f9
980 | /P/0+fj/7PHy/9re5f+4u8r/PUNV/5KYrf+rssj/s7vS/67D0P/F3ej/3vb9/8rj7P/M4ev/rr3J/6my
981 | v//t8/7/1+b0/6i8xP+dptr/naLt/6296f/H1v7/q7Xo/26AlP/f8/v/0ubu/8nd5f/M4Oj/yt7m/97y
982 | +f/f8/n/y9/n/9nq+f+CkKH/xs7h/5GVqv+3t8//trXP/7Kyzv+xs8//r7XK/3V8i//c4+n/9v38//P6
983 | +P/0+vn/8vb7/+Hj7f89Glf/TSll/0MgXP9CHl//QiFh/zciUf/58/3/+v33//v9/v/7/v///Pz9//z8
984 | /f/6+vn//Pv4//78+f/8+vf/////////////////////////////////////////////////////////
985 | ////////////////////////////////////////////////////////////////////////////////
986 | ////////////////////////////////////////////////////////////////////////////////
987 | /////////////////////////////////////////vj///3/9v/6//P/+fz///j6///3/fb/+/z7/5qQ
988 | qP9cQpr/Vjad/1YwnP9OLoL/STle/97b3P/3+vP/9fr0//v9+//6/Pz/4+fp/9fb4v/Kz9v/anCA/292
989 | h/+hqbz/kp2x/8/e7v/Y6vX/zeLr/8ve5v/F1d7/h5Of/+ry/v/W6PP/tMvP/4eVwv+dpOz/orDi/8LO
990 | /f+Xn9T/kaOy/9rv9//O4+v/yd7m/8vg6P/K3+f/3fL6/9Po8P/J3ub/0+P1/3eDl/+9w9j/jI6l/7e0
991 | zv+0ssz/tbPP/7Gxzf+QmKj/j5eh/+/29//z+ff/+fz8//L0+f/u7vz/NjZO/0kkZf81FEz/el+P/2JL
992 | ev9AL1z/U0pt/6qstv/V3t3/9Pn+//H1/v/4/P//+fz///f3+f/+/P3/+vj4//79/P//////////////
993 | ////////////////////////////////////////////////////////////////////////////////
994 | ////////////////////////////////////////////////////////////////////////////////
995 | ////////////////////////////////////////////////////////////////////////////////
996 | ///++P///f/1//n/8//3/P//9vj///n9+P/+//j/6+Xt/0MocP9XOIn/VjKK/1Ywg/9HKmj/gW+S/56Y
997 | pP/5+vr//f78//n6+f/4+/r/4OXm/93j5//R2OD/wMjT/211gv+Skqv/uLzR/9Pe7f/Q4er/yNvi/8rb
998 | 5P+Ekp7/5fD9/9bq9//D3d7/b3+o/52k6/+equH/tb72/3d9tP+ousX/0+nx/8nf5//J3+f/yd/n/8rg
999 | 6P/Y7vb/yuDo/8je5v/K2O3/fIad/7K3z/+YmbH/uLXP/7Kvyf+0ssz/vbzX/3uEj//T3OD/8/n5//r9
1000 | +//4+Pr/9PP8/6CbuP84M1r/US9v/04zZf+7qs//sqnI/62qyv+ssM3/lJ6v/4aWnP90fIz/b3eF/4uS
1001 | nv+hpq//vsDH//f4+//z8/X/+vn5////////////////////////////////////////////////////
1002 | ////////////////////////////////////////////////////////////////////////////////
1003 | ////////////////////////////////////////////////////////////////////////////////
1004 | //////////////////////////////////////////////73///9//X/+f/y//f8///5+v//+f34//3/
1005 | 9P/69/f/SS1v/1c4fv9aNYL/WDCE/00md/9HKmn/OSlJ/8zIz//4+Pb//f77//n7+f/z9/b/4+no/9LZ
1006 | 3P/U3eH/tb7G/3Vui/+uq8P/sbfH/8zZ4v/M3eT/yNri/4mYpf/P3Ov/0eX0/8rl5P9idJn/oanv/56q
1007 | 4v+dpOD/ZGig/8TW3//O5e3/xdzk/8ng6P/I3+f/yeDo/9Dn7//H3ub/x97m/7/M4v+Ikaj/p6vE/6up
1008 | w/+1scv/trLN/7Gvyf98e5X/f4uU/+ny9P/2+/r//P78//z6/f/28P3/X1d9/0lAcf9PMG3/cVuI/7ux
1009 | zf/Hx9z/2t/3/9ji+f/X5vb/1ejx/9bh8//P2ev/x9Dg/7e+y/+fo63/d3qB//j4/P/49/r/////////
1010 | ////////////////////////////////////////////////////////////////////////////////
1011 | ////////////////////////////////////////////////////////////////////////////////
1012 | ////////////////////////////////////////////////////////////////////////////////
1013 | ////////+fz///v8/v////7//v/7//X49P/5/vz/vsjH/5mmpv9raYz/SUVn/0pEZv9JPmH/TDxe/z8r
1014 | Tf84IUT/hWuO/+/5/f/w+vb/9v30//f89P/z9/r/2t7p/9Ld5f/M3uH/b2mE/66px/+tp8n/tLDU/8G/
1015 | 4v++wN7/l5y2/7C4zP/G3+z/x+Lq/26Fl/+bp9r/np/y/6Gk8v9pe5z/yurh/8bg5f/F3+T/x9/m/8vh
1016 | 6v/I2+f/ytvp/83c7f/G1eb/rq3U/5STuf+mp8r/sbDQ/7m51P+PkKX/cnSE/9rc5v/o8fX/8Pz9/+fy
1017 | 8//o8fn/zsng/4dxo/9ZMYD/YCyM/0Qmaf+IgKz/v9Pg/9Ty8v/d+fn/4fj+/976/v/U+Pv/2vv7/9f6
1018 | /P/T+P3/1vj//9Xw+P+7ytD/wMTH//37+///////////////////////////////////////////////
1019 | ////////////////////////////////////////////////////////////////////////////////
1020 | ////////////////////////////////////////////////////////////////////////////////
1021 | ///////////////////////////////////////////////////7/P///f7///39/f/9//7/yc7N/5mj
1022 | o//F09b/1+nu/87c9v/g6/7/2eH8/9bc9P/Q0Oz/vbnX/42HpP8zK0j/n6Ov/+vw9P/6/fj/+fz1//v9
1023 | +//0+fz/3unt/9Xj5f+FhZn/f36V/6WjwP+tqsz/q6nN/6amyP+qq8r/mJq3/8na7f/L3+r/lqm4/4GL
1024 | tP+houX/nZ/g/4GQrP/K493/ytvp/8rb6f/I2Oj/x9Xm/8vX6v/L1er/wcng/6+3zv+fnsT/mZm9/7K0
1025 | 0/9+f5n/b3GF/6CjsP/o7PH/9fn7/+339//0/v//6PD4/8jI3P9OQ23/Vzx8/2A3i/9iMJH/RCZn/56X
1026 | wf/T6PT/2/r5/9z5+v/f9/7/2/b+/9b5/f/Y+Pr/2fr+/9P3/v/W+P//2vT6/8jW2f/Iysz/+/n6////
1027 | ////////////////////////////////////////////////////////////////////////////////
1028 | ////////////////////////////////////////////////////////////////////////////////
1029 | ////////////////////////////////////////////////////////////////////////////////
1030 | //////////////38/v/9/f3//P39//X5+v+strj/6fn8/9vw+//H4O3/u9rw/8He8v/S7Pv/2O78/+L2
1031 | ///V5vT/s8LW/4aTpv8oIzr/7+v2/+7s8P/8/Pf//f73//j89//0+vn/5u7x/9bd5/+or7z/Zmp//6Cg
1032 | vf+sqMv/rafO/6miyv+UjbX/s7jZ/8jR5f/I0uL/WF57/6ur2/93dqj/wcfk/8/d4v/Iz+j/vcPd/7K3
1033 | 0v+vss7/r7HP/7Cwz/+urc7/sK7O/4+Qsv+wsdD/trjR/3l9jf/p7/T/7PHz/+zy7//3/fj/9f34/+3z
1034 | 9//Jx93/MydW/1M8f/9ZNon/XjGP/2AukP88IF7/qqXM/9zx/P/Z+vf/3fr8/+D4///X8/3/1Pf9/9z7
1035 | ///Y+P3/0O/5/9v4/v/i+Pz/gI2S//f4+////P3/////////////////////////////////////////
1036 | ////////////////////////////////////////////////////////////////////////////////
1037 | ////////////////////////////////////////////////////////////////////////////////
1038 | //////////////////////////////////////////////////////////7+//z8/P/9/v7/6O3v/6Sx
1039 | tv/O4u7/vNfq/7va8P+32u3/t9jr/7fY6f+72en/1fD8/9Xv+v/Z8ff/o7vG/zcoSv9/cZD/7uX0//v2
1040 | /P////r/+v30//v9+v/4+v3/5fPz/9fj6P+xucb/Zmh+/358mv+vqM7/r6TR/6+i0f+oodH/rarO/7a3
1041 | z/9NTWj/ranP/25ok//LyOv/tLXN/6uoyv+tqsz/sa3P/7Ou0v+zrND/ta3S/7Sr0P+6sNb/jo6r/5aY
1042 | sP98gZD/r7W7/+/29f/x+PP/9/32//X78v/z+fX/v8DM/zguV/9UPIP/VTKO/1kvk/9eL5P/XS6P/zwi
1043 | XP+wrdH/3fT9/9r8+f/c+fz/3fX//8jj8v+73un/1fD+/8Xg7/+51eH/0erz/9Tm6/+Rmp3/+vv8//77
1044 | +///////////////////////////////////////////////////////////////////////////////
1045 | ////////////////////////////////////////////////////////////////////////////////
1046 | ////////////////////////////////////////////////////////////////////////////////
1047 | /////////////////////v3///79//3+/v/3/v//lKGn/9Tq9v+51uv/t9ny/7zZ7f+82Oz/vdnp/8Tf
1048 | 7f/b9f//3PX9/972/P/F2+L/RzRZ/z8qWP9hTX3/rqHA//z4/f/z9PD/+Pj2//v6/f/w/v3/3+3t/+Hs
1049 | 8f/M0t//fn6U/56ZuP96cZj/tqvV/7Om3f+0q9f/savO/3x3lv9fWH3/k4u0/6ujzf+spMz/rqrN/7Sw
1050 | 0/+zrdD/sq3O/7av0f+1rc//t67Q/2lggv9pbH//naCv/+vx9v/y9/j/9/36//f8+P/4/Pr/+Pz5/+/w
1051 | 9v9DPFn/WUN//1Uyi/9ZLpj/XS2Z/10vk/9fMpD/PCVb/6ysy//f+P3/1/r2/9r4+//d9v//xeHz/7fZ
1052 | 6P/A2O//v9fs/8HY6P/c7/j/iJaa/+vx8//8/Pz//vz7////////////////////////////////////
1053 | ////////////////////////////////////////////////////////////////////////////////
1054 | ////////////////////////////////////////////////////////////////////////////////
1055 | ///////////////////////////////////////////////////////////////+/v///v7//f7+//j+
1056 | //+ap67/4vb9/8vm9P+62vH/wdfv/77V6v/D2uz/1ez7/+D2///g9v7/4vj8/9Pp7v9eSm3/PCNe/2hL
1057 | mv9GMXb/lYyv//r5/v/39vj//vr+/+/7+f/u+fj/4ezs/+Tt8f/l6vL/f4CR/7Kxyf9qaIT/enac/7Cs
1058 | 0f+vrc7/s7HS/3p4mP+pp8n/rKjO/7ax2v+xs8//sbPO/7Gzzv+vr8r/sbDJ/7Oyyv92dIz/zsvf/+Po
1059 | 8P/q8Pb/9fv7//f8+//2+vr/9vj9//f0///59f//8+n//1E+cf9VNoH/Yzia/2EwnP9eLpj/XTGQ/1wz
1060 | i/9ALF7/oKK9/9/6/f/W+/b/2fn8/973///O6vv/uNru/77T8v++1O7/ydzv/8HQ2/+bpan/9Pj4//7+
1061 | /f/9+/r/////////////////////////////////////////////////////////////////////////
1062 | ////////////////////////////////////////////////////////////////////////////////
1063 | ////////////////////////////////////////////////////////////////////////////////
1064 | //////////////////////////7+//7+/v/9/v7/+f7+/93n6/+2yND/z+f2/7rV5/+81O7/vtbu/7zV
1065 | 6v/I4fL/3fb//934/v/a9fv/1O/z/4NzkP81G17/cU+4/29Tuf9XSIv/4Nzw//Tz+//59v7/9/3+//T7
1066 | +//u9vT/9Pz5/+jz8P/n8fL/5e71/8jP2P+8xsz/fIWS/3V7kf9gZXz/goic/6+1yP+Eip//mJ23/6Cr
1067 | vf93g5P/doCQ/4yWpf+Qmab/jJWg/7G5wf/c5O7/7fT0//T7+f/2/fn/8/n3//H0+f/28v3/yL/W/6OW
1068 | uf95ZKP/TTF5/184jv9dLpH/Xy2U/14ukP9fNY7/WDKF/zYlUv+XnLT/2vf4/9b79v/X9/r/2PL//8fk
1069 | +v+11+7/v9L3/8PW8//I2O3/bnmE/+vy9P/6/Pv/+Pb1///+/f//////////////////////////////
1070 | ////////////////////////////////////////////////////////////////////////////////
1071 | ////////////////////////////////////////////////////////////////////////////////
1072 | ///////////////////////////////////////////////////////////////////+/f7//v7+//7+
1073 | /v/6/v7/8/z8/6i2vP/N4u3/xN3s/83p/f/H5Pv/t9Tr/7vb7P/S8v7/2/v//9b4/f/V9/n/pJav/y0T
1074 | Wv9lQbj/hGLe/25bsP9IQWj/oJ6t//Ds9f/z9Pr/+v3+//n++//1/vf/8v32/+369f/o9vP/5vT0/+D3
1075 | 4//i9O//ydfd/8LO2/+Ypq3/eIiM/7fFzP+ap7L/b4GL/+Dx+f/a6/H/3/D2/97u8//k8/X/5PLz/+v5
1076 | +f/0+vX/9fz2//f9+P/t8vH/6ur1/42Go/9JO2n/UT53/04xgv9iQJX/XTOQ/2Exk/9hL5H/YDKN/142
1077 | iv9MKHb/f26a/4uQp//a9/j/1Pv2/9j5/P/U7f7/vNjw/7XY8P++0Pj/x9n2/4WUqv/G0Nr/9vv9//j6
1078 | +f/9+/r//v38////////////////////////////////////////////////////////////////////
1079 | ////////////////////////////////////////////////////////////////////////////////
1080 | ////////////////////////////////////////////////////////////////////////////////
1081 | ///////////////////////////////+/////////v////z////x+Pf/9f7+/5WioP/r+ff/2fX5/9n4
1082 | +//M8PL/yu/v/9X7+v/Y+/r/2/r7/935/P+0scj/LBtQ/2BAo/9+XOH/dVzm/2td0P88MIL/kICy/+nx
1083 | +v/y+f//8fn4//T79v/3/Pj//P79//36///+9///9fz4//P69//v9fP/8/n5//L3+f/z+Pv/6+/0/+7y
1084 | 9//x9PX/8fX0//H18//2+fn/9vj6//n6///39v//+vf///T4/f/2+/3/8PX3/+Tl7/+hm7b/Oyll/1E1
1085 | jf9cOaT/WUS//2xN0P9iN7z/Wyyj/1cujP9cPIT/SjNw/4p4s/+Pkaz/gIuh/93z///W9v3/0vj7/9n9
1086 | /v/I6u3/1vX3/9Dm7v+aq7L/sbrA//f4+////v////7+/////P////v/////////////////////////
1087 | ////////////////////////////////////////////////////////////////////////////////
1088 | ////////////////////////////////////////////////////////////////////////////////
1089 | ////////////////////////////////////////////////////////////////////////////////
1090 | ///+/////P////j9/f/w+fj/zdnY/56sqv/Z8/b/3vr8/9v6+//X+fv/1vr9/9j5/f/b+f3/3Pn9/8LB
1091 | 1f8wIFX/XT2f/39c4v9zWej/d2Xj/3Ffwv9qVaT/bWmZ/8TD4f/o6fb/6e31//b8+P/2+vP/+Prz//39
1092 | 9//5/v7/+f7+//j9/f/6////+Pz9//n9/v/0+fv/+P3+//T9///1////9P79//X//P/w+/f/8Pr5//T8
1093 | ///y+/3/9/v9/+ns8v/Dw9D/c22O/zosZv9LNIn/Vjem/3xY1v95Zt3/fGDh/3dQ1f9iN6//WzaT/1A1
1094 | d/90Y5b/s6jW/5GUrv+Ai6D/3fP//9f3/f/W+/3/1Pf5/937/f/b9/v/vtDW/5uorv/w9/z/+vv9///+
1095 | /////v7////8//7/+///////////////////////////////////////////////////////////////
1096 | ////////////////////////////////////////////////////////////////////////////////
1097 | ////////////////////////////////////////////////////////////////////////////////
1098 | //////////////////////////////////////////////7////8////9vv6//X8+//y+vr/t8HA/6zA
1099 | xv/g9/3/2fT7/9v5/v/Y+P//2fj//9v3///c9///xsjc/zAjVP9QMZD/g2Dk/3VX6/9zXOn/eWHd/4Jl
1100 | 0v99asv/VEWZ/1xTkP+4tdj/8/T9//L39f/7//T/9fnq//n8///5/P//+v3///v////5/vz/+f77//j+
1101 | +v/6//v/7/z+//L//v/x/v3/8//9/+379//j8u7/4e/u/+Hu7//Kx9b/i4We/zkvXv9FNXv/Uzyc/2VJ
1102 | wP+BYOf/gF7u/3Nl2/93YOL/gWDo/3dRzf9gQJ7/SjZ0/7Cn0P+qpsb/lJix/4CLn//c8v3/2vj8/9f6
1103 | +//e/f3/2/b3/8ne4v+dpav/7vX5//r+///7+/3///7///7//v/9//z//P/8////////////////////
1104 | ////////////////////////////////////////////////////////////////////////////////
1105 | ////////////////////////////////////////////////////////////////////////////////
1106 | ////////////////////////////////////////////////////////////////////////////////
1107 | //////////////3////1+Pj/+f7+//P5+f/y+fj/qLW7/6y7wv/Z7fP/y+Tv/9v1///b9v//2/b//9z3
1108 | ///M0uP/NixZ/0Inff+DYt7/eFrs/25T6v96XO3/gFzm/3pd4/98Ytv/ZVG1/0I1f/+Ti7v/j4uq/8rJ
1109 | 2//t7vr/7Ov7/+/v/P/4+v//+fz///r+/v/4/vv/+f/5//n/+P/2/v7/8/z7/+739//w9/v/5+32/+Xo
1110 | +f/X2PD/z87q/4d5rv9EMnb/ZEyl/2tQv/96Xd7/f2Hr/3db6P90Wef/cGHi/3dg6v95Wen/fV3d/2hO
1111 | sP9/cbD/q6bO/6mox/+WmrP/gYue/93x+//d+fv/3/z9/933+P/N4eP/orG0//z9///4+fz/9fX3//X3
1112 | 9//9////+//+//r//f/6//z/////////////////////////////////////////////////////////
1113 | ////////////////////////////////////////////////////////////////////////////////
1114 | ////////////////////////////////////////////////////////////////////////////////
1115 | /////////////////////////////////////////////////////////f////3////8/////P////z/
1116 | ///y+Pz/rre//6y6xv/K3Oz/y+Py/8fh7v/V8Pv/2/b8/9Ld7P88N13/Nx9q/31fzv94XeX/dVvw/3ZY
1117 | 8f97Vu7/d1ns/3ha5v9/ZOP/cVnJ/1I+nv9JNYr/Oihz/1dGjf90b5H/6OT7/5iWsf/S0eD/5eX2/+7x
1118 | +f/w8/n/2+Dm//Py+P/v7Pb/5N/t/7+30f+Lfaj/SDZw/0Isc/9AJnX/UDSa/29Rwf+DY+H/f17o/3pb
1119 | 6/94XOn/dl/k/3Vh4f9xXuv/dFvu/3ld7f99Y9//aFWy/46DwP+loMz/qKXL/5Wbsf+Fj6L/3/L7/+D5
1120 | /P/f+Pj/0OTl/7K/wP/s9Pb///7////+/////v///f////v//v/7//7/+//+//r//v//////////////
1121 | ////////////////////////////////////////////////////////////////////////////////
1122 | ////////////////////////////////////////////////////////////////////////////////
1123 | ////////////////////////////////////////////////////////////////////////////////
1124 | //////////////////////////////7////+/////v////r8+//z9/r/i5Sf/8DP3P/B1uf/zOX0/934
1125 | /v/W8ff/1+Xt/2JhgP9QPnv/XUSg/3xm3P9zXeb/dFrt/3hX8P93W+7/d1rq/3pd6f9+YOf/fV7h/31e
1126 | 3P9xUcv/a0rE/2BTm/9GOYD/PzN2/0pAf/9IQHr/e3Sq/5GLuf8tKFj/U0Vy/0Y3aP9wXpb/OyVp/0Uq
1127 | fP9cPJ//WTSk/3hQyf+AYef/fl7o/35c7P98XO7/eFvr/3de5v91YuH/dWPd/3Re7v9yWuj/e2Xl/3lo
1128 | zf9dVJf/YV2M/7Ot1/+pos//fYKY/624xv/h8vr/3/X4/8TZ2P+rurn/9fv8//j4+////v7///7+//7/
1129 | /v/7//7/+//+//v//v/+//7//v/+////////////////////////////////////////////////////
1130 | ////////////////////////////////////////////////////////////////////////////////
1131 | ////////////////////////////////////////////////////////////////////////////////
1132 | //////////////////////////////////////////////7/////////////////////////////////
1133 | //////////75//v6+f/x9/z/fIiX/8fa5f/R6fX/3Pj9/9j2+f/S5O//bnGK/7ap2f9xXqn/alq8/3Nk
1134 | 2/90X+f/dlrq/3Vb6f95X+3/d1vq/3hZ6P99Xen/e1nl/3xa5P99WeL/fGLb/3lf2P94X9X/fGTX/3tl
1135 | 1P95Y8//blnC/3diy/96Ycr/c1vD/2RLtf92XMr/fGDU/3pb2P+AXuL/hGDp/3lf6P93Xuj/d13m/3Zd
1136 | 5v93Xub/d1/m/3df5f93X+X/dl/m/3hl4P9wY8X/YFyb/8bK6P+kp7z/h4Oh/6yjzv9qcYX/4Ov1/+b4
1137 | /v+htbn/scTE//H7+//5+vv//vv+/////P////z//f/8//r//f/7//7//v/+/////v///v7/////////
1138 | ////////////////////////////////////////////////////////////////////////////////
1139 | ////////////////////////////////////////////////////////////////////////////////
1140 | ////////////////////////////////////////////////////////////////////////////////
1141 | /////////f////7////////////////////////////////+///9+/L/+/r3//f7/v/Y4uv/b4CQ/8zl
1142 | 7//e+vz/2fj6/8rd5/94fZL/qJ7G/6aW1f9NQZf/dmvX/3Zm4v91XOT/dF3o/3Vc6P94Xen/d1vn/3pa
1143 | 5v99Xeb/f17l/4Bf5P92VPD/fFr2/3dW8P92Vu7/eFju/3RW6f94Wuv/dljp/3ZY8P92W+7/eV/u/3Vd
1144 | 5v90XeT/e2Tq/3Ze5v93X+j/cF3f/3Rh4f91Y+H/dGHf/3dg4v93Xuf/eFvs/3hZ7/97ZuH/aVrF/2hj
1145 | q//c4vX/7Pf7//L7+/+OjZ//iX+l/7S7zv+6xc//jp+p/8vf4P/t/Pz/8vr6//n4+f/38vX////7////
1146 | +//8//z/+v/8//v//v/+//7///7+///9/v//////////////////////////////////////////////
1147 | ////////////////////////////////////////////////////////////////////////////////
1148 | ////////////////////////////////////////////////////////////////////////////////
1149 | ////////////////////////////////////////////////////////////////////////////////
1150 | //////////////7//f////7///7///39///a3uL/hpKa/+T3/P/d9/3/0t3k/4aPm/+bobf/fn+l/5uT
1151 | zv9cS6j/g2jg/39f5v92Xe3/eV7x/3FU7P90Vu3/dlrs/3Rb4f92Ydr/embX/3Va6P91Wuj/dVvn/3Vb
1152 | 5/92XOf/dl3n/3Zd5v92Xeb/c2Lf/3Vi4P91YeL/dl/l/3de6f94XOr/eFvt/3pa7/90W+//dFvw/3Va
1153 | 7/92W+z/d17n/3dh3/98ad3/dWPR/2legP+0q8L/9vH+//v6/P/7/Pn/+vv4//7+/v/Hxcr/lZWV/9TU
1154 | 1P/7+/v/9/f3////////////////////////////////////////////////////////////////////
1155 | ////////////////////////////////////////////////////////////////////////////////
1156 | ////////////////////////////////////////////////////////////////////////////////
1157 | ////////////////////////////////////////////////////////////////////////////////
1158 | /////////////////////////////////////////////////////////f/+/////v///v///v3///X3
1159 | /P/S2d//jJqi/93w9//k6vb/pKq5/46Upf++wdn/4uD+/7u06f9nWqL/alqs/3ll1/90X9f/emHl/3dZ
1160 | 6f94Wu7/eFru/3db6/92W+j/dV7i/3Ve4v91X+H/dV7i/3Zf4/92X+P/dl7j/3Ze4/9zXOz/dFzs/3Vb
1161 | 7f92W+7/dVjt/3dZ7/93WO//d1jv/3pe7/92W+n/emHo/3hi3f96Z9P/dWfC/1RKlv+Mhb7/5t3x//bw
1162 | /v/8+f///Pz7//v7+P/9/fv/+fn6//n4/P/6+vr/+vr6//z8/P/+/v7/////////////////////////
1163 | ////////////////////////////////////////////////////////////////////////////////
1164 | ////////////////////////////////////////////////////////////////////////////////
1165 | ////////////////////////////////////////////////////////////////////////////////
1166 | ////////////////////////////////////////////////////////////////////////////////
1167 | ///////////////////9//7//v/+///+/////P//+fj7//T1+//V2eD/hImT/7q6zP+RkqP/wcTN/+/0
1168 | +f/0+P7/9Pj7/+7w/P/Gxtj/iHy6/2VWo/97Z8f/f2fb/31g5v94Wuz/dVfv/3VX8f92X+X/dl/l/3Ze
1169 | 5v92Xef/dlzo/3Zb6v92Wuv/dlrr/3NY9P90WPP/dVnx/3Za7/94XO3/d1vq/3hd6f98YOz/f2Ti/31l
1170 | 2/99aNH/cWG4/11TlP+NibH/3N/y//H3/v/48/z/+PX7//r5+//8/fn//v/6//v8+f/9/P7//Pr+//v7
1171 | +//8/Pz//f39//39/f//////////////////////////////////////////////////////////////
1172 | ////////////////////////////////////////////////////////////////////////////////
1173 | ////////////////////////////////////////////////////////////////////////////////
1174 | ////////////////////////////////////////////////////////////////////////////////
1175 | //////////////////////////////////////////////////////////////3//v/+//7//v7+///9
1176 | ///8+v3//fn9//37///38/j/2tXl/+Lf6f/8/P7/+/z5//f68v/8/vX/+v70//r79f/49P//6OL7/62j
1177 | zP9yZar/Zlav/3Rhyf98adv/e2jd/3lg4v95YOP/eV/k/3le5v94W+j/eFrq/3hZ7P94We3/dl/l/3Zg
1178 | 4/93YuD/d2Tb/3tp2f9/bdf/e2nP/3FhxP9fTp//Y1Od/35yr/+7s9j/8O7///T2/f/3/fb/9/3x//z8
1179 | /f/9/f3/+/v4//z9+P/4+fT//f37//v6/P/+/P7///////39/f/8/Pz//Pz8////////////////////
1180 | ////////////////////////////////////////////////////////////////////////////////
1181 | ////////////////////////////////////////////////////////////////////////////////
1182 | ////////////////////////////////////////////////////////////////////////////////
1183 | ////////////////////////////////////////////////////////////////////////////////
1184 | //////////////////////////////////////////7///79/////P////z////8/////f////7/////
1185 | /v////v//v/5//7/+v/+/vr//v78////+P/+/vz/+vr+//f0///V0vH/n53B/4B/rP9sa5v/aF2r/2lc
1186 | rP9kV6n/XlCm/2FRq/9hUK3/YE+u/2BOr/9cUqb/XVOk/2BYov9lXaH/aWOf/21onv9+eqr/qKTI/9DM
1187 | 6P/18v//9PP///r6///7/v3//P/6//3/9v/+//X//v/8//7/+//+//r//v/6////+/////7///7////+
1188 | ////////////////////////////////////////////////////////////////////////////////
1189 | ////////////////////////////////////////////////////////////////////////////////
1190 | ////////////////////////////////////////////////////////////////////////////////
1191 | ////////////////////////////////////////////////////////////////////////////////
1192 | /////////////////////////////////////////////////////////////////////v////////3/
1193 | ///8/////P7+//79/v///f7///z+/////P////z////+/////v/+/f7//vz///78///++//////1////
1194 | 9v////j//v/6//r++v/3/vn/8fn2//L5+f/y9/r/8/f9//D0/f/t8P3/6Or6/+Xn+f/i4/f/4OH1/+Li
1195 | /f/i4v3/6er///T1///x8///8fP+//j8/v/3+v7/9/36//n++//5/vn/+//5//z/+f/+//r//v78//79
1196 | /v/+//z//v/8//7//P/+/vz////+/////////v////7/////////////////////////////////////
1197 | ////////////////////////////////////////////////////////////////////////////////
1198 | ////////////////////////////////////////////////////////////////////////////////
1199 | ////////////////////////////////////////////////////////////////////////////////
1200 | ////////////////////////////////////////////////////////////////////////////////
1201 | ///////////////////////////////9/////v///P////n////4//3/+v79//3+/f///v3//v/9//7/
1202 | /v/+//7//v7///39/v/9/f7//f7+//3+/v/9/Pn//v35///++v////n//f/4//v69f/8+/b/+/32//v9
1203 | 9P/7/vX//P/2//r99P/8//b//P/2//z/9v/8//b/+Pv///n8///6/P//+vz9//n7+f/+/vz//v/6//r7
1204 | 9f/2/fr/+v/8//n++P/3/vT//P/5//3//P/+/f7//vz///79/v/+/f7//v3+//79/////v////7/////
1205 | //////7/////////////////////////////////////////////////////////////////////////
1206 | ////////////////////////////////////////////////////////////////////////////////
1207 | ////////////////////////////////////////////////////////////////////////////////
1208 | ////////////////////////////////////////////////////////////////////////////////
1209 | //////////////////////////////////////////////////////////////////////////3////+
1210 | ///8////+P////X//f/3//3/+v/9//3//P/9/v///f7///3////9/////P78//z/+f/8//f//P/1//77
1211 | ////+/////z////8///9+f3///z////7////+v////n///74/v/9+P7//fn9///6////+/////z+///8
1212 | /v/8/fv//P37//39/P/8+/r//vz7//77+f/9/Pn///78//j7/v/3+/7/+P78//j++f/7//r//P/8//39
1213 | /v/+/P///vz///78///+/P///vz////9/////v/////+/////v//////////////////////////////
1214 | ////////////////////////////////////////////////////////////////////////////////
1215 | ////////////////////////////////////////////////////////////////////////////////
1216 | ////////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1217 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1218 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1219 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1220 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1221 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1222 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1223 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1224 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1225 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1226 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1227 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1228 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1229 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1230 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1231 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1232 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1233 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1234 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1235 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1236 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1237 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1238 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1239 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1240 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1241 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1242 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1243 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1244 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1245 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1246 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1247 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1248 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1249 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1250 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
1251 |
1252 |
1253 |
--------------------------------------------------------------------------------