Updated the site
[sdlgit/SDL-Site.git] / pages / blog-0002.html-inc
index 2e202e7..317d824 100644 (file)
@@ -1,81 +1,78 @@
 <div class="blog">
 <h1 id="NAME">
-Providing direct memory access to SDL_Surface's pixels
+Grant Progess Reports 1-3: Sept - Nov
 </h1>
 <div class="CONTENT">
-<p>In an attempt to make pixel access easier on SDL_Surface pixels. I have started work on <a href="http://github.com/kthakore/SDL_perl/commit/7ee1a1a7f162080a6fa5274e95b80961486e21e5">SDLx::Surface</a>. So far I have only start on the 32 bpp surfaces.</p><br />
-<p>The general idea is to make Pointer Values (PV) of each pixel in the surface and place them into a 2D matrix. First I make pointer values like this: </p><br />
-<pre style='color:#d1d1d1;background:#000000;'>SV <span style='color:#d2cd86; '>*</span> get_pixel32 <span style='color:#d2cd86; '>(</span>SDL_Surface <span style='color:#d2cd86; '>*</span>surface<span style='color:#d2cd86; '>,</span> <span style='color:#e66170; font-weight:bold; '>int</span> x<span style='color:#d2cd86; '>,</span> <span style='color:#e66170; font-weight:bold; '>int</span> y<span style='color:#d2cd86; '>)</span>
-<span style='color:#b060b0; '>{</span>
- <span style='color:#9999a9; '>//Convert the pixels to 32 bit </span>
- Uint32 <span style='color:#d2cd86; '>*</span>pixels <span style='color:#d2cd86; '>=</span> <span style='color:#d2cd86; '>(</span>Uint32 <span style='color:#d2cd86; '>*</span><span style='color:#d2cd86; '>)</span>surface<span style='color:#d2cd86; '>-</span><span style='color:#d2cd86; '>></span>pixels<span style='color:#b060b0; '>;</span> 
-
- <span style='color:#9999a9; '>//Get the requested pixel  </span>
- Uint32<span style='color:#d2cd86; '>*</span> u_ptr <span style='color:#d2cd86; '>=</span>  pixels <span style='color:#d2cd86; '>+</span> <span style='color:#d2cd86; '>(</span> y <span style='color:#d2cd86; '>*</span> surface<span style='color:#d2cd86; '>-</span><span style='color:#d2cd86; '>></span>w <span style='color:#d2cd86; '>)</span> <span style='color:#d2cd86; '>+</span> x <span style='color:#b060b0; '>;</span> 
-
-        SV<span style='color:#d2cd86; '>*</span> sv <span style='color:#d2cd86; '>=</span> newSVpv<span style='color:#d2cd86; '>(</span><span style='color:#02d045; '>"</span><span style='color:#00c4c4; '>a</span><span style='color:#02d045; '>"</span><span style='color:#d2cd86; '>,</span><span style='color:#008c00; '>1</span><span style='color:#d2cd86; '>)</span><span style='color:#b060b0; '>;</span> <span style='color:#9999a9; '>//Make a temp SV* value on the go</span>
-        SvCUR_set<span style='color:#d2cd86; '>(</span>sv<span style='color:#d2cd86; '>,</span> <span style='color:#e66170; font-weight:bold; '>sizeof</span><span style='color:#d2cd86; '>(</span>Uint32<span style='color:#d2cd86; '>)</span><span style='color:#d2cd86; '>)</span><span style='color:#b060b0; '>;</span> <span style='color:#9999a9; '>//Specify the new CUR length</span>
- SvLEN_set<span style='color:#d2cd86; '>(</span>sv<span style='color:#d2cd86; '>,</span> <span style='color:#e66170; font-weight:bold; '>sizeof</span><span style='color:#d2cd86; '>(</span>Uint32<span style='color:#d2cd86; '>)</span><span style='color:#d2cd86; '>)</span><span style='color:#b060b0; '>;</span> <span style='color:#9999a9; '>//Specify the LEN length</span>
-        SvPV_set<span style='color:#d2cd86; '>(</span>sv<span style='color:#d2cd86; '>,</span><span style='color:#d2cd86; '>(</span><span style='color:#e66170; font-weight:bold; '>char</span><span style='color:#d2cd86; '>*</span><span style='color:#d2cd86; '>)</span>u_ptr<span style='color:#d2cd86; '>)</span><span style='color:#b060b0; '>;</span> <span style='color:#9999a9; '>// set the actual pixel's pointer as the memory space to use</span>
-
- <span style='color:#e66170; font-weight:bold; '>return</span> sv<span style='color:#b060b0; '>;</span> <span style='color:#9999a9; '>//make a modifiable reference using u_ptr's place as the memory :)</span>
-
-<span style='color:#b060b0; '>}</span>
-</pre><br />
-<p>Next I loop through all the pixels and put them in a 2D array format, shown below: </p><pre style='color:#d1d1d1;background:#000000;'>AV <span style='color:#d2cd86; '>*</span> construct_p_matrix <span style='color:#d2cd86; '>(</span> SDL_Surface <span style='color:#d2cd86; '>*</span>surface <span style='color:#d2cd86; '>)</span>
-<span style='color:#b060b0; '>{</span>
-    AV <span style='color:#d2cd86; '>*</span> matrix <span style='color:#d2cd86; '>=</span> newAV<span style='color:#d2cd86; '>(</span><span style='color:#d2cd86; '>)</span><span style='color:#b060b0; '>;</span>
-     <span style='color:#e66170; font-weight:bold; '>int</span> i<span style='color:#d2cd86; '>,</span> j<span style='color:#b060b0; '>;</span>
-     <span style='color:#e66170; font-weight:bold; '>for</span><span style='color:#d2cd86; '>(</span>  i <span style='color:#d2cd86; '>=</span><span style='color:#008c00; '>0</span> <span style='color:#b060b0; '>;</span> i <span style='color:#d2cd86; '>&lt;</span> surface<span style='color:#d2cd86; '>-</span><span style='color:#d2cd86; '>></span>w<span style='color:#b060b0; '>;</span> i<span style='color:#d2cd86; '>+</span><span style='color:#d2cd86; '>+</span><span style='color:#d2cd86; '>)</span>
-      <span style='color:#b060b0; '>{</span>
-        AV <span style='color:#d2cd86; '>*</span> matrix_row <span style='color:#d2cd86; '>=</span> newAV<span style='color:#d2cd86; '>(</span><span style='color:#d2cd86; '>)</span><span style='color:#b060b0; '>;</span>
-        <span style='color:#e66170; font-weight:bold; '>for</span><span style='color:#d2cd86; '>(</span> j <span style='color:#d2cd86; '>=</span><span style='color:#008c00; '>0</span> <span style='color:#b060b0; '>;</span> j <span style='color:#d2cd86; '>&lt;</span> surface<span style='color:#d2cd86; '>-</span><span style='color:#d2cd86; '>></span>h<span style='color:#b060b0; '>;</span> j<span style='color:#d2cd86; '>+</span><span style='color:#d2cd86; '>+</span><span style='color:#d2cd86; '>)</span>
-        <span style='color:#b060b0; '>{</span>
-           av_push<span style='color:#d2cd86; '>(</span>matrix_row<span style='color:#d2cd86; '>,</span> get_pixel32<span style='color:#d2cd86; '>(</span>surface<span style='color:#d2cd86; '>,</span> i<span style='color:#d2cd86; '>,</span>j<span style='color:#d2cd86; '>)</span> <span style='color:#d2cd86; '>)</span><span style='color:#b060b0; '>;</span>
-        <span style='color:#b060b0; '>}</span>
-        av_push<span style='color:#d2cd86; '>(</span>matrix<span style='color:#d2cd86; '>,</span> newRV_noinc<span style='color:#d2cd86; '>(</span><span style='color:#d2cd86; '>(</span>SV<span style='color:#d2cd86; '>*</span><span style='color:#d2cd86; '>)</span> matrix_row<span style='color:#d2cd86; '>)</span> <span style='color:#d2cd86; '>)</span><span style='color:#b060b0; '>;</span>
-      <span style='color:#b060b0; '>}</span>
-
- <span style='color:#e66170; font-weight:bold; '>return</span> matrix<span style='color:#b060b0; '>;</span>
-<span style='color:#b060b0; '>}</span>
-</pre><br />
-<p>You can see the complete <a href="http://github.com/kthakore/SDL_perl/blob/7ee1a1a7f162080a6fa5274e95b80961486e21e5/src/SDLx/Surface.xs">here</a>.</p><br />
-<p>In Perl I can do a get access on this pixel using: </p><br />
+As you know I have received a TPF grant to write a SDL Perl Manual.<br />
+<a href="http://www.blogger.com/goog_716654272"><br />
+</a><br />
+<a href="http://news.perlfoundation.org/2010/08/2010q3-grant-proposal-manual-f.html">http://news.perlfoundation.org/2010/08/2010q3-grant-proposal-manual-f.html</a><br />
 <br />
