<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>lautr.com &#187; zend framework</title>
	<atom:link href="http://www.lautr.com/category/zend-framework/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lautr.com</link>
	<description>Hannes Blog for Development and Stuff besides</description>
	<lastBuildDate>Thu, 19 Jan 2012 17:58:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>simple image view helper for zend framework</title>
		<link>http://www.lautr.com/simple-image-view-helper-for-zend-framework/</link>
		<comments>http://www.lautr.com/simple-image-view-helper-for-zend-framework/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 07:46:28 +0000</pubDate>
		<dc:creator>Hannes</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[gd2]]></category>
		<category><![CDATA[helper]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[view]]></category>
		<category><![CDATA[zf]]></category>

		<guid isPermaLink="false">http://www.lautr.com/?p=288</guid>
		<description><![CDATA[This Helper I use to store and resize Images (external or not) &#8211; it uses GD so make sure to have it, of course this is just an example, so you must change the structure of paths/URLs to your needs. &#8230; <a href="http://www.lautr.com/simple-image-view-helper-for-zend-framework/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This Helper I use to store and resize Images (external or not) &#8211; it uses GD so make sure to have it, of course this is just an example, so you must change the structure of paths/URLs to your needs.</p>
<p><span id="more-288"></span></p>
<pre class="brush: php">

class Zend_View_Helper_Images
{
private $_name;
private $_source;
static private $_webpath;
static private $_fspath;

public function __construct() {
if(null == $this-&gt;_fspath){
$this-&gt;_fspath = str_replace(&#039;application&#039;,&#039;&#039;,APPLICATION_PATH).&quot;public/images/tumbs/&quot;;
$this-&gt;_webpath = &quot;/images/thumbs/&quot;;
}
}

public function scale($x = false,$y = false)
{

if(!file_exists($this-&gt;_fspath.&#039;x&#039;.$x.&#039;y&#039;.$y.$this-&gt;_name)){
$infos = getimagesize($this-&gt;_source);

switch($infos[&#039;mime&#039;]) {
case &quot;image/pjpeg&quot;:
case &quot;image/jpeg&quot;:
case &quot;image/jpg&quot;:
$image=imagecreatefromjpeg($this-&gt;_source);
break;
case &quot;image/gif&quot;:
$image=imagecreatefromgif($this-&gt;_source);
break;
case &quot;image/png&quot;:
case &quot;image/x-png&quot;:
$image=imagecreatefrompng($this-&gt;_source);
break;
}
$newImage = imagecreatetruecolor($x,$y);
imagecopyresampled($newImage,$image,0,0,0,0,$x,$y,$infos[0],$infos[1]);

imagejpeg($newImage,$this-&gt;_fspath.&#039;x&#039;.$x.&#039;y&#039;.$y.$this-&gt;_name);
imagedestroy($newImage);
}

return $this-&gt;_webpath.&#039;x&#039;.$x.&#039;y&#039;.$y.$this-&gt;_name;

}

public function images($imageurl)
{
$this-&gt;_source = $imageurl;
preg_match(&#039;#[^/]+\.[\w]+$#&#039;,$imageurl,$match);
$this-&gt;_name = $match[0];
return $this;
}
}
</pre>
<p>in that cas the Implementation looks like:</p>
<pre class="brush: php">

&lt;img src=&quot;&lt;?= $this-&gt;images($this-&gt;some_image_url)-&gt;scale(150,200) ?&gt;&quot; alt=&quot;&quot;/&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.lautr.com/simple-image-view-helper-for-zend-framework/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>XML-RPC &#8220;read timeout&#8221; after 10 Seconds with Zend_XmlRpc_Client</title>
		<link>http://www.lautr.com/xml-rpc-read-timeout-after-10-seconds-with-zend_xmlrpc_client/</link>
		<comments>http://www.lautr.com/xml-rpc-read-timeout-after-10-seconds-with-zend_xmlrpc_client/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 13:44:19 +0000</pubDate>
		<dc:creator>Hannes</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[timeout]]></category>
		<category><![CDATA[xml rpc]]></category>
		<category><![CDATA[Zend_XmlRpc_Client]]></category>

		<guid isPermaLink="false">http://www.lautr.com/?p=194</guid>
		<description><![CDATA[Recently i had a small Problem with the Service of a Partner we use for a new Project, it worked all together just fine, but just was a little bit slow at times, so i often got a Red Timeout after 10 Seconds. <a href="http://www.lautr.com/xml-rpc-read-timeout-after-10-seconds-with-zend_xmlrpc_client/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recently i had a small Problem with the Service of a Partner we use for a new Project, it worked all together just fine, but just was a little bit slow at times, so i often got a Red Timeout after 10 Seconds.<br />
All you&#8217;ve to do here is, of course, increase the timeout by configuring the Zend_Http_Client that is used here, unfortunately you ether have to set it in every method you use like:</p>
<pre class="brush: php">
$this-&gt;_httpClient-&gt;setConfig(array(&#039;timeout&#039; =&gt; &#039;60&#039;));
</pre>
<p>(if you like me has an own class that extends from Zend_XmlRpc_Client to do your bidding). O</p>
<p>r must supply a full new, configured HTTP Client like:</p>
<pre class="brush: php">
$httpClient = new Zend_Http_Client;
$httpClient-&gt;setConfig(array(&#039;timeout&#039; =&gt; &#039;60&#039;));
$xmlrpcClient = new Zend_XmlRpc_Client(&#039;http://www.foobar.com/service&#039;,$httpClient);
</pre>
<p>(or something along those lines)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lautr.com/xml-rpc-read-timeout-after-10-seconds-with-zend_xmlrpc_client/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>zend framework xmlrpc two element structure</title>
		<link>http://www.lautr.com/zend-framework-xmlrpc-two-element-structure/</link>
		<comments>http://www.lautr.com/zend-framework-xmlrpc-two-element-structure/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 16:07:52 +0000</pubDate>
		<dc:creator>Hannes</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[headache]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xmlrpc]]></category>

		<guid isPermaLink="false">http://www.lautr.com/?p=144</guid>
		<description><![CDATA[Well, i just had a lot of Fun with xmlrpc two element structure, first the request failed completely - i figured out i had to disable the skip system lookup because the other server couldn't handle it. <a href="http://www.lautr.com/zend-framework-xmlrpc-two-element-structure/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Well, i just had a lot of Fun with xmlrpc two element structure, first the request failed completely &#8211; i figured out i had to disable the skip system lookup because the other server couldn&#8217;t handle it.</p>
<pre class="brush: php">
$client = new Zend_XmlRpc_Client(&#039;http://www.example.com/xmlrpc.php&#039;);
$client-&gt;setSkipSystemLookup(true);
</pre>
<p>Now i had the Problem that zend reduced my request from two levels to one level and so the server couln&#8217;t interpret it anymore, for example:</p>
<pre class="brush: xml">
&lt;struct&gt;
&lt;params&gt;
&lt;param&gt;&lt;value&gt;
&lt;struct&gt;
&lt;member&gt;
&lt;name&gt;lowerBound&lt;/name&gt;
&lt;value&gt;&lt;int&gt;18&lt;/int&gt;&lt;/value&gt;
&lt;/member&gt;
&lt;member&gt;
&lt;name&gt;upperBound&lt;/name&gt;
&lt;value&gt;&lt;int&gt;139&lt;/int&gt;&lt;/value&gt;
&lt;/member&gt;
&lt;/struct&gt;
&lt;/value&gt;&lt;/param&gt;
&lt;/params&gt;
</pre>
<p>became</p>
<pre class="brush: xml">
&lt;params&gt;
&lt;param&gt;
&lt;value&gt;&lt;int&gt;18&lt;/int&gt;&lt;/value&gt;
&lt;/param&gt;
&lt;param&gt;
&lt;value&gt;&lt;int&gt;139&lt;/int&gt;&lt;/value&gt;
&lt;/param&gt;
&lt;/params&gt;
</pre>
<p>the Solution is simple, but took my a while, instead of giving him an array like</p>
<pre class="brush: php">
$response = $client-&gt;call(&#039;ra.order&#039;,array(&#039;lowerBound&#039; =&gt; 18,&#039;upperBound&#039; =&gt; 139));
</pre>
<p>the array must be wrapped in another array</p>
<pre class="brush: php">
$response = $client-&gt;call(&#039;ra.order&#039;,array(array(&#039;lowerBound&#039; =&gt; 18,&#039;upperBound&#039; =&gt; 139)));
</pre>
<p>i wish i knew why&#8230; well maybe i don&#8217;t&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lautr.com/zend-framework-xmlrpc-two-element-structure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework Tidy (HTML) View Helper</title>
		<link>http://www.lautr.com/zend-framework-tidy-html-view-helper/</link>
		<comments>http://www.lautr.com/zend-framework-tidy-html-view-helper/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 10:26:19 +0000</pubDate>
		<dc:creator>Hannes</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[helper]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[tidy]]></category>
		<category><![CDATA[valid]]></category>
		<category><![CDATA[view]]></category>
		<category><![CDATA[view helper]]></category>

		<guid isPermaLink="false">http://www.lautr.com/?p=141</guid>
		<description><![CDATA[In a recent Project i have to deal with some external content which has a good quality when it comes to the content itself, but unfortunately the html markup is rather poor, so i decided to include tidy to clean it up, and out of convenience make it in a view helper. <a href="http://www.lautr.com/zend-framework-tidy-html-view-helper/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In a recent Project i have to deal with some external content which has a good quality when it comes to the content itself, but unfortunately the html markup is rather poor, so i decided to include tidy to clean it up, and out of convenience make it in a view helper:</p>
<p>/var/www/zend-framework/project-name/application/views/helpers/Tidy.php :</p>
<pre class="brush: php">
class Zend_View_Helper_Tidy extends Zend_View_Helper_Abstract
{
    private $_config = array();

    public function __construct(){
        $this-&gt;_config[&quot;show-body-only&quot;]=true;
        $this-&gt;_config[&quot;wrap&quot;]=0;
        $this-&gt;_config[&quot;wrap-attributes&quot;]=0;
        $this-&gt;_config[&quot;preserve-entities&quot;]=1;
        $this-&gt;_config[&quot;output-xhtml&quot;]=1;
        $this-&gt;_config[&quot;new-inline-tags&quot;]=&#039;go&#039;;
        $this-&gt;_config[&#039;fix-bad-comments&#039;]=&#039;no&#039;;
        $this-&gt;_config[&#039;hide-comments&#039;]=&#039;no&#039;;
        $this-&gt;_config[&#039;drop-empty-paras&#039;]=&#039;yes&#039;;
    }
    public function tidy($html,$charset = &#039;utf8&#039;){
        return tidy_repair_string($html,$this-&gt;_config,$charset);
    }
}
</pre>
<p>/var/www/zend-framework/project-name/application/views/scripts/output.phtml :</p>
<pre class="brush: php">
&lt;?= $this-&gt;tidy($html); ?&gt;
</pre>
<p>its an rather simple script and could probably have some version checking (tidy use variates from version to version when it comes to setting the char type so make sure which version you have installed).</p>
<p><a href="http://tidy.sourceforge.net/docs/quickref.html">A reference to all tidy options can be found here.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lautr.com/zend-framework-tidy-html-view-helper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>modifying the zend framework router, an example for a simple website</title>
		<link>http://www.lautr.com/modifying-the-zend-framework-router-an-example-for-a-simple-website/</link>
		<comments>http://www.lautr.com/modifying-the-zend-framework-router-an-example-for-a-simple-website/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 10:09:40 +0000</pubDate>
		<dc:creator>Hannes</dc:creator>
				<category><![CDATA[zend framework]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[regexp]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[zend]]></category>

		<guid isPermaLink="false">http://www.lautr.com/?p=123</guid>
		<description><![CDATA[I'm currently working on a new Site on the base of zend framework (again ;) ). But since the normal url Structure (controller/action) has a little bit of an overhead i looked into how to modify the router. To my surprise i found out that is extremely simple. I decided to go with the "Zend_Controller_Router_Route_Regex" as the name suggests it uses regexp... <a href="http://www.lautr.com/modifying-the-zend-framework-router-an-example-for-a-simple-website/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently working on a new Site on the base of zend framework (again <img src='http://static.lautr.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ). But since the normal url Structure (controller/action) has a little bit of an overhead i looked into how to modify the router. To my surprise<a href="http://framework.zend.com/manual/de/zend.controller.router.html#zend.controller.router.routes.regex"> i found out that is extremely simple</a>. I decided to go with the &#8220;Zend_Controller_Router_Route_Regex&#8221; as the name suggests it uses regexp.</p>
<p>The Url structure i was aiming for is this:</p>
<p>http://www.example.com</p>
<p>http://www.example.com/some-article.html</p>
<p>http://www.example.com/somepage</p>
<p>http://www.example.com/taxonomyvocabulary/taxonomyelement</p>
<p>For that purpose i added the following to my bootstrap.php</p>
<pre class="brush: php">
$ctrl  = Zend_Controller_Front::getInstance();
$router = $ctrl-&gt;getRouter(); // returns a rewrite router by default

$route[&#039;index&#039;] = new Zend_Controller_Router_Route_Regex(
&#039;&#039;,
array(
&#039;controller&#039; =&gt; &#039;index&#039;,
&#039;action&#039;     =&gt; &#039;index&#039;
)
);
$route[&#039;page&#039;] = new Zend_Controller_Router_Route_Regex(
&#039;([^/\.]+)&#039;,
array(
&#039;controller&#039; =&gt; &#039;index&#039;,
&#039;action&#039;     =&gt; &#039;page&#039;
)
);
$route[&#039;article&#039;] = new Zend_Controller_Router_Route_Regex(
&#039;([^\.]+)\.html&#039;,
array(
&#039;controller&#039; =&gt; &#039;index&#039;,
&#039;action&#039;     =&gt; &#039;article&#039;
)
);
$route[&#039;taxonomy&#039;] = new Zend_Controller_Router_Route_Regex(
&#039;([^/\.]+)/([^/\.]+)&#039;,
array(
&#039;controller&#039; =&gt; &#039;index&#039;,
&#039;action&#039;     =&gt; &#039;taxonomy&#039;
)
);
$route[&#039;error404&#039;] = new Zend_Controller_Router_Route_Regex(
&#039;.*&#039;,
array(
&#039;controller&#039; =&gt; &#039;index&#039;,
&#039;action&#039;     =&gt; &#039;error404&#039;
)
);
$router-&gt;addRoute(&#039;error404&#039;,   $route[&#039;error404&#039;]);
$router-&gt;addRoute(&#039;index&#039;,      $route[&#039;index&#039;]);
$router-&gt;addRoute(&#039;page&#039;,       $route[&#039;page&#039;]);
$router-&gt;addRoute(&#039;article&#039;,    $route[&#039;article&#039;]);
$router-&gt;addRoute(&#039;taxonomy&#039;,   $route[&#039;taxonomy&#039;]);
</pre>
<p>Not that zend automatically adds a ^ to the start and an $ to the end of any regexp so there is no need to do that. I also added an 404 Action to take care of any Request that does not match one of the given patterns, the routes are checked in the order they are added, the last match is used, so i added the 404 Action at first.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lautr.com/modifying-the-zend-framework-router-an-example-for-a-simple-website/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Retrieving Top 10 query&#8217;s for my internal Search using Google Analytics and Zend Framework</title>
		<link>http://www.lautr.com/retrieving-top-10-querys-for-my-internal-search-using-google-analytics-and-zend-framework/</link>
		<comments>http://www.lautr.com/retrieving-top-10-querys-for-my-internal-search-using-google-analytics-and-zend-framework/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 12:04:39 +0000</pubDate>
		<dc:creator>Hannes</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[analytics]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[pagepath]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[Zend_Gdata]]></category>

		<guid isPermaLink="false">http://www.lautr.com/?p=67</guid>
		<description><![CDATA[The intention is, to get the top internal searches for my Site using the Google Analytics API , so i dont have to track it myself  (so i could maybe use them to Build a Search-Cloud - SEO ..woohoo). But this can basicly be modified to fit A LOT of needs. <a href="http://www.lautr.com/retrieving-top-10-querys-for-my-internal-search-using-google-analytics-and-zend-framework/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The intention is, to filter the top internal searches for my Site using the Google Analytics API and Zend Framework , so i don&#8217;t have to track it myself  (so i could maybe use them to Build a Search-Cloud &#8211; SEO ..woohoo). But this can basically be modified to fit A LOT of needs.</p>
<p>Well first, unfortunately the <a href="http://framework.zend.com/wiki/display/ZFPROP/Zend_Gdata_Analytics+-+Daniel+Hartmann" target="_blank">Zend Framework  Zend_Gdata_Analytics Component</a> is just a proposal at the moment, but it works anyhow using Zend_Gdata. First we need to open an connection aka get a client:</p>
<pre class="brush: php">
$email = &#039;user@googlemail.de&#039;;
$pass = &#039;pwpwpwpwpw&#039;;

$client = Zend_Gdata_ClientLogin::getHttpClient($email, $pass, &quot;analytics&quot;);
$gdClient = new Zend_Gdata($client);
</pre>
<p>Then we build our Report, if you worked with custom reports this you will be kindaaa familiar with this, basically you work with dimensions and metrics, which represents different kind of values that you can request, combine, filter and search for. The basic Data Operation Stuff, you can find all the Information about the Dimensions and Metrics <a href="http://code.google.com/intl/en-US/apis/analytics/docs/gdata/gdataReferenceDimensionsMetrics.html" target="_blank">here</a> and how to work with them (especially how to handle the filter) <a href="http://code.google.com/apis/analytics/docs/gdata/gdataReferenceDataFeed.html" target="_blank">here</a>. The last parameter (&amp;ids=ga:xxxxxxxx) is the Table ID, you can (for example) se it when you are logged in to analytics &#8216;https://www.google.com/analytics/reporting/custom?id=xxxxxxx&#8217;.</p>
<pre class="brush: php">
$reportURL = &#039;https://www.google.com/analytics/feeds/data&#039; .
&#039;?start-date=2010-01-01&#039; .
&#039;&amp;amp;end-date=2010-01-31&#039; .
&#039;&amp;amp;dimensions=ga:pageTitle,ga:pagePath&#039; .
&#039;&amp;amp;metrics=ga:pageviews&#039; .
&#039;&amp;amp;sort=-ga:pageviews&#039; .
&#039;&amp;amp;filters=ga:pagePath%3D~&#039;.urlencode(&quot;/?s=&quot;).
&#039;&amp;amp;max-results=10&#039; .
&#039;&amp;amp;ids=ga:xxxxxxxx&#039;;

$results = $gdClient-&gt;getFeed($reportURL);
</pre>
<p>&#8230; and there you go, here is also an short example for a basic xml Output:</p>
<pre class="brush: php">
					$content = new XMLWriter;
					$content-&gt;openMemory();
					$content-&gt;startDocument( &#039;1.0&quot; encoding=&quot;ISO-8859-1&quot; standalone=&quot;yes&#039;);

					$highest = $results[0]-&gt;extensionElements[1]-&gt;extensionAttributes[&quot;value&quot;][&quot;value&quot;] ;

					$content-&gt;startElement(&#039;searches&#039;);
					foreach ($results as $rep) {
						$content-&gt;startElement(&#039;search&#039;);
							$content-&gt;writeAttribute(&#039;hits&#039;,$rep-&gt;extensionElements[1]-&gt;extensionAttributes[&quot;value&quot;][&quot;value&quot;]);
							$content-&gt;writeAttribute(&#039;rank&#039;,round($rep-&gt;extensionElements[1]-&gt;extensionAttributes[&quot;value&quot;][&quot;value&quot;]/($highest/7)));
							$content-&gt;writeCData(str_replace(&#039;/finder/1/&#039;,&#039;&#039;,$rep-&gt;extensionElements[0]-&gt;extensionAttributes[&quot;value&quot;][&quot;value&quot;]));
						$content-&gt;endElement();//e o Search
					}
					$content-&gt;endElement();//e o Searches
				} 

				$content-&gt;endDocument();

				header(&#039;Content-Type: text/xml; charset=iso-8859-1&#039;);
				print $content-&gt;outputMemory();
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.lautr.com/retrieving-top-10-querys-for-my-internal-search-using-google-analytics-and-zend-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using apc (User agent is rejected)
Database Caching 5/7 queries in 0.007 seconds using apc
Object Caching 491/491 objects using apc
Content Delivery Network via static.lautr.com

Served from: www.lautr.com @ 2012-02-06 02:30:35 -->
