From 2a9fbc7cb9dd1a94bf6c77bc6dd36908c72e99fd Mon Sep 17 00:00:00 2001 From: Nathan Crawford Date: Fri, 27 Jul 2007 03:04:19 +0000 Subject: [PATCH] Got all functionality except reading colors working for sample file --- embroideryReader.suo | Bin 15872 -> 15872 bytes embroideryReader/Form1.Designer.cs | 76 ++++++- embroideryReader/Form1.cs | 211 +++++++++++++----- embroideryReader/Form1.resx | 6 + embroideryReader/Form2.Designer.cs | 1 + embroideryReader/Form2.cs | 29 ++- embroideryReader/Properties/AssemblyInfo.cs | 4 +- .../bin/Debug/embroideryReader.exe | Bin 20480 -> 24576 bytes .../bin/Debug/embroideryReader.pdb | Bin 30208 -> 32256 bytes ...oideryReader.csproj.GenerateResource.Cache | Bin 900 -> 900 bytes .../obj/Debug/embroideryReader.exe | Bin 20480 -> 24576 bytes .../obj/Debug/embroideryReader.pdb | Bin 30208 -> 32256 bytes 12 files changed, 258 insertions(+), 69 deletions(-) diff --git a/embroideryReader.suo b/embroideryReader.suo index 076b28acc780c2ee10db0f0bcaecdb1afc652ddf..4555b94fe4e4758a1abdfda8edc15d710c086f7e 100644 GIT binary patch delta 561 zcmZpuX{gzd!@_0|(&_r^{Ny5*OFV)M3=CXA{2vG=Uu034+`!2)xq{V)QD*XA3;oFl z1XwozV4c7``JsWyJ0ATJ{iFHnvfh~bVY5ei^r0z2f3 zkU!Yo65#+IVW1KrWMyB3Zx~hr1wi2JY7?RN|K9xv8O;LZ3jnbpk~mDRYx7@`)65)V zKqM z8cA?-iM%H-9=kT{8^|$E{;Hd&;lzBJk#I;d@oeta>%!-HpotS1S?2@YP_X%^p)@Bn cW(_9qQ&yO)tIs#N$ok^s!(4`&OKf@=0l50L+5i9m delta 522 zcmZpuX{gzd!@|a(FI;%=;N&8fOFUu>3=Hf*{2vG=Uu034+`!2)xq{V)k$>`E3;oFl z1XwozV4c7`d5MbC&%`JQlHXjy?a#u?zzZ}$0?ClgU-+dNC$k&y zNu{s=g~4D$bPCIfm=qR92$z4exgam&WEU=j$t6MoJX}Cg9w3H0 private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); this.button1 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.button4 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.colorDialog1 = new System.Windows.Forms.ColorDialog(); this.button2 = new System.Windows.Forms.Button(); this.SuspendLayout(); // // button1 // - this.button1.Location = new System.Drawing.Point(94, 116); + this.button1.Location = new System.Drawing.Point(12, 12); this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(75, 23); + this.button1.Size = new System.Drawing.Size(53, 23); this.button1.TabIndex = 0; - this.button1.Text = "button1"; + this.button1.Text = "Open"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click); // + // button3 + // + this.button3.Location = new System.Drawing.Point(189, 12); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(53, 23); + this.button3.TabIndex = 2; + this.button3.Text = "Step 1x"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 45); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(35, 13); + this.label1.TabIndex = 3; + this.label1.Text = "label1"; + // + // timer1 + // + this.timer1.Interval = 10; + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + // + // button4 + // + this.button4.Location = new System.Drawing.Point(71, 12); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(53, 23); + this.button4.TabIndex = 4; + this.button4.Text = "Play"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button4_Click); + // + // button5 + // + this.button5.Location = new System.Drawing.Point(130, 12); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(53, 23); + this.button5.TabIndex = 5; + this.button5.Text = "Pause"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button5_Click); + // // button2 // - this.button2.Location = new System.Drawing.Point(106, 198); + this.button2.Location = new System.Drawing.Point(248, 12); this.button2.Name = "button2"; this.button2.Size = new System.Drawing.Size(75, 23); - this.button2.TabIndex = 1; + this.button2.TabIndex = 6; this.button2.Text = "button2"; this.button2.UseVisualStyleBackColor = true; - this.button2.Click += new System.EventHandler(this.button2_Click); + this.button2.Click += new System.EventHandler(this.button2_Click_1); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(292, 273); + this.ClientSize = new System.Drawing.Size(376, 67); this.Controls.Add(this.button2); + this.Controls.Add(this.button5); + this.Controls.Add(this.button4); + this.Controls.Add(this.label1); + this.Controls.Add(this.button3); this.Controls.Add(this.button1); this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false); + this.PerformLayout(); } #endregion private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.ColorDialog colorDialog1; private System.Windows.Forms.Button button2; } } diff --git a/embroideryReader/Form1.cs b/embroideryReader/Form1.cs index 9127be8..babebab 100644 --- a/embroideryReader/Form1.cs +++ b/embroideryReader/Form1.cs @@ -12,6 +12,12 @@ namespace embroideryReader { private Form2 _form2 = new Form2(); private long bytesRead = 0; + System.IO.BinaryReader fileIn; + Random rnd = new Random(); + int stitchCount = 0; + int stitchesLeft = 0; + int skipStitches = 0; + public Form1() { @@ -20,97 +26,90 @@ namespace embroideryReader private void button1_Click(object sender, EventArgs e) { - System.IO.BinaryReader fileIn; + //System.IO.BinaryReader fileIn; //char charIn; string message = ""; fileIn = new System.IO.BinaryReader(System.IO.File.Open("118866.pes", System.IO.FileMode.Open)); //charIn = fileIn.ReadChar(); - for (int i = 0; i < 8; i++) + for (int i = 0; i < 8; i++)//8 bytes { message += fileIn.ReadChar(); bytesRead++; } message += Environment.NewLine; - for (int i = 0; i < 8; i++) + for (int i = 0; i < 8; i++)//16 bytes { message += fileIn.ReadInt16().ToString(); message += Environment.NewLine; bytesRead += 2; } - for (int i = 0; i < 7; i++) + for (int i = 0; i < 7; i++)//7 bytes + { + message += fileIn.ReadChar(); + + bytesRead++; + } + message += Environment.NewLine; + //MessageBox.Show(message); + + //message = ""; + for (int i = 0; i < 11; i++) //read 66 bytes + { + message += fileIn.ReadInt16().ToString(); + message += "\t| "; + message += fileIn.ReadInt16().ToString(); + message += "\t| "; + message += fileIn.ReadInt16().ToString(); + message += Environment.NewLine; + bytesRead += 6; + } + //MessageBox.Show(message); + + //message = ""; + for (int i = 0; i < 7; i++)//7 bytes { message += fileIn.ReadChar(); bytesRead++; } //MessageBox.Show(message); - message = ""; - for (int i = 0; i < 33; i++) //read 66 bytes - { - message += fileIn.ReadInt16().ToString(); - //message += "\t| "; - //message += fileIn.ReadInt32().ToString(); - //message += "\t| "; - //message += fileIn.ReadByte().ToString(); - message += Environment.NewLine; - bytesRead += 2; - } - //MessageBox.Show(message); - - message = ""; - for (int i = 0; i < 7; i++) - { - message += fileIn.ReadChar(); - bytesRead++; - } - //MessageBox.Show(message); - - message = ""; - for (int i = 0; i < 10; i++) + //message = ""; + MessageBox.Show(fileIn.BaseStream.Position.ToString()); + for (int i = 0; i < 7; i++)//14 bytes { message += fileIn.ReadInt16(); message += Environment.NewLine; bytesRead += 2; } MessageBox.Show(message); - - //int tmpRed; - //int tmpGreen; - //int tmpBlue; - - //tmpRed = fileIn.ReadByte(); - //tmpGreen = fileIn.ReadByte(); - //tmpBlue = fileIn.ReadByte(); - //fileIn.ReadByte(); - - //Color tmpColor = System.Drawing.Color.FromArgb(tmpRed, tmpGreen, tmpBlue); - //_form2.drawColor = tmpColor; //start of point pairs? message = ""; - int tmpx; - int tmpy; - List tmpPoints = new List(); + //int tmpx; + //int tmpy; + //List tmpPoints = new List(); long startPos = fileIn.BaseStream.Position; bytesRead = fileIn.BaseStream.Position; - while (bytesRead + 4 <= fileIn.BaseStream.Length) - //while (bytesRead + 4 <= startPos + 1204 + 200) - { - //if (bytesRead > 1322) - //{ - // int junk = 0; - // junk++; - //} - tmpy = Convert.ToInt32( (fileIn.ReadInt16() / 2.0) + 600); - tmpx = Convert.ToInt32( (fileIn.ReadInt16() / 2.0) + 600); - bytesRead += 4; - tmpPoints.Add(new Point(tmpx, tmpy)); - } - _form2.points = new Point[tmpPoints.Count]; - tmpPoints.CopyTo(_form2.points); - fileIn.Close(); + //MessageBox.Show(fileIn.BaseStream.Position.ToString()); + //while (bytesRead + 4 <= 10000) + ////while (bytesRead + 4 <= startPos + 1204 + 200) + //{ + // //if (bytesRead > 1322) + // //{ + // // int junk = 0; + // // junk++; + // //} + // tmpy = Convert.ToInt32( (fileIn.ReadInt16() / 2.0) + 600); + // tmpx = Convert.ToInt32( (fileIn.ReadInt16() / 2.0) + 600); + // bytesRead += 4; + // tmpPoints.Add(new Point(tmpx, tmpy)); + //} + //_form2.points = new Point[tmpPoints.Count]; + //tmpPoints.CopyTo(_form2.points); + //fileIn.Close(); //MessageBox.Show(tmpPoints.Count.ToString()); _form2.Show(); + _form2.drawColor = Color.FromArgb((rnd.Next(0, 255)), (rnd.Next(0, 255)), (rnd.Next(0, 255))); } private void button2_Click(object sender, EventArgs e) @@ -118,5 +117,101 @@ namespace embroideryReader _form2.Show(); } + private void button3_Click(object sender, EventArgs e) + { + nextStitch(); + } + + private void nextStitch() + { + int tmpx; + int tmpy; + //List tmpPoints = new List(); + //while (bytesRead + 4 <= 10000) + //while (bytesRead + 4 <= startPos + 1204 + 200) + //{ + //if (bytesRead > 1322) + //{ + // int junk = 0; + // junk++; + //} + Int32 realx; + Int32 realy; + if (fileIn.BaseStream.Position + 4 < fileIn.BaseStream.Length) + { + realx = fileIn.ReadInt16(); + realy = fileIn.ReadInt16(); + if (realx == -32765) + { + + if (realy == 1) + { + //timer1.Enabled = false; + //colorDialog1.ShowDialog(); + //_form2.drawColor = colorDialog1.Color; + _form2.drawColor = Color.FromArgb((rnd.Next(0, 255)), (rnd.Next(0, 255)), (rnd.Next(0, 255))); + _form2.Invalidate(); + _form2.prevPoint = new Point(-1, -1); + } + fileIn.ReadInt16();//don't know what this is, maybe color index? + stitchesLeft = fileIn.ReadInt16(); + if (realy == 1) + { + skipStitches = stitchesLeft;//skip these stiches, since they just seem to get in the way + } + } + else + { + tmpx = Convert.ToInt32((realx / 2.0) + 100); + tmpy = Convert.ToInt32((realy / 2.0) + 600); + bytesRead += 4; + //tmpPoints.Add(new Point(tmpx, tmpy)); + if (skipStitches > 0) + { + skipStitches--; + } + else + { + _form2.addPoint(new Point(tmpx, tmpy)); + } + stitchCount++; + stitchesLeft--; + _form2.Invalidate(); + } + label1.Text = "file pos: " + fileIn.BaseStream.Position.ToString() + ", last values: " + realx.ToString() + ", " + realy.ToString() + ", stiches: " + stitchCount.ToString() + ", stitches left: " + stitchesLeft.ToString(); + if (stitchesLeft < 0) + { + timer1.Enabled = false; + fileIn.Close(); + } + } + //_form2.points = new Point[tmpPoints.Count]; + //tmpPoints.CopyTo(_form2.points); + + } + + private void timer1_Tick(object sender, EventArgs e) + { + nextStitch(); + } + + private void button4_Click(object sender, EventArgs e) + { + timer1.Enabled = true; + } + + private void button5_Click(object sender, EventArgs e) + { + timer1.Enabled = false; + } + + private void button2_Click_1(object sender, EventArgs e) + { + while (stitchesLeft >= 0) + { + nextStitch(); + } + } + } } \ No newline at end of file diff --git a/embroideryReader/Form1.resx b/embroideryReader/Form1.resx index ff31a6d..c856f6c 100644 --- a/embroideryReader/Form1.resx +++ b/embroideryReader/Form1.resx @@ -117,4 +117,10 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + + + 100, 17 + \ No newline at end of file diff --git a/embroideryReader/Form2.Designer.cs b/embroideryReader/Form2.Designer.cs index e85c70f..b8d99d1 100644 --- a/embroideryReader/Form2.Designer.cs +++ b/embroideryReader/Form2.Designer.cs @@ -35,6 +35,7 @@ namespace embroideryReader this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(292, 273); + this.DoubleBuffered = true; this.Name = "Form2"; this.Text = "Form2"; this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form2_Paint); diff --git a/embroideryReader/Form2.cs b/embroideryReader/Form2.cs index 57620ea..11231d3 100644 --- a/embroideryReader/Form2.cs +++ b/embroideryReader/Form2.cs @@ -11,19 +11,44 @@ namespace embroideryReader public partial class Form2 : Form { //public List pointList = new List(); - public Point[] points = new Point[0]; + //public Point[] points = new Point[0]; public Color drawColor = System.Drawing.Color.Black; + private Bitmap DrawArea; + public Point prevPoint = new Point(-1,-1); public Form2() { InitializeComponent(); + DrawArea = new Bitmap(1000, 1000); } private void Form2_Paint(object sender, PaintEventArgs e) { //Point[] points = new Point[pointList.Count]; //pointList.CopyTo(points); - e.Graphics.DrawLines(new System.Drawing.Pen(drawColor), points); + //if (points.Length >= 2) + //{ + // e.Graphics.DrawLines(new System.Drawing.Pen(drawColor), points); + //} + e.Graphics.DrawImage(DrawArea, 0, 0); + } + + public void addPoint(Point p) + { + //Point[] tmp = new Point[points.Length + 1]; + //points.CopyTo(tmp,0); + //tmp[tmp.Length - 1] = p; + //points = tmp; + + if (prevPoint != null && prevPoint.X != -1 && prevPoint.Y != -1) + { + Graphics xGraph; + xGraph = Graphics.FromImage(DrawArea); + xGraph.DrawLine(new Pen(drawColor), prevPoint, p); + xGraph.Dispose(); + } + prevPoint = p; + } } } \ No newline at end of file diff --git a/embroideryReader/Properties/AssemblyInfo.cs b/embroideryReader/Properties/AssemblyInfo.cs index d80260f..55ad708 100644 --- a/embroideryReader/Properties/AssemblyInfo.cs +++ b/embroideryReader/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("1.0.0.183")] -[assembly: AssemblyFileVersion("1.0.0.183")] +[assembly: AssemblyVersion("1.0.0.260")] +[assembly: AssemblyFileVersion("1.0.0.260")] diff --git a/embroideryReader/bin/Debug/embroideryReader.exe b/embroideryReader/bin/Debug/embroideryReader.exe index 24dbf0876487b4ddce1b0f21a7fadd94a36ef341..90118a534e07011842d7abb81b00dc1d9f422cb2 100644 GIT binary patch literal 24576 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�%ODa_p|)dl!`v{!pY{X_IJ=)561TI_Od6GdW!;IE5a2AvCI z2O!-TYetUP5xYibUxadPR+Dw`d{6euJ!lpHxGbC*MFFME%+vcsf==4VJOI5%W}G&P6D^ z%=3k>ko!Oub=Oc~0w}DNd}#t*ps;50RnL2D6|W7WB}@QD%1GQ__3)1aUjUQ&-{XYN z*A)lMe7R^`NyhxNWfrjATy%Gx8RNJ?drfP8>nagpkLbuQV^yJX%Um!lr(oCwl)uwO z{>IXl+Iq>`fL>Q9<;~me3^(D5Jc+L`Y?fvUvt=vmV8cs;3k%rR3huW)l(h}=x5jj6 z`c@<7R1429m?fj+pnFD5_+P%bu9aOSfM#Nt8A$kMo3C^@uX8OK~KlXIXyjwYQw$6&^wg*};g^QbT> zo6ozNd1EGvJ^X0NcCw|ML9>Q)bj0P6|2%+te2c2?^sxikQg#+Sv%L2Q(7y6M?C!W@ zt`EI;h0)TCSyA?Q((K9#*%V)H*Wf;HsO&fxnrV6Tde3b%mYs&niwt{d60a5(@e79K zYxH@V{jOI>;Cgcw;{p%6xUaaCj?PE`PA@u!&0*>HYxEEe6-rq@R%xbCG)7BwIE$E? zC##ev+bKA?xnUD8Hy&=-W5x`K+X@R4B1DYB=aysSsX9hpXO0dd+HUg<-C9R&^QaQO zjptV6b?@k8wMbuGk^VZ$tL|uJDjYUuiilkabKAz8DlYCthrD;aK?hrUm}StQCtM}) z-|5^pxy)$EF)$A&4C`0{uamT|T*y~zL5v?M*oEn$QRVqHdn3DAFlpgUbUtg{wpui7 zE-YGw**Rym2q_?6&b^6%=UKM2xVl8$q+cx_G3=aGSYTJJ7ETtN+CF(sK}gM(OoT%Y z6W*9E&(3D+y6*BY$2n8jet;eJT*-!FD6EPvU53o3!$vWCTrj(8j8{-P=oF?4#e!4Q z&AenBPAH>p@?l#r4N8t>7HOhvFBql#Sa#7YBa3ME?#dQB5G%Ma}-@u*=Am9xbOXR*jpV>teZ7Y+8>VetS4+E3w#3orZ(>!4Y> z);6qqt0os04DzCfao5@CgToX%#pC#MRoqn}j%ABwgZAVLSa*gjEUfiWzCtkJz=PG; zl2IQs-Q`t?N_b3Wr$;fE$H`6h;w+94bfCrqLl|{;VU$c-8z^ofT#jl=a7*8;I|Gp2iJ}7X&ZfI7bo#oOu}7XfP_Feh9OOJf;LCHVQT5xM^d( z$HFx+XWmW+ImX$&SfZ!Jr(;HG)|tb;C7Xwpz1y)rfT4xF=dxqi-_WE9(YCGJip=Jc zv%L?@DhU}n1dob4-H^%CaFO>Lt9DJYF~HZcz4O1-3e{~@@V(ejsfpaXBtE;CE^^Aj`g;t^N-t4kOE2o(fxqqe%ZOFjSGUZdH${|9fn%bUUBIYg3m~^=!^RXH16D*E+*^@1 zu$H!2;Xp@$hQdY$n;`AR-HW>)_fFhVO^@TT8~325gVNkq_OK}lY3c-{ z(NIKb4KSdwQRnuTPrHu?m=}$@#Dh#+bUqVJ%MZbXWJ^PenwCF@k7mF*6OE#8(I^4` z97w6XB`&f@lIzjIhz5xkR&W$ol}Jn}+JB&svrOBZaWa0gDd!7j#?5AS#!unc78GW& zEL0d1n3P3>6N0w}m{w$mdt{Dt%7|)e6iXg$T7EQ4@Vj`cVL;I~e=FtB#muB>7SR$G zXjHk#xj66dlZVQMBG$QxcNovV-az*rPcHvRy8dK@`_Z)gWF!)5+Ss&Fsnph<9-KnA;23aaGJ_WsMWh%I98luAm=6~x zwbtvf9l+wZ=XlPLJseh9tW=^4E&umC8t?+{g%R9H1&1d_Cf48ig`J%nj_>`}BYS_^ zbS`xR>*RLbWFIT>Z-@BJ&%SA;C94_c^sP6^es7g1vyh)gl@#8?(7i5ZJmnE99{zWr zT=vmn)7o>~kk>SMAvKIlzR2hE_=VI)N(~4WfWQNR2LcZS9tb=Tcp&gV;DNvc|NA|_ z-vp5Fg)GvavAeL8~A>5c;K!D+(;jpCQ~2SJYl z?sb24Pu~o`eAfLGOL?E6xlermS*|dk|4!kt2(J?09l?9Og?ii*fKi-S%-{@wuS@ZH zKhY$lS#WJR3*h&BKGkrqFNSY|tqL|d&?=p#^>wWD@|*ei3Mn^;vEZ{Q z_Gb}ZNg?X$N9fJUa=XD5cp&gV;DNvcfd>K)1Re-H5O^T)K;VJ@aUK|Oe~;3G595O? m@Ic^!zypB?0uKZp2s{vYAn-uofxrWS2LcZS9{9iMfqw(EP>ulr literal 20480 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 UL?DPj5P={9K?H&b{6-P@FL@(pEdT%j diff --git a/embroideryReader/bin/Debug/embroideryReader.pdb b/embroideryReader/bin/Debug/embroideryReader.pdb index 82883cb35dbaed395ccca317bb58f7ce286da8d0..a331af624b166b49033dc2eaef2853f9b492e232 100644 GIT binary patch literal 32256 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 UcjS0%mvnZ!tW~B`&254I10$t&OaK4? literal 30208 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�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 literal 20480 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 UL?DPj5P={9K?H&b{6-P@FL@(pEdT%j diff --git a/embroideryReader/obj/Debug/embroideryReader.pdb b/embroideryReader/obj/Debug/embroideryReader.pdb index 82883cb35dbaed395ccca317bb58f7ce286da8d0..a331af624b166b49033dc2eaef2853f9b492e232 100644 GIT binary patch literal 32256 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 UcjS0%mvnZ!tW~B`&254I10$t&OaK4? literal 30208 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