-<pre style='color:#d1d1d1;background:#000000;'><span style='color:#e66170; font-weight:bold; '>my</span> $surf32_matrix <span style='color:#d2cd86; '>=</span> <span style='color:#904050; '>SDLx</span><span style='color:#d2cd86; '>::</span><span style='color:#904050; '>Surface</span><span style='color:#d2cd86; '>:</span><span style='color:#d2cd86; '>:</span>pixel_array<span style='color:#d2cd86; '>(</span>$screen_surface<span style='color:#d2cd86; '>)</span><span style='color:#b060b0; '>;</span>
-   <span style='color:#e66170; font-weight:bold; '>print</span> <span style='color:#e66170; font-weight:bold; '>unpack</span> <span style='color:#00c4c4; '>'b*'</span><span style='color:#d2cd86; '>,</span> $surf32_matrix<span style='color:#d2cd86; '>-></span><span style='color:#d2cd86; '>[</span><span style='color:#00a800; '>0</span><span style='color:#d2cd86; '>]</span><span style='color:#d2cd86; '>[</span><span style='color:#00a800; '>0</span><span style='color:#d2cd86; '>]</span><span style='color:#b060b0; '>;</span> <span style='color:#9999a9; '># pixel value at x = 0 and y =0</span>
-<span style='color:#9999a9; '>#OUTPUT:</span>
-<span style='color:#9999a9; '># 11111111000000000000000000000000</span>
-</pre><br />
-<p>The structure of the PV is using Devel::Peek is : </p><br />
-<pre style='color:#d1d1d1;background:#000000;'><span style='color:#e66170; font-weight:bold; '>print</span> Dump $surf32_matrix<span style='color:#d2cd86; '>-></span><span style='color:#d2cd86; '>[</span><span style='color:#00a800; '>0</span><span style='color:#d2cd86; '>]</span><span style='color:#d2cd86; '>[</span><span style='color:#00a800; '>0</span><span style='color:#d2cd86; '>]</span><span style='color:#b060b0; '>;</span>
-<span style='color:#9999a9; '>#OUTPUT:</span>
-<span style='color:#9999a9; '>#SV = PV(0xed0dbc) at 0xeb5344</span>
-<span style='color:#9999a9; '>#  REFCNT = 1</span>
-<span style='color:#9999a9; '>#  FLAGS = (POK,pPOK)</span>
-<span style='color:#9999a9; '>#  PV = 0x9e04ac "\0\0\377\0"</span>
-<span style='color:#9999a9; '>#  CUR = 4</span>
-<span style='color:#9999a9; '>#  LEN = 4</span>
-</pre><br />
-<p>The problem is in setting the value of this pointer value. I have tried the following things with no success:</p><br />
-<pre style='color:#d1d1d1;background:#000000;'><span style='color:#e66170; font-weight:bold; '>if</span> <span style='color:#d2cd86; '>(</span> <span style='color:#904050; '>SDL</span><span style='color:#d2cd86; '>::</span><span style='color:#904050; '>Video</span><span style='color:#d2cd86; '>:</span><span style='color:#d2cd86; '>:</span>MUSTLOCK<span style='color:#d2cd86; '>(</span>$screen_surface<span style='color:#d2cd86; '>)</span> <span style='color:#d2cd86; '>)</span> <span style='color:#b060b0; '>{</span>
-    <span style='color:#e66170; font-weight:bold; '>return</span> <span style='color:#e66170; font-weight:bold; '>if</span> <span style='color:#d2cd86; '>(</span> <span style='color:#904050; '>SDL</span><span style='color:#d2cd86; '>::</span><span style='color:#904050; '>Video</span><span style='color:#d2cd86; '>:</span><span style='color:#d2cd86; '>:</span>lock_surface<span style='color:#d2cd86; '>(</span>$screen_surface<span style='color:#d2cd86; '>)</span> <span style='color:#d2cd86; '>&lt;</span> <span style='color:#00a800; '>0</span> <span style='color:#d2cd86; '>)</span><span style='color:#b060b0; '>;</span> <span style='color:#9999a9; '>#required for pixel operations</span>
-<span style='color:#b060b0; '>}</span>
-
-<span style='color:#9999a9; '>#USING pack</span>
-
-<span style='color:#e66170; font-weight:bold; '>my</span> $green <span style='color:#d2cd86; '>=</span> <span style='color:#e66170; font-weight:bold; '>pack</span> <span style='color:#00c4c4; '>'b*'</span><span style='color:#d2cd86; '>,</span> <span style='color:#00c4c4; '>'11111111000000000000000000000000'</span><span style='color:#b060b0; '>;</span>
-<span style='color:#e66170; font-weight:bold; '>substr</span><span style='color:#d2cd86; '>(</span> $surf32_matrix<span style='color:#d2cd86; '>-></span><span style='color:#d2cd86; '>[</span><span style='color:#00a800; '>0</span><span style='color:#d2cd86; '>]</span><span style='color:#d2cd86; '>[</span><span style='color:#00a800; '>0</span><span style='color:#d2cd86; '>]</span><span style='color:#d2cd86; '>,</span> <span style='color:#00a800; '>0</span><span style='color:#d2cd86; '>,</span> <span style='color:#00a800; '>8</span> <span style='color:#d2cd86; '>*</span> <span style='color:#00a800; '>4</span><span style='color:#d2cd86; '>,</span> $green<span style='color:#d2cd86; '>)</span><span style='color:#b060b0; '>;</span> <span style='color:#9999a9; '>#no change</span>
-<span style='color:#9999a9; '>#substr( $surf32_matrix->[0][0], 0, 8 * 4, 0xFF000000); segfault</span>
-<span style='color:#e66170; font-weight:bold; '>substr</span><span style='color:#d2cd86; '>(</span> ${$surf32_matrix<span style='color:#d2cd86; '>-></span><span style='color:#d2cd86; '>[</span><span style='color:#00a800; '>0</span><span style='color:#d2cd86; '>]</span><span style='color:#d2cd86; '>[</span><span style='color:#00a800; '>0</span><span style='color:#d2cd86; '>]</span>}<span style='color:#d2cd86; '>,</span> <span style='color:#00a800; '>0</span><span style='color:#d2cd86; '>,</span> <span style='color:#00a800; '>8</span> <span style='color:#d2cd86; '>*</span> <span style='color:#00a800; '>4</span><span style='color:#d2cd86; '>,</span> <span style='color:#00a800; '>0xFF000000</span><span style='color:#d2cd86; '>)</span><span style='color:#b060b0; '>;</span> <span style='color:#9999a9; '>#no change</span>
-<span style='color:#9999a9; '>#$surf32_matrix->[0][0] = $green; SEGFAULT's cannot write to memory</span>
-${$surf32_matrix<span style='color:#d2cd86; '>-></span><span style='color:#d2cd86; '>[</span><span style='color:#00a800; '>0</span><span style='color:#d2cd86; '>]</span><span style='color:#d2cd86; '>[</span><span style='color:#00a800; '>0</span><span style='color:#d2cd86; '>]</span>} <span style='color:#d2cd86; '>=</span> $green<span style='color:#b060b0; '>;</span> <span style='color:#9999a9; '>#no change</span>
-
-
-<span style='color:#904050; '>SDL</span><span style='color:#d2cd86; '>::</span><span style='color:#904050; '>Video</span><span style='color:#d2cd86; '>:</span><span style='color:#d2cd86; '>:</span>unlock_surface<span style='color:#d2cd86; '>(</span>$screen_surface<span style='color:#d2cd86; '>)</span>
-  <span style='color:#e66170; font-weight:bold; '>if</span> <span style='color:#d2cd86; '>(</span> <span style='color:#904050; '>SDL</span><span style='color:#d2cd86; '>::</span><span style='color:#904050; '>Video</span><span style='color:#d2cd86; '>:</span><span style='color:#d2cd86; '>:</span>MUSTLOCK<span style='color:#d2cd86; '>(</span>$screen_surface<span style='color:#d2cd86; '>)</span> <span style='color:#d2cd86; '>)</span><span style='color:#b060b0; '>;</span>
-</pre><br />
-<p>You can see an example <a href="http://paste.scsys.co.uk/45111">here</a>.</p><br />
-<p>Any help will be greatly appreciated. </p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3102167581424744259-1929043568015240773?l=yapgh.blogspot.com' alt='' /></div>
-<p><a href="http://feedads.g.doubleclick.net/~a/1Rx7lBLzyC2ksXyZwl9Q_nlI6iE/0/da"><img src="http://feedads.g.doubleclick.net/~a/1Rx7lBLzyC2ksXyZwl9Q_nlI6iE/0/di" border="0" ismap="true"></img></a><br/>
-<a href="http://feedads.g.doubleclick.net/~a/1Rx7lBLzyC2ksXyZwl9Q_nlI6iE/1/da"><img src="http://feedads.g.doubleclick.net/~a/1Rx7lBLzyC2ksXyZwl9Q_nlI6iE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/YetAnotherPerlGameHackeryapgh/~4/q5F5dgfg5Fg" height="1" width="1"/></div></div>
\ No newline at end of file
+<a href="http://news.perlfoundation.org/2010/08/accepted-grants-for-2010q3.html">http://news.perlfoundation.org/2010/08/accepted-grants-for-2010q3.html</a><br />
+<br />
+I have been a bit busy with that and not been able to update my blog. Anyway here are some of the back dated Grant Updates. These updates where also posted on <a href="http://news.perlfoundation.org/">http://news.perlfoundation.org/</a><br />
+<br />
+<br />
+<a name='more'></a><br />
+<br />
+<div style="text-align: center;">REPORT 1: Sept 2010</div><br />
+<ul><li>1st drafts  <ul><li>Preface </li>
+<li>Chapter 2: First SDL Application</li>
+</ul></li>
+<li>Started work on Chapter 3: Drawing</li>
+<li>Outlines for the first 7 chapters have been completed</li>
+<li>Book build framework has been setup</li>
+<li>Released SDL 2.514 (2.515 will be released on 16th of September) <ul><li>This code is the one that will be used in the book for chapter 02</li>
+</ul></li>
+<li>Got more of the Drawing chapter done (It will be done by the end of the week)       </li>
+<li>Added several more code examples for other chapters</li>
+</ul>Progress: 2.75 chapters / 11 chapters = approx 25%<br />
+Kartik's work can be followed at:<br />
+<ul><li><a href="http://github.com/PerlGameDev/SDL_Manual">http://github.com/PerlGameDev/SDL_Manual</a></li>
+<li><a href="http://sdlperl.ath.cx/releases/SDL_Manual.pdf">http://sdlperl.ath.cx/releases/SDL_Manual.pdf</a></li>
+</ul><br />
+<br />
+<div style="text-align: center;">REPORT 2: October 2010</div><div style="text-align: center;"><br />
+</div><div style="text-align: left;">Since last time:<br />
+<ul><li>We have released SDL 2.518 <ul><li>Game Loop support completed</li>
+</ul></li>
+</ul>Chapters:<br />
+<ul><li>2nd Drafts for: <ul><li>Preface to Game Loop ( Chapter 0 - Chapter 04)</li>
+</ul></li>
+<li>Chapters completed: 5/11 =&gt; 45%</li>
+</ul>Extra:<br />
+<ul><li>cfedde has made a script to extract code listings for readers to try examples with out having to retype them.</li>
+</ul>Coments:<br />
+<ul><li>I am receiving a lot more help from the community, most notable from cfedde for proofreading.</li>
+<li>I will be fleshing out the next 6 chapters shortly and work will begin on them soon</li>
+<li>I am pleased with the progress so far, and I feel the quality is improving due to the pacing.</li>
+</ul>Our work can be seen at:<br />
+<ul><li><a href="http://sdlperl.ath.cx/releases/SDL_Manual.pdf">http://sdlperl.ath.cx/releases/SDL_Manual.pdf</a></li>
+<li><a href="http://sdlperl.ath.cx/releases/SDL_Manual.html">http://sdlperl.ath.cx/releases/SDL_Manual.html</a></li>
+<li><a href="http://github.com/PerlGameDev/SDL_Manual">http://github.com/PerlGameDev/SDL_Manual</a></li>
+</ul></div><br />
+<div style="text-align: center;">REPORT 3: November 2010</div><div style="text-align: left;"><br />
+This is the progress so far:<br />
+<br />
+- SDL 2.523 Releases:<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Adds stability and better memory management for the game loop<br />
+<br />
+- 2 chapters have been completed <br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Pong Chapter (Contributed by garu)<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Additional Modules<br />
+- 1 extra chapter has been added<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Puzz(le) Chapter (Contributed by Blaizer)<br />
+<br />
+- 2 Chapters are in the Works<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Tetris Code has been mostly done (contributed by FROGGS)<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Needs to be fixed <br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Needs write up<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Sound and Music Effects code is done<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Needs to be fixed<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Needs write up<br />
+<br />
+Our work can be seen at:</div><div style="text-align: left;"><a href="http://sdlperl.ath.cx/releases/SDL_Manual.pdf">http://sdlperl.ath.cx/releases/SDL_Manual.pdf</a></div><div style="text-align: left;"><a href="http://sdlperl.ath.cx/releases/SDL_Manual.html">http://sdlperl.ath.cx/releases/SDL_Manual.html</a></div><div style="text-align: left;"><a href="http://github.com/PerlGameDev/SDL_Manual">http://github.com/PerlGameDev/SDL_Manual</a></div><div style="text-align: left;"></div><div style="text-align: left;"></div><div style="text-align: left;"><br />
+Regards,<br />
+YAPGH</div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3102167581424744259-4413645254021668635?l=yapgh.blogspot.com' alt='' /></div>
+<p><a href="http://feedads.g.doubleclick.net/~a/rCHqQ4GfQzQ_w9cl8yTT7oNQNJ8/0/da"><img src="http://feedads.g.doubleclick.net/~a/rCHqQ4GfQzQ_w9cl8yTT7oNQNJ8/0/di" border="0" ismap="true"></img></a><br/>
+<a href="http://feedads.g.doubleclick.net/~a/rCHqQ4GfQzQ_w9cl8yTT7oNQNJ8/1/da"><img src="http://feedads.g.doubleclick.net/~a/rCHqQ4GfQzQ_w9cl8yTT7oNQNJ8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/YetAnotherPerlGameHackeryapgh/~4/XruRd8WgjyQ" height="1" width="1"/></div></div>
\ No newline at end of file