<?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>Technical Archives - Reflective Data</title>
	<atom:link href="https://reflectivedata.com/category/technical/feed/" rel="self" type="application/rss+xml" />
	<link>https://reflectivedata.com/category/technical/</link>
	<description></description>
	<lastBuildDate>Mon, 22 May 2023 13:34:37 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://reflectivedata.com/wp-content/uploads/2016/09/cropped-new-favicon-2-32x32.png</url>
	<title>Technical Archives - Reflective Data</title>
	<link>https://reflectivedata.com/category/technical/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How to Query Google Analytics Data Using SQL</title>
		<link>https://reflectivedata.com/how-to-query-google-analytics-data-using-sql/</link>
					<comments>https://reflectivedata.com/how-to-query-google-analytics-data-using-sql/#comments</comments>
		
		<dc:creator><![CDATA[Jason Dolan]]></dc:creator>
		<pubDate>Fri, 30 Oct 2020 14:48:47 +0000</pubDate>
				<category><![CDATA[BigQuery]]></category>
		<category><![CDATA[Data Pipeline]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[Technical]]></category>
		<guid isPermaLink="false">http://reflectivedata.com/?p=6985</guid>

					<description><![CDATA[<p>SQL is the most popular language for professionals to communicate with databases and query data. Google Analytics is the most popular tool for digital analytics. How come there's no way to query Google Analytics data using SQL? In this article, we'll explore the solutions.</p>
<p>The post <a href="https://reflectivedata.com/how-to-query-google-analytics-data-using-sql/">How to Query Google Analytics Data Using SQL</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>SQL (pronounced &#8220;ess-que-el&#8221;) stands for Structured Query Language. SQL is a language used to communicate with databases. According to ANSI (American National Standards Institute), it is the standard language for relational database management systems. Most data analysts, data scientists and data engineers use SQL on daily basis to complete tasks related to ad-hoc queries, reporting and data visualization.</p>
<p>Google Analytics, on the other hand, is the most popular tool in the digital analytics world. It is used to keep track of marketing efforts, user behavior, traffic sources and more. The most common way to access data from Google Analytics is the web user interface. Alternative options include the <a href="https://developers.google.com/analytics/devguides/reporting/core/v4" target="_blank" rel="noopener noreferrer">Reporting API</a> or external tools like <a href="https://looker.com/" target="_blank" rel="noopener noreferrer">Looker</a> or <a href="https://datastudio.google.com/" target="_blank" rel="noopener noreferrer">Data Studio</a>.</p>
<p>What&#8217;s interesting, though, is that there is no way to use the most popular query language to query data from the most popular analytics platform. That&#8217;s right, you cannot query Google Analytics data using SQL.</p>
<p>This is no big deal for the more basic users just checking the built-in reports in the Google Analytics UI. It is, for sure, a limitation for power users working with tools like Python and use data in custom models or even feed it into machine learning algorithms and recommendation engines.</p>
<p>In this article, we&#8217;re going to cover the solutions that will enable you to query your Google Analytics data using SQL.</p>
<h2>Step 1 &#8211; Getting data into a database/data warehouse</h2>
<p>As mentioned above, there is, unfortunately, no way to query data directly from Google Analytics using SQL. This means that the first step is to get data into some sort of a relational database or a data warehouse that support SQL queries.</p>
<p>There are three options for sending Google Analytics data into some external data storage.</p>
<h3>1. Google Analytics 360 to BigQuery export</h3>
<p>If your company has the 360 (premium) version of Google Analytics then you can use its native BigQuery export feature. <a href="https://support.google.com/analytics/answer/3437618?hl=en" target="_blank" rel="noopener noreferrer">Here are the details</a> for setting this up. Keep in mind, though, that this solution will not work with the standard (free) version of Google Analytics.</p>
<h3>2. Google Analytics Parallel Tracking</h3>
<p>Google Analytics Parallel Tracking is a third party service that sends all of the raw hits into a data warehouse of your choice (i.e. BigQuery). These hits are then processed into sessions to provide a dataset similar to Google Analytics 360 export.</p>
<p>While this solution is not free, it will cost you only a small fraction of the cost of Google Analytics 360.</p>
<p><a href="http://reflectivedata.com/analytics-data-pipeline/from-google-analytics-to-bigquery/" target="_blank" rel="noopener noreferrer">Getting started with Google Analytics Parallel Tracking</a>.</p>
<h3>3. Export data using the API</h3>
<p>This is the most technical solution of the three. It leverages the<a href="https://developers.google.com/analytics/devguides/reporting/core/v4" target="_blank" rel="noopener noreferrer"> Google Analytics Reporting API</a> to pull data from Google Analytics and into your database or data warehouse.</p>
<p>One way to get started with this solution is to use the <a href="https://code.markedmondson.me/gago/" target="_blank" rel="noopener noreferrer">gago library</a> in Go language to communicate with the Reporting API. Then you need the code for writing this data into your database.</p>
<p>The limitations with data export solution are that you can&#8217;t query all of the metrics and dimensions at the same time, you&#8217;re still affected by the data collection and sampling limits of Google Analytics and a modification in your tracking system is required (custom dimensions for hit timestamp, hit type, sessions ID, client ID and more).</p>
<h2>Step 2 &#8211; Query Google Analytics data using SQL</h2>
<p>This depends a bit on the setup you used to send data into a database/data warehouse and the type of data warehouse being used. Since the most common option is <a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/" target="_blank" rel="noopener noreferrer">Parallel Tracking</a> and <a href="https://cloud.google.com/bigquery" target="_blank" rel="noopener noreferrer">Google BigQuery</a>, we are going to use these in our examples as well.</p>
<p>The simplest way you can run your first SQL query against your Google Analytics data stored in BigQuery is to go into the <a href="https://console.cloud.google.com/bigquery" target="_blank" rel="noopener noreferrer">BigQuery user interface</a> and choose the right dataset containing your Google Analytics data.</p>
<p>With parallel tracking, you will have your Google Analytics data stored in three separate tables.</p>
<ul>
<li>raw_hits</li>
<li>processed_hits</li>
<li>processed_sessions</li>
</ul>
<p>Depending on the type of query you want to run, choose the right table. Keep in mind that some of the information (bounce rate, geo-location etc.) isn&#8217;t available before hits are processed into sessions.</p>
<p>For example, we could write a simple SQL query like this and see the top 10 countries by the number of Google Analytics sessions.</p>
<figure id="attachment_7056" aria-describedby="caption-attachment-7056" style="width: 588px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.27-17_16_01.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img fetchpriority="high" decoding="async" class="size-full wp-image-7056" src="http://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.27-17_16_01.png" alt="Query Google Analytics data using SQL" width="588" height="669" /></a><figcaption id="caption-attachment-7056" class="wp-caption-text">Query Google Analytics data using SQL</figcaption></figure>
<p>Now, to make this query a bit more interesting, we might add in metrics like users and bounce rate. All doable with SQL, of course.</p>
<p>Notice how you can define your own rules for things like &#8220;bounce&#8221; and &#8220;bounce rate&#8221;.</p>
<figure id="attachment_7058" aria-describedby="caption-attachment-7058" style="width: 678px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.27-17_31_40.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img decoding="async" class="size-full wp-image-7058" src="http://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.27-17_31_40.png" alt="Query Google Analytics sessions, users and bounce rate using SQL" width="678" height="813" srcset="https://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.27-17_31_40.png 678w, https://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.27-17_31_40-584x700.png 584w" sizes="(max-width: 678px) 100vw, 678px" /></a><figcaption id="caption-attachment-7058" class="wp-caption-text">Query Google Analytics sessions, users and bounce rate using SQL</figcaption></figure>
<p>Pretty neat, right?</p>
<p>Using the BigQuery UI is good for testing your setup and quick ad-hoc queries. In most cases, though, you&#8217;ll probably use some sort of a BI tool. One of the popular options these days is Google Data Studio. So, let&#8217;s use this in our examples a well.</p>
<p>Google Data Studio is free and probably the easiest to get started with. That being said, it is still packed with useful features and makes creating interactive dashboards a fun and enjoyable process.</p>
<h3>Connecting BigQuery with Google Data Studio</h3>
<p>Google Data Studio, like many other BI tools, has a native integration for BigQuery as a data source.</p>
<figure id="attachment_7103" aria-describedby="caption-attachment-7103" style="width: 1063px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-15.02.02.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img decoding="async" class="size-full wp-image-7103" src="http://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-15.02.02.png" alt="Connect BigQuery to Google Data Studio" width="1063" height="824" srcset="https://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-15.02.02.png 1063w, https://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-15.02.02-700x543.png 700w, https://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-15.02.02-1024x794.png 1024w, https://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-15.02.02-768x595.png 768w" sizes="(max-width: 1063px) 100vw, 1063px" /></a><figcaption id="caption-attachment-7103" class="wp-caption-text">Connect BigQuery to Google Data Studio</figcaption></figure>
<p>While you can automatically pull all data in a certain table, in most cases it&#8217;s a better idea to use a custom SQL query.</p>
<p>Data Studio has this feature built-in as well.</p>
<figure id="attachment_7106" aria-describedby="caption-attachment-7106" style="width: 1128px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2020/10/screenshot-datastudio.google.com-2020.10.30-15_09_45.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-7106" src="http://reflectivedata.com/wp-content/uploads/2020/10/screenshot-datastudio.google.com-2020.10.30-15_09_45.png" alt="Custom SQL query in Data Studio" width="1128" height="721" srcset="https://reflectivedata.com/wp-content/uploads/2020/10/screenshot-datastudio.google.com-2020.10.30-15_09_45.png 1128w, https://reflectivedata.com/wp-content/uploads/2020/10/screenshot-datastudio.google.com-2020.10.30-15_09_45-700x447.png 700w, https://reflectivedata.com/wp-content/uploads/2020/10/screenshot-datastudio.google.com-2020.10.30-15_09_45-1024x655.png 1024w, https://reflectivedata.com/wp-content/uploads/2020/10/screenshot-datastudio.google.com-2020.10.30-15_09_45-768x491.png 768w" sizes="(max-width: 1128px) 100vw, 1128px" /></a><figcaption id="caption-attachment-7106" class="wp-caption-text">Custom SQL query in Data Studio</figcaption></figure>
<p>In our example, we&#8217;re going to analyze the results of an A/B test run using <a href="https://vwo.com/" target="_blank" rel="noopener noreferrer">VWO</a>. We&#8217;re using VWO&#8217;s <a href="https://help.vwo.com/hc/en-us/articles/360021308973-Integrating-VWO-with-Universal-Analytics-by-Using-Google-Tag-Manager-Custom-Events-">custom-event-based integration</a> to send experiment data into Google Analytics.</p>
<p>It&#8217;s always a good idea to try your query in the BigQuery&#8217;s query editor before implementing it in Data Studio.</p>
<figure id="attachment_7107" aria-describedby="caption-attachment-7107" style="width: 1134px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.30-15_18_28.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-7107" src="http://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.30-15_18_28.png" alt="Google Analytics VWO BigQuery" width="1134" height="982" srcset="https://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.30-15_18_28.png 1134w, https://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.30-15_18_28-700x606.png 700w, https://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.30-15_18_28-1024x887.png 1024w, https://reflectivedata.com/wp-content/uploads/2020/10/screenshot-console.cloud_.google.com-2020.10.30-15_18_28-768x665.png 768w" sizes="(max-width: 1134px) 100vw, 1134px" /></a><figcaption id="caption-attachment-7107" class="wp-caption-text">Google Analytics VWO BigQuery</figcaption></figure>
<p>Once we&#8217;re happy with the query and the results it returned, it&#8217;s time to put the query in Data Studio.</p>
<p>In Data Studio, we can start building all sorts of cool visualizations. For example this one for visualizing the funnels for Control and Variant 1 of our A/B test.</p>
<figure id="attachment_7110" aria-describedby="caption-attachment-7110" style="width: 1237px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-16.02.53.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-7110" src="http://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-16.02.53.png" alt="A/B test visualization Google Data Studio" width="1237" height="499" srcset="https://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-16.02.53.png 1237w, https://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-16.02.53-700x282.png 700w, https://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-16.02.53-1024x413.png 1024w, https://reflectivedata.com/wp-content/uploads/2020/10/Screenshot-2020-10-30-at-16.02.53-768x310.png 768w" sizes="(max-width: 1237px) 100vw, 1237px" /></a><figcaption id="caption-attachment-7110" class="wp-caption-text">A/B test visualization Google Data Studio</figcaption></figure>
<p>Data Studio is really flexible when it comes to building custom reports, interactive dashboards and quick visualizations. If you can&#8217;t find the right chart from the <a href="https://michaelhoweely.com/2019/04/14/an-overview-of-all-google-data-studio-chart-types-in-2019/" target="_blank" rel="noopener noreferrer">default chart types</a>, check out the <a href="https://developers.google.com/datastudio/visualization" target="_blank" rel="noopener noreferrer">community visualizations</a> or go ahead and <a href="https://developers.google.com/datastudio/visualization/define-config" target="_blank" rel="noopener noreferrer">build one</a> yourself.</p>
<h2>Conclusion</h2>
<p>Working with your Google Analytics data using SQL opens up a whole new world of analysis opportunities for your digital analytics data. You no longer have to use the metrics and concepts defined and pre-calculated by Google. Feel free to come up with your own rules for things like calculating bounce rate or defining a session.</p>
<p>To get started, you first need to transfer your Google Analytics data into a data warehouse that supports SQL queries. For example, Google BigQuery. There are a few ways you can send Google Analytics data into BigQuery, our recommended method is <a href="http://reflectivedata.com/analytics-data-pipeline/from-google-analytics-to-bigquery/" target="_blank" rel="noopener noreferrer">Parallel Tracking</a>. This will provide you with the most complete dataset, delivered in near-real-time and for a fraction of the cost of GA 360.</p>
<p>Once you have data in your database or data warehouse, you can start writing ad-hoc SQL queries right away. To take your productivity to a next level, we recommend running your queries and reports through a BI platform (i.e. Data Studio).</p>
<p>If you have any questions about analyzing your Google Analytics data using SQL or sending data into a data warehouse, feel free to ask them in the comments below.</p>
<p>The post <a href="https://reflectivedata.com/how-to-query-google-analytics-data-using-sql/">How to Query Google Analytics Data Using SQL</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://reflectivedata.com/how-to-query-google-analytics-data-using-sql/feed/</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
		<item>
		<title>How to Query and Analyze Google Analytics Data with BigQuery</title>
		<link>https://reflectivedata.com/how-to-query-and-analyze-google-analytics-data-with-bigquery/</link>
					<comments>https://reflectivedata.com/how-to-query-and-analyze-google-analytics-data-with-bigquery/#comments</comments>
		
		<dc:creator><![CDATA[Silver Ringvee]]></dc:creator>
		<pubDate>Wed, 15 Apr 2020 15:21:03 +0000</pubDate>
				<category><![CDATA[BigQuery]]></category>
		<category><![CDATA[Data Pipeline]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[Tools]]></category>
		<guid isPermaLink="false">http://reflectivedata.com/?p=3815</guid>

					<description><![CDATA[<p>BigQuery is an extremely powerful tool for analyzing massive sets of data. It's serverless, highly scalable and integrates seamlessly with most popular BI and data visualization tools like Data Studio, Tableau and Looker.</p>
<p>Working with Google Analytics data in BigQuery has mostly been a privilege of those having a 360 version of Google Analytics. Its hefty price tag, though, has made that list quite short.</p>
<p>The post <a href="https://reflectivedata.com/how-to-query-and-analyze-google-analytics-data-with-bigquery/">How to Query and Analyze Google Analytics Data with BigQuery</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>BigQuery is an extremely powerful tool for analyzing massive sets of data. It&#8217;s serverless, highly scalable and integrates seamlessly with most popular BI and data visualization tools like Data Studio, Tableau and Looker.</p>
<p>Working with Google Analytics data in BigQuery has mostly been a privilege of those having a 360 version of Google Analytics. Its hefty price tag, though, has made that list quite short.</p>
<p>With <a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/">Google Analytics Parallel Tracking Service</a> from Reflective Data, having access to Google Analytics data in BigQuery has become a lot more affordable. (you can get a quote from the previous link)</p>
<p>Now, regardless of whether you have Google Analytics 360, a Parallel Tracking system from Reflective Data or some other integration in place, the structure of the data in BigQuery is quite similar.</p>
<p>In this article, I&#8217;m giving you a tour of the features in BigQuery and some of the ways how you can leverage them when working with your Google Analytics data.</p>
<p>Take a look at <a href="http://reflectivedata.com/unsampled-hit-level-google-analytics-data-without-360/">this article</a> if you want to learn more about sending your Google Analytics data into BigQuery first.</p>
<p>In case you don&#8217;t have access to any BigQuery dataset containing Google Analytics data, you can check out the <a href="https://support.google.com/analytics/answer/7586738?hl=en" target="_blank" rel="noopener noreferrer">Google Analytics sample dataset for BigQuery</a>. The sample dataset provides an obfuscated Google Analytics 360 dataset that can be accessed via BigQuery. It’s a great way to look at business data and experiment and learn the benefits of analyzing Google Analytics 360 data in BigQuery.</p>
<p>In this blog post, though, we are going to work with the demo dataset generated by Reflective Data&#8217;s <a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/">Parallel Tracking System</a>. As mentioned before, the structure of the data is pretty much the same.</p>
<h2>Creating and running your first query</h2>
<p>With Reflective Data&#8217;s Parallel Tracking System, you will have three main tables in your BigQuery dataset. Let&#8217;s take a quick look at each one of them with a simple query.</p>
<h3><strong>Table: raw_hits</strong></h3>
<p>This is the most up to date table and contains raw data coming in from the website, app or via the measurement protocol. Data is available withing ~5 seconds after it was sent.</p>
<p><code>raw_hits</code> table contains only four columns.</p>
<ul>
<li><code>ua</code> &#8211; the user agent string of the client</li>
<li><code>ip</code> &#8211; the ip address of the client</li>
<li><code>q</code> &#8211; the actual Google Analytics hit payload</li>
<li><code>timestamp</code> &#8211; when data hit the processing engine (~50ms after it was sent)</li>
</ul>
<p>For example, we could query the number of hits for every hour in a given day.</p>
<figure id="attachment_3818" aria-describedby="caption-attachment-3818" style="width: 593px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.13-22_11_07.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="wp-image-3818 size-full" src="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.13-22_11_07.png" alt="raw_hits sample query in BigQuery" width="593" height="1190" srcset="https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.13-22_11_07.png 593w, https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.13-22_11_07-349x700.png 349w, https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.13-22_11_07-510x1024.png 510w" sizes="(max-width: 593px) 100vw, 593px" /></a><figcaption id="caption-attachment-3818" class="wp-caption-text">Hits by hour in a day</figcaption></figure>
<h3><strong>Table: processed_hits</strong></h3>
<p>This is a processed version of the <code>raw_hits</code> table. Data in this table becomes available ~30 seconds after the hit was sent. This is still really-really fast and considered near-real-time data.</p>
<p>When it comes to columns, this table is much richer compared to the <code>raw_hits</code> table. It has all the time-related columns (<code>date</code>, <code>hour</code>, <code>minute</code>, <code>timestamp</code> etc.) converted into the correct timezone. Some of the data is in a special format known as a record in BigQuery. This includes columns like <code>traffic_source</code>, <code>page</code>, <code>event</code>, <code>device</code>, <code>transaction</code> etc. In fact, this table has a column for every parameter you can send with a Google Analytics hit. Added are some data points normally not available in Google Analytics (ip address, user agent, client ID, user ID etc.)</p>
<p><a href="https://developers.google.com/analytics/devguides/collection/protocol/v1/reference" target="_blank" rel="noopener noreferrer">List of paramaters/columns as seen in Measurement Protocol Reference</a>.</p>
<p>As an example, we are querying top 10 visitors (by client ID) that created the most hits in a given day.</p>
<figure id="attachment_3821" aria-describedby="caption-attachment-3821" style="width: 599px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.13-22_41_53.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-3821" src="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.13-22_41_53.png" alt="Top visitors by the number of hits" width="599" height="777" srcset="https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.13-22_41_53.png 599w, https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.13-22_41_53-540x700.png 540w" sizes="(max-width: 599px) 100vw, 599px" /></a><figcaption id="caption-attachment-3821" class="wp-caption-text">Top visitors by the number of hits</figcaption></figure>
<p>Isn&#8217;t that easy? and cool, too!</p>
<p>I certainly like working with my Google Analytics data using SQL queries. Okay, let&#8217;s move on.</p>
<h3><strong>Table: processed_sessions</strong></h3>
<p>This table is, for sure, the richest of the three. It has all the columns from <code>processed_rows</code> but also includes quite a few new ones. These are the columns that require more processing (ip address to geolocation etc.) and/or the session to be ended (total hits in a session etc.). For these reasons, this table is usually updated a few times a day and a final version is generated at the beginning of the next day.</p>
<p>If you aren&#8217;t completely sure how a web session is defined in Google Analytics, take a look at <a href="https://support.google.com/analytics/answer/2731565?hl=en" target="_blank" rel="noopener noreferrer">this article</a>.</p>
<p>A good thing about raw data is that whether you like the fact that Google Analytics is mostly session-based or not, you have the freedom to calculate your metrics however you wish. You could also mix and match different techniques.</p>
<p>For example, we might query top country/browser combinations by the number of sessions and pageviews in a given month. Let&#8217;s see how that would look like with our demo dataset.</p>
<figure id="attachment_3823" aria-describedby="caption-attachment-3823" style="width: 597px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.14-00_49_22.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-3823" src="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.14-00_49_22.png" alt="Top country/browser combinations by sessions and pageviews" width="597" height="925" srcset="https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.14-00_49_22.png 597w, https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.14-00_49_22-452x700.png 452w" sizes="(max-width: 597px) 100vw, 597px" /></a><figcaption id="caption-attachment-3823" class="wp-caption-text">Top country/browser combinations by sessions and pageviews</figcaption></figure>
<h2>Creating and running more complex queries</h2>
<p>The best thing about raw hit-level data is that you&#8217;re not limited by things like sampling or pre-defined metric/dimension combinations. Both of which are common in Google Analytics, both the UI and the Reporting API.</p>
<p>What&#8217;s more, with BigQuery you can load in data from almost anywhere and mix it with your analytics data in any way you like. This may include data from your CRM, CMS, Ads platform or other analytics tools.</p>
<blockquote><p>Google Analytics’ data model is structured so that session-based dimensions (like source/medium) don’t play well when combined with user-level or page-level dimensions and metrics. And there’s a limit to the number of dimensions we can see side-by-side: two dimensions is usually our limit in the interface, five in custom reports, and the API allows for seven dimensions. With BigQuery, there are no such limitations.</p>
<p>For example – ecommerce customers may have trouble pulling exact stats of the number of users from Social Media that saw a product page and then subsequently purchased the same product. BigQuery users can handle that with a single query.</p>
<p>By Alex Moore, <a href="https://www.bounteous.com/insights/2017/05/17/value-google-bigquery-and-google-analytics-360/" target="_blank" rel="noopener noreferrer">source</a></p></blockquote>
<p>One of the queries that almost always ends up being inaccurate (due to sampling) in Google Analytics is when you want to analyze all hits triggered by a single user. With BigQuery, this query is fast and simple, and there is no sampling. Never.</p>
<p>First, let&#8217;s go ahead and query some totals.</p>
<figure id="attachment_3826" aria-describedby="caption-attachment-3826" style="width: 665px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.14-12_56_28.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-3826" src="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.14-12_56_28.png" alt="Totals for a given user" width="665" height="518" /></a><figcaption id="caption-attachment-3826" class="wp-caption-text">Totals for a given user</figcaption></figure>
<p>Now, let&#8217;s take a look at all of the hits in chronological order. This will give us a detailed overview of their user journey.</p>
<figure id="attachment_3829" aria-describedby="caption-attachment-3829" style="width: 706px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.14-15_55_00.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-3829" src="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.14-15_55_00.png" alt="Analyze user journey" width="706" height="1004" srcset="https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.14-15_55_00.png 706w, https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.14-15_55_00-492x700.png 492w" sizes="(max-width: 706px) 100vw, 706px" /></a><figcaption id="caption-attachment-3829" class="wp-caption-text">Analyze user journey</figcaption></figure>
<p>I believe you can see how analyzing a user journey like this can be very useful. For example, when a new lead comes in, before contacting them you could check what content they&#8217;ve already interacted with.</p>
<p>***</p>
<p>For someone that has worked mostly with the Google Analytics UI and not with the raw data before, there are some things that can be a bit confusing in the beginning. For example, not all of your common metrics are available as a column in BigQuery. Even the really basic ones, like bounce rate. That means you have to define them in your query.</p>
<p>Let&#8217;s take a look at the bounce rate for the top 10 landing pages in our sample dataset.</p>
<figure id="attachment_3831" aria-describedby="caption-attachment-3831" style="width: 693px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.14-18_09_34.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-3831" src="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.14-18_09_34.png" alt="Top 10 landing pages" width="693" height="898" srcset="https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.14-18_09_34.png 693w, https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.14-18_09_34-540x700.png 540w" sizes="(max-width: 693px) 100vw, 693px" /></a><figcaption id="caption-attachment-3831" class="wp-caption-text">Top 10 landing pages</figcaption></figure>
<p>Calculating your own metrics like this can be a bit frustrating in the beginning but you actually only have to write most queries once and can later save them as views or saved queries in BigQuery. A benefit of defining your own metrics is that you are not limited by pre-defined metrics in Google Analytics. As you can see, in the query above we defined bounce as a session that has less than 2 pageviews but we could also include a rule that there can&#8217;t be any interaction hits in the session. We could also play with session duration or other data available in BigQuery.</p>
<p>A true value of having your analytics data in BigQuery, though, is that you can easily join it with other data that you&#8217;ve also sent to BigQuery.</p>
<p>For example, you could use <a href="https://cloud.google.com/bigquery-transfer/docs/adwords-transfer" target="_blank" rel="noopener noreferrer">Google Ads Data Transfer</a> tool for BigQuery to automatically send all of your Google Ads data into a BigQuery dataset. This is especially useful if you&#8217;re using Google Ads <a href="https://support.google.com/google-ads/answer/3095550?hl=en" target="_blank" rel="noopener noreferrer">auto-tagging solution</a> because that means the only connection between your Google Analytics and Ads data is the <code>gclid</code> ID which is unique for every click.</p>
<p>With a simple query, you can join your <code>processed_sessions</code> table with <code>ClickStats</code> table.</p>
<figure id="attachment_3834" aria-describedby="caption-attachment-3834" style="width: 788px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.15-17_14_02.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-3834" src="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.15-17_14_02.png" alt="Google Analytics data joined with Ads data" width="788" height="572" srcset="https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.15-17_14_02.png 788w, https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.15-17_14_02-700x508.png 700w, https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-console.cloud_.google.com-2020.04.15-17_14_02-768x557.png 768w" sizes="(max-width: 788px) 100vw, 788px" /></a><figcaption id="caption-attachment-3834" class="wp-caption-text">Google Analytics data joined with Ads data</figcaption></figure>
<p>After joining two datasets, you can combine any data points that are available in either dataset. The most important one, perhaps, is the cost data from the Ads dataset. This would allow you to calculate the amount of money you spent on acquiring each user.</p>
<h2>Analyzing BigQuery data in a BI tool</h2>
<p>Not everyone can write complex SQL queries to access their analytics data in BigQuery. Luckily, BigQuery has a native connector with almost all of the major BI and data visualization platforms.</p>
<p>My default recommendation is <a href="https://datastudio.google.com/" target="_blank" rel="noopener noreferrer">Data Studio</a>. It&#8217;s free, full of powerful features and since it&#8217;s also from Google, you get a smart caching layer between Data Studio and BigQuery which can significantly lower your BigQuery costs.</p>
<p>Connecting BigQuery and Data Studio is really simple. All you have to do is create a new source in Data Studio and select BigQuery. It will automatically show you the list of Google Cloud projects you have access to and from there you can easily navigate to your datasets and tables.</p>
<figure id="attachment_3841" aria-describedby="caption-attachment-3841" style="width: 1064px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-datastudio.google.com-2020.04.15-18_01_46.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-3841" src="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-datastudio.google.com-2020.04.15-18_01_46.png" alt="BigQuery connector for Google Data Studio" width="1064" height="975" srcset="https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-datastudio.google.com-2020.04.15-18_01_46.png 1064w, https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-datastudio.google.com-2020.04.15-18_01_46-700x641.png 700w, https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-datastudio.google.com-2020.04.15-18_01_46-1024x938.png 1024w, https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-datastudio.google.com-2020.04.15-18_01_46-768x704.png 768w" sizes="(max-width: 1064px) 100vw, 1064px" /></a><figcaption id="caption-attachment-3841" class="wp-caption-text">BigQuery connector for Google Data Studio</figcaption></figure>
<p>Once you found the correct table, you can either choose the fields you want to include in your report (if not sure, choose all) or write your own query.</p>
<p>In our example, we connected two tables (<code>processed_hits</code> and <code>processed_sessions</code>) and selected all fields available in these tables.</p>
<p>Now, let&#8217;s create a quick time-series chart to see the number of hits of each hit type per day in our selected time period. Settings for a chart like this are really simple.</p>
<p><a  href="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-datastudio.google.com-2020.04.15-18_09_28.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3842" src="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-datastudio.google.com-2020.04.15-18_09_28.png" alt="" width="162" height="244" /></a></p>
<p>And this is how the chart itself looks like. Nothing special but allows you to have a quick overview of your traffic and spot any anomalies in tracking.</p>
<p><a  href="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-datastudio.google.com-2020.04.15-18_10_39.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3843" src="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-datastudio.google.com-2020.04.15-18_10_39.png" alt="" width="1129" height="318" srcset="https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-datastudio.google.com-2020.04.15-18_10_39.png 1129w, https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-datastudio.google.com-2020.04.15-18_10_39-700x197.png 700w, https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-datastudio.google.com-2020.04.15-18_10_39-1024x288.png 1024w, https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-datastudio.google.com-2020.04.15-18_10_39-768x216.png 768w" sizes="(max-width: 1129px) 100vw, 1129px" /></a></p>
<p>Another useful chart I recommend setting up is a time-series comparison between data in Google Analytics and BigQuery. This means you have to <a href="https://support.google.com/datastudio/answer/9061420?hl=en" target="_blank" rel="noopener noreferrer">blend two data sources</a>.</p>
<p><a  href="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-datastudio.google.com-2020.04.15-18_13_55.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3844" src="http://reflectivedata.com/wp-content/uploads/2020/04/screenshot-datastudio.google.com-2020.04.15-18_13_55.png" alt="" width="1121" height="600" srcset="https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-datastudio.google.com-2020.04.15-18_13_55.png 1121w, https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-datastudio.google.com-2020.04.15-18_13_55-700x375.png 700w, https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-datastudio.google.com-2020.04.15-18_13_55-1024x548.png 1024w, https://reflectivedata.com/wp-content/uploads/2020/04/screenshot-datastudio.google.com-2020.04.15-18_13_55-768x411.png 768w" sizes="(max-width: 1121px) 100vw, 1121px" /></a></p>
<p>As you can see, the numbers are pretty close.</p>
<p>For more advanced dashboards you might want to write a custom query on a Data Studio data source level. This way you can pre-join different tables and/or datasets.</p>
<p>***</p>
<p>While being more difficult than using the Google Analytics UI, the freedom you get from having access to raw hit-level data in BigQuery is definitely worth it. As mentioned at the beginning of this article, you don&#8217;t necessarily have to spend a fortune on Google Analytics 360 because with Reflective Data&#8217;s <a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/">Google Analytics Parallel Tracking System</a> you can send your analytics data into BigQuery for a fraction of the money.</p>
<p>Should you have any questions about working with Google Analytics data in BigQuery, post them in the comments below and someone from our team will get back to you.</p>
<p>If you want to learn more about the Parallel Tracking System, <a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/">click here</a>.</p>
<p>The post <a href="https://reflectivedata.com/how-to-query-and-analyze-google-analytics-data-with-bigquery/">How to Query and Analyze Google Analytics Data with BigQuery</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://reflectivedata.com/how-to-query-and-analyze-google-analytics-data-with-bigquery/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Unsampled Hit-Level Google Analytics Data Without 360</title>
		<link>https://reflectivedata.com/unsampled-hit-level-google-analytics-data-without-360/</link>
					<comments>https://reflectivedata.com/unsampled-hit-level-google-analytics-data-without-360/#comments</comments>
		
		<dc:creator><![CDATA[Jason Dolan]]></dc:creator>
		<pubDate>Tue, 03 Mar 2020 13:17:25 +0000</pubDate>
				<category><![CDATA[BigQuery]]></category>
		<category><![CDATA[Data Pipeline]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[Tools]]></category>
		<guid isPermaLink="false">http://reflectivedata.com/?p=3725</guid>

					<description><![CDATA[<p>Google Analytics is a really good tool for marketing-focused digital analytics. And by far the most popular one in this segment. With some custom setup, you can also use Google Analytics for tracking SaaS and other web apps &#038; products.</p>
<p>Two of the most common shortcomings of Google Analytics that most of the more advanced users experience, though, are the lack of hit-level granularity and sampling. In this article, we are taking a look at some of the ways you can overcome these shortcomings without spending a fortune on Google Analytics 360.</p>
<p>The post <a href="https://reflectivedata.com/unsampled-hit-level-google-analytics-data-without-360/">Unsampled Hit-Level Google Analytics Data Without 360</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Google Analytics is a really powerful tool for marketing-focused digital analytics. And by far the most popular one in this segment. With some custom setup, you can even use Google Analytics for <a href="http://reflectivedata.com/using-google-analytics-for-tracking-saas/">tracking SaaS</a> and other web apps &amp; products.</p>
<p>Two of the most common shortcomings of Google Analytics that most of the advanced users experience, though, are the lack of hit-level granularity and data sampling. In this article, we are taking a look at some of the ways you can overcome these shortcomings without spending a fortune on Google Analytics 360.</p>
<p><span style="font-size: 14pt;"><em>PS! If your company already has 360, these techniques can give you an even more robust and complete dataset.</em></span></p>
<h3>What is sampling and who&#8217;s affected</h3>
<p>At first, let&#8217;s take a look at how Google Analytics describes sampling in their <a href="https://support.google.com/analytics/answer/2637192?hl=en">official documentation</a>.</p>
<blockquote><p>In data analysis, sampling is the practice of analyzing a subset of all data in order to uncover meaningful information in the larger data set. For example, if you wanted to estimate the number of trees in a 100-acre area where the distribution of trees was fairly uniform, you could count the number of trees in 1 acre and multiply by 100, or count the trees in a half acre and multiply by 200 to get an accurate representation of the entire 100 acres.</p></blockquote>
<p>So, it simply means that some of the reports you see in Google Analytics (or any other tool that pulls data from it via the Reporting API) may not represent 100% of the relevant hits.</p>
<p>This is especially true when you build more advanced custom reports with detailed custom segments. Google Analytics samples complex ad-hoc queries even below 500k sessions. Unfortunately, this is exactly when you normally care about the data accuracy the most.</p>
<p>You can check if your report is affected from sampling by hovering over the shield icon at the top left of your report.</p>
<p><a  href="http://reflectivedata.com/wp-content/uploads/2020/02/unnamed.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3726" src="http://reflectivedata.com/wp-content/uploads/2020/02/unnamed.png" alt="Google Analytics Sampling" width="499" height="133" /></a></p>
<p>Normally, the reporting-level sampling starts when your selected date range has more than 500k sessions in total. Be vary, though, because it sometimes happens with <a href="https://support.google.com/analytics/answer/2637192?hl=en">less traffic as well</a>.</p>
<blockquote><p>In some circumstances, you may see fewer than 500k sessions sampled. This can result from the complexity of your Analytics implementation, the use of view filters, query complexity for segmentation, or some combination of those factors. Although we make a best effort to sample up to 500k sessions, it&#8217;s normal to sometimes see slightly fewer than 500k sessions returned for an ad-hoc query.</p></blockquote>
<p>And that is not the only kind of sampling that can haunt you in the free version of Google Analytics. The second type of sampling takes place when data is being collected and the limits you need to know are as follows.</p>
<ul>
<li>500 hits per session [1]</li>
<li>200,000 hits per user per day [1]</li>
<li>10 million hits per month per account [2]</li>
</ul>
<p><em><span style="font-size: 14pt;"><a href="https://developers.google.com/analytics/devguides/collection/analyticsjs/limits-quotas">source 1</a>, <a href="https://marketingplatform.google.com/about/analytics/terms/us/">source 2</a></span></em></p>
<p>It is important to understand that hits aren&#8217;t users, sessions or page views – hits are all data sent to Google Analytics including events, timing and data coming from the <a href="https://developers.google.com/analytics/devguides/collection/protocol/v1">Measurement Protocol</a>.</p>
<p>One way to check if you&#8217;re getting close to those limits is to go to Admin &#8211;&gt; Property Settings in Google Analytics.</p>
<p><a  href="http://reflectivedata.com/wp-content/uploads/2020/02/screenshot-analytics.google.com-2020.02.27-15_31_30.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3728" src="http://reflectivedata.com/wp-content/uploads/2020/02/screenshot-analytics.google.com-2020.02.27-15_31_30.png" alt="Google Analytics Property Hit Volume" width="281" height="138" /></a>It is worth mentioning, though, that Google won&#8217;t automatically ignore all hits past the 10M mark. It will notify you in the UI and will likely contact you via email and suggest considering the GA 360 version. In the <a href="https://marketingplatform.google.com/about/analytics/terms/us/">terms</a>, though, it says &#8220;there is no assurance that the excess hits will be processed&#8221; and also that the warning message is not guaranteed to appear.</p>
<p>You should take action if&#8230;</p>
<ul>
<li>your site receives &gt;10M hits a month</li>
<li>you see the yellow shield next to your reports regularly</li>
<li>your visitors generate more than 500 hits per session</li>
</ul>
<h3>How to avoid sampling in Google Analytics</h3>
<p>If you hit any of the sampling limits but need reliable data in your work, you need to find a solution rather sooner than later.</p>
<p>Let&#8217;s take a look at the options you have.</p>
<p><strong>Google Analytics 360</strong> &#8211; This is the solution Google itself recommends. And no wonder why, it costs around <a href="https://www.quora.com/What-is-the-cost-of-Google-Analytics-360-Suite">$150k a year</a>. GA 360 is a great tool and we recommend it to all companies with huge traffic and money to spend. Keep in mind, though, that if you only need the more generous data limits or BigQuery access, there are cheaper solutions (described in this article).</p>
<p><strong>Collect less data</strong> &#8211; Well, who would want less data, right? We can&#8217;t recommend to skip tracking of some important user action like page view or file download but there may some automatic events that you don&#8217;t really care about. This could be some timing event that your systems sends every 10 seconds, a scroll depth event every 5% or something similar. Take a look at your events and you may find something. Just don&#8217;t remove something useful!</p>
<p><strong>Unsample your Google Analytics data</strong> &#8211; If you don&#8217;t hit the data collection limits and the only worry is the sampling happening on reporting-level, you may be interested in solutions that let you unsample your existing data. How it works is that your query (run via the API) is divided into many sub-queries that are small enough that no sampling is applied. You can do so by writing your own small program in your favorite language or use one that others have built. For example <a href="https://code.markedmondson.me/gago/">this one written in GO</a>.</p>
<p>There are also some paid tools available but we haven&#8217;t used them. Some of them run the API requests periodically to build an unsampled database based on your Google Analytics data. Keep in mind, though, that this doesn&#8217;t save you from data collection limits (i.e. 10M sessions/month) or some data aggregation that is inevitable in GA.</p>
<p><strong>Use a parallel tracker</strong> &#8211; This is the most reliable solution against all data collection, processing and reporting limits you come across in Google Analytics. How it functions is that it duplicates all hits going from your site to Google Analytics, processes them separately and stores everything in your favorite data warehouse – BigQuery, for example.</p>
<p>With a <a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/" target="_blank" rel="noopener noreferrer">parallel tracking setup</a>, you are always free from any sampling and data collection limits. Furthermore, data processing incidents are rare but do occasionally happen in Google Analytics – having your own raw dataset lets you reprocess your data whenever needed. As a bonus, since you own the data, you may include PII, mix it with any other data or delete the records you don&#8217;t want. More on this solution later in the article.</p>
<h3>What is hit-level data and why do I need it</h3>
<p>Most data you see in Google Analytics is aggregated, and without custom configuration, you can&#8217;t get much of the raw hit-level (also known as event-level) data that you may need in more detailed analysis.</p>
<p>Hit-level data means that you can access the underlying hits that were sent to Google Analytics, allowing you to do your own aggregation as you wish, based on any criteria or dimension.</p>
<p>A good example of using hit-level data is analyzing the journey of a single user. On what page did they land on, what was the traffic source, which pages did they visit, how many interactions before converting etc. Having access to hit-level data lets you analyze the journey of each visitor in near-real-time. Furthermore, this data is perfect for machine learning algorithms that could, for example, detect and analyze users that are most likely to convert – you could then target them with ads and other campaigns.</p>
<p>Here&#8217;s the simplest query in BigQuery that shows you each hit from a single user in chronological order.</p>
<p><a  href="http://reflectivedata.com/wp-content/uploads/2020/03/screenshot-console.cloud_.google.com-2020.03.03-15_01_53.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3760" src="http://reflectivedata.com/wp-content/uploads/2020/03/screenshot-console.cloud_.google.com-2020.03.03-15_01_53.png" alt="Google Analytics BigQuery" width="1005" height="1066" srcset="https://reflectivedata.com/wp-content/uploads/2020/03/screenshot-console.cloud_.google.com-2020.03.03-15_01_53.png 1005w, https://reflectivedata.com/wp-content/uploads/2020/03/screenshot-console.cloud_.google.com-2020.03.03-15_01_53-660x700.png 660w, https://reflectivedata.com/wp-content/uploads/2020/03/screenshot-console.cloud_.google.com-2020.03.03-15_01_53-965x1024.png 965w, https://reflectivedata.com/wp-content/uploads/2020/03/screenshot-console.cloud_.google.com-2020.03.03-15_01_53-768x815.png 768w" sizes="(max-width: 1005px) 100vw, 1005px" /></a></p>
<p>With hit-level data, one can access every single hit that was collected from the site along with all data-points that each hit included.</p>
<p>Unfortunately, there is no way you can get the true raw hit-level data out of Google Analytics. Not even using the API. Using custom dimension for the Client ID, Hit Type, Timestamp etc. can get you closer but it&#8217;s still far from perfect.</p>
<h3>How to get access to raw, unsampled hit-level data</h3>
<p>As mentioned before, you can&#8217;t get the raw hits out from Google Analytics. The premium version of Google Analytics (360) and its BigQuery export feature will get you closer (for 150k a year) but even that is not ideal.</p>
<p>The only way to gain access to the real underlying hits, with zero sampling and aggregation, is to leverage technology known as parallel tracking.</p>
<p>Parallel tracking means that all hits sent to Google Analytics are duplicated and sent to another endpoint. Depending on the solution, the data may be stored in Amazon S3, Google BigQuery or some other data warehouse.</p>
<p>Tools like Snowplow offer parallel tracking solution and accessing raw data in your data warehouse without any further processing (by default). This means there are no sessions, channel attribution or other really useful features that you do get in Google Analytics.</p>
<p>With <a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/">Reflective Data&#8217;s Parallel Tracking (RDPT) solution</a>, not only will you get all the raw hits but also a data processing engine that works very similarly to the one in Google Analytics itself. This means you will get sessions, attribution and features like referral exclusion out of the box. More advanced users can build (or request) their own rules for defining sessions, attribution and other features.</p>
<p>In order to break data silos, RDPT can integrate with any tool that has an API. Including your CRM and ad platforms.</p>
<p><a  href="http://reflectivedata.com/wp-content/uploads/2020/01/RD-Google-Analytics-Parallel-Tracking.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3692" src="http://reflectivedata.com/wp-content/uploads/2020/01/RD-Google-Analytics-Parallel-Tracking.png" alt="RD - Google Analytics Parallel Tracking" width="881" height="385" srcset="https://reflectivedata.com/wp-content/uploads/2020/01/RD-Google-Analytics-Parallel-Tracking.png 881w, https://reflectivedata.com/wp-content/uploads/2020/01/RD-Google-Analytics-Parallel-Tracking-700x306.png 700w, https://reflectivedata.com/wp-content/uploads/2020/01/RD-Google-Analytics-Parallel-Tracking-768x336.png 768w" sizes="(max-width: 881px) 100vw, 881px" /></a></p>
<p>RDPT&#8217;s default data warehouse is BigQuery but storing data elsewhere (Amazon S3 etc.) is also possible. BigQuery&#8217;s native integration to Google Data Studio makes it easy and cost-effective to build all sorts of reports and dashboards. Integrations with most other BI and data visualization tools are widely available.</p>
<h3>How much does it cost</h3>
<p>Google Analytics 360 is a really good tool for enterprises that want to gain more detailed access to their marketing data. Hefty price tag, limited access to raw data and occasional sampling should make you think twice before upgrading, though.</p>
<p>For companies that aren&#8217;t fully sold on Google Analytics 360 or companies that already have 360 but need access to even more complete dataset, <a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/">the Reflective Data&#8217;s Parallel Tracker (RDPT)</a> may be the perfect solution.</p>
<p>Pricing for RDPT depends on the amount of traffic, the complexity of the setup and the number of integrations. Compared to 150k, though, it will always be a bargain. The initial setup usually costs somewhere between $1k and $5k, and the monthly plans start at around $350. This includes a generous quota for BigQuery usage.</p>
<p>So, whatever your current analytics stack looks like, you should consider adding RDPT for the most robust, unsampled raw hit-level digital analytics data you can get. <a href="http://reflectivedata.com/services/google-analytics-parallel-tracking/">Learn more here</a>.</p>
<p>The post <a href="https://reflectivedata.com/unsampled-hit-level-google-analytics-data-without-360/">Unsampled Hit-Level Google Analytics Data Without 360</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://reflectivedata.com/unsampled-hit-level-google-analytics-data-without-360/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Six Key Components of an Analytics Data Pipeline</title>
		<link>https://reflectivedata.com/six-key-components-of-an-analytics-data-pipeline/</link>
					<comments>https://reflectivedata.com/six-key-components-of-an-analytics-data-pipeline/#respond</comments>
		
		<dc:creator><![CDATA[Silver Ringvee]]></dc:creator>
		<pubDate>Tue, 10 Dec 2019 15:03:01 +0000</pubDate>
				<category><![CDATA[Data Pipeline]]></category>
		<category><![CDATA[Technical]]></category>
		<guid isPermaLink="false">http://reflectivedata.com/?p=3672</guid>

					<description><![CDATA[<p>This blog post is aimed for anyone planning to build a data pipeline or upgrade their current setup.</p>
<p>An end-to-end analytics data pipeline is a secure and reliable mechanism that is responsible for feeding your business with valuable data that can be used for reporting, analysis, machine learning or any other activity that requires accurate data about your business.</p>
<p>The post <a href="https://reflectivedata.com/six-key-components-of-an-analytics-data-pipeline/">Six Key Components of an Analytics Data Pipeline</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></description>
										<content:encoded><![CDATA[<blockquote><p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" />  If you need help with planning or building a data pipeline or a data warehouse then <a href="http://reflectivedata.com/analytics-data-pipeline/">get in touch</a> for a free consultation session with one of our top data engineers!</p></blockquote>
<hr />
<p>These days, data is at the core of almost all successful companies. The system that feeds those companies with data is known as a data pipeline.</p>
<p>This blog post is for anyone eager to learn more about data pipelines, planning to build a new pipeline or upgrade their current setup.</p>
<p>An end-to-end analytics data pipeline is a secure and reliable mechanism that is responsible for feeding your business with valuable data that can be used for reporting, analysis, machine learning or any other activity that requires accurate data about your business.</p>
<p>Every business is different and so are the analytics data pipelines that best suits their needs. Our model of an enterprise-grade, fully customizable data pipelines are divided into six logical steps. Let’s take a closer look at each one of them.</p>
<p style="text-align: center;">Events → Enrichment → Process → Manage &amp; Monitor → Storage → Report &amp; Visualize</p>
<h2>Events</h2>
<p>Events are the basis of most data pipelines, they trigger other actions and take the largest part (storage) of your data lake/warehouse.</p>
<p>There is a wide variety of events that may act as a source for your data pipeline. Here are the six main categories of sources that generate an ongoing flow of events.</p>
<ul>
<li>Website users
<ul>
<li>Click stream</li>
<li>Google Analytics parallel tracking</li>
<li>Form analytics</li>
</ul>
</li>
<li>Server events
<ul>
<li>Orders</li>
<li>Payments</li>
</ul>
</li>
<li>Mobile Apps
<ul>
<li>Real-time</li>
<li>Batch</li>
</ul>
</li>
<li>Ads
<ul>
<li>Google Ads</li>
<li>Facebook Ads</li>
<li>Twitter Ads</li>
<li>Others</li>
</ul>
</li>
<li>Feedback tool
<ul>
<li>Surveys</li>
<li>On-site polls</li>
</ul>
</li>
<li>3rd parties
<ul>
<li>Testing tools</li>
<li>Personalization tools</li>
<li>Email providers</li>
<li>Call tracking</li>
</ul>
</li>
</ul>
<p>Events in data pipelines are usually invoked by <a href="https://simonfredsted.com/1583" target="_blank" rel="noopener noreferrer">webhooks</a> that put all events into the processing queue where they are validated, enriched and batched.</p>
<p>For example, here&#8217;s a webhook for Google Analytics parallel tracking.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">https://analytics-6785943.appspot.com/collect?v=1&amp;_v=j79&amp;a=1359602631&amp;t=pageview&amp;_s=1&amp;dl=https%3A%2F%2Freflectivedata.com%2F&amp;ul=en-us&amp;de=UTF-8&amp;dt=Homepage&amp;sd=24-bit&amp;sr=1920x1080&amp;vp=1336x977&amp;je=0&amp;_u=SCCACEAjR~&amp;jid=&amp;gjid=&amp;cid=1177657878.1573135112&amp;tid=UA-3696947-1&amp;_gid=775207114.1575821022&amp;z=1779653917</pre>
<p>The above webhook is quite similar to Google Analytics hit payload and is sent at the same time. It is then processed, enriched and streamed into the data warehouse.</p>
<p>All events are generally stored in three locations:</p>
<ol>
<li>Log files &#8211; raw hits</li>
<li>Data Lake &#8211; Processed data (sometimes also enriched)</li>
<li>BigQuery &#8211; Processed &amp; enriched data</li>
</ol>
<p>This setup ensures us that we can re-process everything should there be something wrong with the enrichment process or should the data somehow get lost from the BigQuery instance.</p>
<h2>Enrichment</h2>
<p>To give more context to the raw event-level data, our systems are pulling data from various sources, including:</p>
<ul>
<li>CRM &amp; CMS</li>
<li>Google Analytics</li>
<li>3rd party APIs</li>
</ul>
<p>For sources that don’t allow real-time access, we are using periodic batch load processes.</p>
<p>Data from various sources is either combined with the hit level data or sent to the data warehouse separately for query-level joining or processing after collection.</p>
<h2>Process</h2>
<p>Processing makes sure your data is secure, reliable, accurate and free from duplicates. To securely process your data, we are using the following tools from Google Cloud:</p>
<ul>
<li><a href="https://cloud.google.com/dataflow/" target="_blank" rel="noopener noreferrer">Cloud Dataflow</a></li>
<li><a href="https://cloud.google.com/pubsub/" target="_blank" rel="noopener noreferrer">Cloud Pub/Sub</a></li>
<li><a href="https://cloud.google.com/functions/" target="_blank" rel="noopener noreferrer">Cloud Functions</a></li>
</ul>
<p>Similar tools are also available in <a href="https://aws.amazon.com/" target="_blank" rel="noopener noreferrer">Amazon Web Services</a>. There are several open-source solutions (often used by providers like Google and Amazon) but we prefer and recommend using managed services that can scale automatically. This allows us (and you) to focus on the data pipeline itself instead of maintaining the infrastructure.</p>
<p>We build the data processing queues to handle late-arriving data, duplicates and storage system outages in a way that best fits every use case. For example, people using your app on a 10-hour flight can produce a lot of events that are arriving and getting processed hours after they actually happened.</p>
<h2>Manage &amp; Monitor</h2>
<p>To make sure everything is working as expected and to alert us and our clients if something is not, we are setting up a set of tools built in-house and from Google Cloud. Such as <a href="https://cloud.google.com/monitoring/" target="_blank" rel="noopener noreferrer">Stackdriver Monitoring</a>.</p>
<p>Our goal is to provide our clients with the most accurate data with the least amount of latency.</p>
<p>In the pipeline management tools, you can see the pipeline&#8217;s structure, sources, processors, storage options etc. You would also see how data is moving between different elements and if there have been any errors or other incidents.</p>
<blockquote><p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" />  If you need help with planning or building a data pipeline or a data warehouse then <a href="http://reflectivedata.com/analytics-data-pipeline/">get in touch</a> for a free consultation session with one of our top data engineers!</p></blockquote>
<h2>Storage</h2>
<p>We’ve built the data pipeline so that it can send and store data in almost any database, data lake or data warehouse available. Here’s our standard recommendation.</p>
<ul>
<li><a href="https://cloud.google.com/bigquery/" target="_blank" rel="noopener noreferrer">Google BigQuery</a></li>
<li>Digital Analytics Platforms
<ul>
<li>Google/Adobe Analytics</li>
</ul>
</li>
<li>Long-term storage
<ul>
<li><a href="https://cloud.google.com/storage/" target="_blank" rel="noopener noreferrer">Cloud Storage </a></li>
<li><a href="https://aws.amazon.com/s3/" target="_blank" rel="noopener noreferrer">AWS S3</a></li>
</ul>
</li>
</ul>
<p>We make sure that your data stays safe and meets all the security requirements while giving you the full ownership and control over your data.</p>
<p>As mentioned earlier, we store raw hits as well to ensure that we can re-process everything should there be something wrong with the enrichment process or should the data somehow get lost from the BigQuery (or other reporting) instance.</p>
<h2>Report &amp; Visualize</h2>
<p>Collecting data is pointless if it’s never being used to benefit your business. We think about the value our clients&#8217; data has to provide in the earliest phase of planning and building the data pipeline. Our team works closely with our clients in order to figure out the KPIs, reports and dashboards that are needed for their companies growth.</p>
<p>Tools we are using for reporting, analysis and visualization include:</p>
<ul>
<li><a href="https://datastudio.google.com/" target="_blank" rel="noopener noreferrer">Google Data Studio</a></li>
<li><a href="https://jupyter.org/">Jupyter Notebooks</a></li>
<li><a href="https://redash.io/product/">Redash</a></li>
<li>Other BI tools</li>
</ul>
<p>We build all analytics data pipelines and storage systems so that they could be connected with almost any BI tool available on the market. Wherever possible, we make data available for reporting in near real-time.</p>
<hr />
<p>It&#8217;s no news that data is running most of the successful businesses these days and more and more companies as implementing modern data pipelines.</p>
<p>When thinking of a modern data pipeline, keep these keywords on mind:</p>
<ul>
<li>Serverless</li>
<li>Scalable</li>
<li>Real-time access</li>
<li>Security</li>
<li>Flexibility</li>
</ul>
<p>Our team is happy to answer any analytics data pipeline related questions in the comments below.</p>
<blockquote><p>Need help with planning or upgrading your data pipeline? <a href="http://reflectivedata.com/analytics-data-pipeline/">Contact us</a> and get a free consultation with one of our top data engineers.</p></blockquote>
<p>The post <a href="https://reflectivedata.com/six-key-components-of-an-analytics-data-pipeline/">Six Key Components of an Analytics Data Pipeline</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://reflectivedata.com/six-key-components-of-an-analytics-data-pipeline/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to Detect and Fix Duplicate Transactions in Google Analytics</title>
		<link>https://reflectivedata.com/how-to-detect-and-fix-duplicate-transactions-in-google-analytics/</link>
					<comments>https://reflectivedata.com/how-to-detect-and-fix-duplicate-transactions-in-google-analytics/#comments</comments>
		
		<dc:creator><![CDATA[Silver Ringvee]]></dc:creator>
		<pubDate>Thu, 07 Nov 2019 15:15:36 +0000</pubDate>
				<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[Tools]]></category>
		<guid isPermaLink="false">http://reflectivedata.com/?p=3591</guid>

					<description><![CDATA[<p>Enhanced Ecommerce is one of the most powerful and flexible features of Google Analytics. Its flexibility, though, leaves a lot of room for errors in the setup.</p>
<p>In this article, we are covering everything you need to know about the problem of duplicate transactions, a root cause of skewed data in many Google Analytics instances.</p>
<p>The post <a href="https://reflectivedata.com/how-to-detect-and-fix-duplicate-transactions-in-google-analytics/">How to Detect and Fix Duplicate Transactions in Google Analytics</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Enhanced Ecommerce is one of the most powerful and flexible features of Google Analytics. Its flexibility, though, leaves a lot of room for errors in the setup.</p>
<p>In this article, we are covering everything you need to know about the problem of duplicate transactions, a root cause of skewed data in many Google Analytics instances.</p>
<h2>Detecting Duplicate Transactions</h2>
<p>Duplicate transactions in Google Analytics means simply that a single transaction was counted more than once. This can dramatically skew your data because along with the transaction count, this also inflates the revenue, quantity and other metrics directly related to transactions.</p>
<p>To check if your Google Analytics E-commerce setup is affected by duplicate transactions, let&#8217;s start by creating a custom report (Customisation &#8211;&gt; Custom Reports &#8211;&gt; New Custom Report) with the following settings.</p>
<p>Metrics: Transactions</p>
<p>Dimensions: Transaction ID</p>
<figure id="attachment_3592" aria-describedby="caption-attachment-3592" style="width: 923px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2019/11/screenshot-analytics.google.com-2019.11.05-17_13_26.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-3592" src="http://reflectivedata.com/wp-content/uploads/2019/11/screenshot-analytics.google.com-2019.11.05-17_13_26.png" alt="Google Analytics Custom Report for Duplicate Transactions" width="923" height="759" srcset="https://reflectivedata.com/wp-content/uploads/2019/11/screenshot-analytics.google.com-2019.11.05-17_13_26.png 923w, https://reflectivedata.com/wp-content/uploads/2019/11/screenshot-analytics.google.com-2019.11.05-17_13_26-700x576.png 700w, https://reflectivedata.com/wp-content/uploads/2019/11/screenshot-analytics.google.com-2019.11.05-17_13_26-768x632.png 768w" sizes="(max-width: 923px) 100vw, 923px" /></a><figcaption id="caption-attachment-3592" class="wp-caption-text">Google Analytics Custom Report for Duplicate Transactions</figcaption></figure>
<p>Hit &#8220;Save&#8221; and you should see your Duplicate Transactions custom report right away.</p>
<p>Firstly, choose a time frame. I&#8217;d recommend starting with 30, 60 or 90 days depending on how many transactions your site generates and how often your analytics setup changes.</p>
<p>Secondly, sort your table by most Transactions first.</p>
<p>If every transaction ID shows only one transaction then congratulations, in the selected time frame there were no duplicate transactions.</p>
<p>Every number greater than one is a sign of duplicate transaction. Now, to get an overview of the magnitude of the problem, compare the number of transactions against the number of rows in the table. The latter is the actual count of unique transactions.</p>
<figure id="attachment_3593" aria-describedby="caption-attachment-3593" style="width: 980px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2019/11/screenshot-analytics.google.com-2019.11.05-17_21_21.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-3593" src="http://reflectivedata.com/wp-content/uploads/2019/11/screenshot-analytics.google.com-2019.11.05-17_21_21.png" alt="Google Analytics Duplicate Transactions" width="980" height="576" srcset="https://reflectivedata.com/wp-content/uploads/2019/11/screenshot-analytics.google.com-2019.11.05-17_21_21.png 980w, https://reflectivedata.com/wp-content/uploads/2019/11/screenshot-analytics.google.com-2019.11.05-17_21_21-700x411.png 700w, https://reflectivedata.com/wp-content/uploads/2019/11/screenshot-analytics.google.com-2019.11.05-17_21_21-768x451.png 768w" sizes="(max-width: 980px) 100vw, 980px" /></a><figcaption id="caption-attachment-3593" class="wp-caption-text">Google Analytics Duplicate Transactions</figcaption></figure>
<p>In the above screenshot, there are some duplicate transactions but considering the total amount of transactions, the problem is minor.</p>
<p>If your duplicate transaction ratio is &gt;10% you have a serious problem with your e-commerce numbers and before fixing it, you should take your numbers with a grain of salt.</p>
<p>PS! We should be thankful that Google has kept Transaction ID available as a dimension in almost all reports instead of hiding them as they do with the Client ID, User ID, Session ID and other really useful dimensions (that you should <a href="http://reflectivedata.com/ideas-for-google-analytics-custom-dimensions-and-metrics/">track using custom dimensions</a>).</p>
<h2>Fixing Duplicate Transactions</h2>
<p>By far the most common reason duplicate transactions are happening is that a transaction hit is sent to Google Analytics every time the &#8220;thank you&#8221; page is loaded. There are people who bookmark this page and go back to check the order id for tracking or whatnot. Also, some companies send the &#8220;thank-you&#8221; URL in the order confirmation email.</p>
<p>To fix this, there are two possible solutions.</p>
<h3>Option 1</h3>
<p>Make the event trigger based on something coming from the back end, something that only triggers when the actual transaction is happening. For example, after the user has entered their credit card information and pressed &#8220;Complete payment&#8221; and your system has validated the transaction. I.e. just before redirecting the user onto the &#8220;thank you&#8221; page.</p>
<h3>Option 2</h3>
<p>Make your &#8220;thank you&#8221; pages to load only once. If you keep your transaction hits on the &#8220;thank you&#8221; page, make sure a user can see and visit the page only once. Every subsequent attempt to access this page should redirect them to some other page. This could be an order overview page or something similar (should still be order-related and contain order details).</p>
<p>&#8230;</p>
<p>Now, to take it one step further, you can make your e-commerce tracking even more reliable by sending transaction hits straight from the back end using <a href="https://developers.google.com/analytics/devguides/collection/protocol/v1">Measurement Protocol</a>. This way you can make sure that no transaction goes untracked or that someone is sending fake transactions towards your Google Analytics instance.</p>
<p>Another option is to use <code>localStorage</code> to keep track of transaction IDs that have already been sent to Google Analytics. This method is described in detail by Simo Ahava in this <a href="https://www.simoahava.com/analytics/prevent-google-analytics-duplicate-transactions-with-customtask/" target="_blank" rel="noopener noreferrer">blog post</a>.</p>
<h2>Final thoughts</h2>
<p>Google Analytics is an excellent tool for keeping track of your e-commerce business. What you need to keep in mind, though, is that skewed numbers can do more harm than having no numbers at all.</p>
<p>This is why you should audit (or have someone else <a href="http://reflectivedata.com/services/analytics-services/">do it for you</a>) your Google Analytics and Enhanced Ecommerce setups regularly and compare the numbers in GA against the numbers in your back end and accounting.</p>
<p>If you see that the numbers don&#8217;t add up, see if you have any duplicate transactions by creating a simple custom report seen in the beginning of this blog post.</p>
<p>Have any questions or thoughts about detecting and fixing duplicate transactions in Google Analytics? Post them in the comments below.</p>
<p>***</p>
<p>To make sure you have access to reliable data even after problems like duplicate transactions have skewed your data, we recommend sending all of your Google Analytics data into a data warehouse like BigQuery. This makes sure you can filter out duplicated data and reprocess your reports to be 100% accurate. One solution to achieve this is to use a <a href="http://reflectivedata.com/analytics-data-pipeline/">Google Analytics Parallel Tracker</a> from Reflective Data.</p>
<p>The post <a href="https://reflectivedata.com/how-to-detect-and-fix-duplicate-transactions-in-google-analytics/">How to Detect and Fix Duplicate Transactions in Google Analytics</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://reflectivedata.com/how-to-detect-and-fix-duplicate-transactions-in-google-analytics/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Working with Google Analytics Data Using Python and Jupyter Notebooks</title>
		<link>https://reflectivedata.com/working-with-google-analytics-data-using-python-and-jupyter-notebooks</link>
					<comments>https://reflectivedata.com/working-with-google-analytics-data-using-python-and-jupyter-notebooks#comments</comments>
		
		<dc:creator><![CDATA[Silver Ringvee]]></dc:creator>
		<pubDate>Mon, 28 Oct 2019 09:19:41 +0000</pubDate>
				<category><![CDATA[Data Visualization]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[Jupyter Notebook]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[notebook]]></category>
		<guid isPermaLink="false">http://reflectivedata.com/?p=3574</guid>

					<description><![CDATA[<p>Python is a programming language with virtually limitless functionalities and one of the best languages for working with data. Jupyter Notebooks, on the other hand, is the most popular tool for running and sharing both your Python code and data analysis.</p>
<p>Putting Python and Notebooks together with Google Analytics, the most popular and a really powerful tool for tracking websites, gives you almost like a superpower for doing your analysis.</p>
<p>The post <a href="https://reflectivedata.com/working-with-google-analytics-data-using-python-and-jupyter-notebooks">Working with Google Analytics Data Using Python and Jupyter Notebooks</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="notebook-container show-input-blocks">
<div class="nb-notebook">
<div class="nb-worksheet">
<div class="nb-cell nb-markdown-cell">
<p>Python is a programming language with virtually limitless functionalities and one of the best languages for working with data. Jupyter Notebooks, on the other hand, is the most popular tool for running and sharing both your Python code and data analysis.</p>
<p>Putting Python and Notebooks together with Google Analytics, the most popular and a really powerful tool for tracking websites, gives you almost like a superpower for doing your analysis.</p>
<p>This is exactly what this post is about. Pulling in and analysing your Google Analytics data using Python and Notebooks.</p>
<p>Oh, and by the way, this blog post itself is a Jupyter Notebook created in Google&#8217;s <a href="https://colab.research.google.com">Colab</a>, a version of Jupyter Notebooks that makes it super easy to collaboratively work on and share your Notebooks.</p>
<p>We wrote more on how we managed to turn a Notebook into a WordPress blog post in <a href="http://reflectivedata.com/jupyer-notebooks-in-wordpress/">this article</a>.</p>
<p>Without furder ado, let&#8217;s start by loading in some dependencies we are going to need for superfsadfsadfsdfsafasdfsadfpulling data from Google Analytics.</p>
</div>
<div class="nb-cell nb-code-cell">
<div class="nb-input" data-prompt-number="0">
<pre class=" language-python"><code class=" language-python" data-language="python"><span class="token keyword">import</span> pandas <span class="token keyword">as</span> pd <span class="token comment"># Pandas is an open source library providing high-performance, easy-to-use data structures and data analysis tools for Python</span>
<span class="token keyword">import</span> json <span class="token comment"># JSON encoder and decoder for Python</span>
<span class="token keyword">import</span> requests <span class="token comment"># Library for sending HTTP requests</span></code></pre>
</div>
</div>
<div class="nb-cell nb-markdown-cell">
<p>There are many ways you can pull data from Google Analytics but one of the simplest is by using the API Query URI that you can grab from the <a href="https://</p>
<p>ga-dev-tools.appspot.com/query-explorer/&#8221;>Query Explorer</a>.</p>
<h3 id="step-1---go-to-query-explorer">Step 1 &#8211; Go to Query Explorer</h3>
<p>If you are not familiar with the <a href="https://ga-dev-tools.appspot.com/query-explorer/">Query Explorer</a>, this is an official tool from Google that lets </p>
<p>you play with the <a href="https://developers.google.com/analytics/devguides/reporting/core/v3/">Core Reporting API</a> by building queries to get data from your Google Analytics views (profiles). You can use these queries in any of the client libraries to build your own tools. In this case, the tool is a Notebook.</p>
<h3 id="step-2---authenticate">Step 2 &#8211; Authenticate</h3>
<p>Choose the Google Account that has access to the Google Analytics View from which you want to get data.</p>
<h3 id="step-3---build-the-query">Step 3 &#8211; Build the query</h3>
<p>If you know how Google Analytics works, building a query is rather straightforward.</p>
<p>First, choose the right Account, Property and View you want to access.</p>
<p><img decoding="async" src="https://i.imgur.com/uhZK3ma.png" alt="alt text" /></p>
<p>Then choose the date range. You can use the calendar picker or write dynamic ranges like from <code>90daysAgo</code> to <code>yesterday</code>.</p>
<p>Next, pick the metrics and dimensions. For example, you might pick metrics <code>ga:sessions</code> and <code>ga:users</code> and a dimension <code>ga:date</code></p>
<p>.</p>
<p>Finally, you can apply sorting, filtering and segmenting rules as you wish. I&#8217;d recommend using them after you feel comfortable with the basics.</p>
<p><img decoding="async" src="https://i.imgur.com/V9Gw8dj.png" alt="alt text" /></p>
<p>Perfect. Now test your query by pressing the &#8220;Run Query&#8221; button. If everything went as expected, you should see a table with results appear in a few seconds.</p>
<h3 id="step-4---get-the-api-query-uri">Step 4 &#8211; Get the API Query URI</h3>
<p>Now, copy the API Query URI &#8211; we are going to use it for making requests straight from the Notebook.</p>
<p><img decoding="async" src="https://i.imgur.com/Cb96t5Y.png" alt="alt text" /></p>
<p>Other options to pull data from Google Analytics using Python include:</p>
<ul>
<li>Using the Google Analytics <a href="https://developers.google.com/analytics/devguides/reporting/core/v4/quickstart/service-py">Reporting API library</a> for Python in your Notebook &#8211; based on <a href="https://github.com/googleapis/google-api-python-client">Google API Client</a> for Python</li>
<li>Building a custom endpoint for handling your queries using the abovementioned API</li>
<li>Exporting data from Google Analytics UI into CSV or XLSX and importing using <code>pd.read_csv()</code></li>
</ul>
<h2 id="making-the-request">Making the request</h2>
<p>Now that we have the API Query URI, we can make our first request using Python in the Notebook.</p>
<p>In this example, we are loading the number of Sessions and Users per day for the last 30 days.</p>
</div>
<div class="nb-cell nb-code-cell">
<div class="nb-input" data-prompt-number="2">
<pre class=" language-python"><code class=" language-python" data-language="python"><span class="token keyword">from</span> getpass <span class="token keyword">import</span> getpass <span class="token comment"># required only for hiding your variables</span>

api_query_uri <span class="token operator">=</span> getpass<span class="token punctuation">(</span><span class="token string">'Enter API Query URI here'</span><span class="token punctuation">)</span> <span class="token comment"># get the URI</span>
r <span class="token operator">=</span> requests<span class="token punctuation">.</span>get<span class="token punctuation">(</span>api_query_uri<span class="token punctuation">)</span> <span class="token comment"># make the request</span>
data<span class="token operator">=</span> r<span class="token punctuation">.</span>json<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># read data from a JSON format</span>
df <span class="token operator">=</span> pd<span class="token punctuation">.</span>DataFrame<span class="token punctuation">(</span>data<span class="token punctuation">[</span><span class="token string">'rows'</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># turn data into a Pandas data frame</span>
df <span class="token operator">=</span> df<span class="token punctuation">.</span>rename<span class="token punctuation">(</span>columns<span class="token operator">=</span><span class="token punctuation">{</span><span class="token number">0</span><span class="token punctuation">:</span> <span class="token string">'Date'</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">:</span> <span class="token string">'Sessions'</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">:</span> <span class="token string">'Users'</span><span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token comment"># giving the columns some proper titles</span>
df<span class="token punctuation">[</span><span class="token string">'Sessions'</span><span class="token punctuation">]</span> <span class="token operator">=</span> df<span class="token punctuation">[</span><span class="token string">'Sessions'</span><span class="token punctuation">]</span><span class="token punctuation">.</span>astype<span class="token punctuation">(</span><span class="token builtin">int</span><span class="token punctuation">)</span> <span class="token comment"># formatting sessions as ints</span>
df<span class="token punctuation">[</span><span class="token string">'Users'</span><span class="token punctuation">]</span> <span class="token operator">=</span> df<span class="token punctuation">[</span><span class="token string">'Users'</span><span class="token punctuation">]</span><span class="token punctuation">.</span>astype<span class="token punctuation">(</span><span class="token builtin">int</span><span class="token punctuation">)</span> <span class="token comment"># formatting users as ints</span>
df<span class="token punctuation">[</span><span class="token string">'Date'</span><span class="token punctuation">]</span> <span class="token operator">=</span> pd<span class="token punctuation">.</span>to_datetime<span class="token punctuation">(</span>df<span class="token punctuation">[</span><span class="token string">'Date'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>

df<span class="token punctuation">.</span>head<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># printing the first five rows</span></code></pre>
</div>
<div class="nb-output" data-prompt-number="2">
<pre class="nb-stdout">Enter API Query URI here··········
</pre>
</div>
<div class="nb-output" data-prompt-number="2">
<div class="nb-html-output">
<div>
<style scoped="">
    .dataframe tbody tr th:only-of-type {<br />        vertical-align: middle;<br />    }</p>
<p>    .dataframe tbody tr th {<br />        vertical-align: top;<br />    }</p>
<p>    .dataframe thead th {<br />        text-align: right;<br />    }<br /></style>
<table class="dataframe" border="1">
<thead>
<tr style="text-align: right;">
<th></th>
<th>Date</th>
<th>Sessions</th>
<th>Users</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>2019-09-25</td>
<td>64076</td>
<td>83335</td>
</tr>
<tr>
<th>1</th>
<td>2019-09-26</td>
<td>74569</td>
<td>103784</td>
</tr>
<tr>
<th>2</th>
<td>2019-09-27</td>
<td>59752</td>
<td>77642</td>
</tr>
<tr>
<th>3</th>
<td>2019-09-28</td>
<td>57743</td>
<td>76690</td>
</tr>
<tr>
<th>4</th>
<td>2019-09-29</td>
<td>63712</td>
<td>82980</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="nb-cell nb-markdown-cell">
<p>Great, so our data is now loaded and formatted for our needs.</p>
<p>Let&#8217;s go ahead and try visualizing it. For timeseries data, a line chart should work well.</p>
</div>
<div class="nb-cell nb-code-cell">
<div class="nb-input" data-prompt-number="3">
<pre class=" language-python"><code class=" language-python" data-language="python">df<span class="token punctuation">.</span>plot<span class="token punctuation">.</span>line<span class="token punctuation">(</span>x<span class="token operator">=</span><span class="token string">'Date'</span><span class="token punctuation">,</span> y<span class="token operator">=</span><span class="token punctuation">[</span><span class="token string">'Sessions'</span><span class="token punctuation">,</span> <span class="token string">'Users'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> ylim<span class="token operator">=</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token boolean">None</span><span class="token punctuation">]</span><span class="token punctuation">,</span> figsize<span class="token operator">=</span><span class="token punctuation">[</span><span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">]</span><span class="token punctuation">)</span></code></pre>
</div>
<div class="nb-output" data-prompt-number="3">
<pre class="nb-text-output">&lt;matplotlib.axes._subplots.AxesSubplot at 0x7f3cb89692b0&gt;</pre>
</div>
<div class="nb-output" data-prompt-number="3"><img decoding="async" class="nb-image-output" src="data:image/png;base64,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" /></div>
</div>
<div class="nb-cell nb-markdown-cell">
<p>That was easy, right?</p>
<p>Now, let&#8217;s take a look at a bit more advanced visualization by drawing a population pyramid based on data we are now pulling from Google Analytics.</p>
<p>This is how the query looks like:</p>
<pre><code>dimensions: ga:userAgeBracket, ga:userGender
metrics: ga:sessions</code></pre>
</div>
<div class="nb-cell nb-code-cell">
<div class="nb-input" data-prompt-number="4">
<pre class=" language-python"><code class=" language-python" data-language="python">api_query_uri <span class="token operator">=</span> getpass<span class="token punctuation">(</span><span class="token string">'Enter API Query URI here'</span><span class="token punctuation">)</span> <span class="token comment"># get the URI</span>
r <span class="token operator">=</span> requests<span class="token punctuation">.</span>get<span class="token punctuation">(</span>api_query_uri<span class="token punctuation">)</span> <span class="token comment"># make the request</span>
data<span class="token operator">=</span> r<span class="token punctuation">.</span>json<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># read data from a JSON format</span>
df <span class="token operator">=</span> pd<span class="token punctuation">.</span>DataFrame<span class="token punctuation">(</span>data<span class="token punctuation">[</span><span class="token string">'rows'</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># turn data into a Pandas data frame</span>
df <span class="token operator">=</span> df<span class="token punctuation">.</span>rename<span class="token punctuation">(</span>columns<span class="token operator">=</span><span class="token punctuation">{</span><span class="token number">0</span><span class="token punctuation">:</span> <span class="token string">'Age'</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">:</span> <span class="token string">'Gender'</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">:</span> <span class="token string">'Sessions'</span><span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token comment"># giving the columns some proper titles</span>
df<span class="token punctuation">[</span><span class="token string">'Sessions'</span><span class="token punctuation">]</span> <span class="token operator">=</span> df<span class="token punctuation">[</span><span class="token string">'Sessions'</span><span class="token punctuation">]</span><span class="token punctuation">.</span>astype<span class="token punctuation">(</span><span class="token builtin">int</span><span class="token punctuation">)</span> <span class="token comment"># formatting sessions as ints</span>
df<span class="token punctuation">.</span>head<span class="token punctuation">(</span><span class="token punctuation">)</span></code></pre>
</div>
<div class="nb-output" data-prompt-number="4">
<pre class="nb-stdout">Enter API Query URI here··········
</pre>
</div>
<div class="nb-output" data-prompt-number="4">
<div class="nb-html-output">
<div>
<style scoped="">
    .dataframe tbody tr th:only-of-type {<br />        vertical-align: middle;<br />    }</p>
<p>    .dataframe tbody tr th {<br />        vertical-align: top;<br />    }</p>
<p>    .dataframe thead th {<br />        text-align: right;<br />    }<br /></style>
<table class="dataframe" border="1">
<thead>
<tr style="text-align: right;">
<th></th>
<th>Age</th>
<th>Gender</th>
<th>Sessions</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>18-24</td>
<td>female</td>
<td>56244</td>
</tr>
<tr>
<th>1</th>
<td>18-24</td>
<td>male</td>
<td>9362</td>
</tr>
<tr>
<th>2</th>
<td>25-34</td>
<td>female</td>
<td>228866</td>
</tr>
<tr>
<th>3</th>
<td>25-34</td>
<td>male</td>
<td>33987</td>
</tr>
<tr>
<th>4</th>
<td>35-44</td>
<td>female</td>
<td>109795</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="nb-cell nb-code-cell">
<div class="nb-input" data-prompt-number="5">
<pre class=" language-python"><code class=" language-python" data-language="python"><span class="token keyword">import</span> matplotlib<span class="token punctuation">.</span>pyplot <span class="token keyword">as</span> plt <span class="token comment"># Matplotlib is a popular library for drawing plots in Python</span>
<span class="token keyword">import</span> seaborn <span class="token keyword">as</span> sns <span class="token comment"># Seaborn is a Python data visualization library based on matplotlib</span>

<span class="token comment"># Making copy of the dataframe and modifying session values to be negative for females (see chart below to see why)</span>
df<span class="token punctuation">[</span><span class="token string">'Sessions'</span><span class="token punctuation">]</span> <span class="token operator">=</span> df<span class="token punctuation">.</span><span class="token builtin">apply</span><span class="token punctuation">(</span><span class="token keyword">lambda</span> row<span class="token punctuation">:</span> row<span class="token punctuation">[</span><span class="token string">'Sessions'</span><span class="token punctuation">]</span> <span class="token operator">*</span> <span class="token operator">-</span><span class="token number">1</span> <span class="token keyword">if</span> row<span class="token punctuation">[</span><span class="token string">'Gender'</span><span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token string">'female'</span> <span class="token keyword">else</span> row<span class="token punctuation">[</span><span class="token string">'Sessions'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> axis<span class="token operator">=</span><span class="token number">1</span><span class="token punctuation">)</span>

<span class="token comment"># Draw Plot</span>
plt<span class="token punctuation">.</span>figure<span class="token punctuation">(</span>figsize<span class="token operator">=</span><span class="token punctuation">(</span><span class="token number">8</span><span class="token punctuation">,</span><span class="token number">5</span><span class="token punctuation">)</span><span class="token punctuation">,</span> dpi<span class="token operator">=</span> <span class="token number">80</span><span class="token punctuation">)</span>
group_col <span class="token operator">=</span> <span class="token string">'Gender'</span>
order_of_bars <span class="token operator">=</span> df<span class="token punctuation">.</span>Age<span class="token punctuation">.</span>unique<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span>
colors <span class="token operator">=</span> <span class="token punctuation">[</span>plt<span class="token punctuation">.</span>cm<span class="token punctuation">.</span>Spectral<span class="token punctuation">(</span>i<span class="token operator">/</span><span class="token builtin">float</span><span class="token punctuation">(</span><span class="token builtin">len</span><span class="token punctuation">(</span>df<span class="token punctuation">[</span>group_col<span class="token punctuation">]</span><span class="token punctuation">.</span>unique<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span><span class="token builtin">len</span><span class="token punctuation">(</span>df<span class="token punctuation">[</span>group_col<span class="token punctuation">]</span><span class="token punctuation">.</span>unique<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">]</span>

<span class="token keyword">for</span> c<span class="token punctuation">,</span> group <span class="token keyword">in</span> <span class="token builtin">zip</span><span class="token punctuation">(</span>colors<span class="token punctuation">,</span> df<span class="token punctuation">[</span>group_col<span class="token punctuation">]</span><span class="token punctuation">.</span>unique<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
    sns<span class="token punctuation">.</span>barplot<span class="token punctuation">(</span>x<span class="token operator">=</span><span class="token string">'Sessions'</span><span class="token punctuation">,</span> y<span class="token operator">=</span><span class="token string">'Age'</span><span class="token punctuation">,</span> data<span class="token operator">=</span>df<span class="token punctuation">.</span>loc<span class="token punctuation">[</span>df<span class="token punctuation">[</span>group_col<span class="token punctuation">]</span><span class="token operator">==</span>group<span class="token punctuation">,</span> <span class="token punctuation">:</span><span class="token punctuation">]</span><span class="token punctuation">,</span> order<span class="token operator">=</span>order_of_bars<span class="token punctuation">,</span> color<span class="token operator">=</span>c<span class="token punctuation">,</span> label<span class="token operator">=</span>group<span class="token punctuation">)</span>

<span class="token comment"># Decorations    </span>
plt<span class="token punctuation">.</span>xlabel<span class="token punctuation">(</span><span class="token string">"$Sessions$"</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>ylabel<span class="token punctuation">(</span><span class="token string">"Age"</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>yticks<span class="token punctuation">(</span>fontsize<span class="token operator">=</span><span class="token number">12</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>title<span class="token punctuation">(</span><span class="token string">"Population pyramid of the website visitors"</span><span class="token punctuation">,</span> fontsize<span class="token operator">=</span><span class="token number">16</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>legend<span class="token punctuation">(</span><span class="token punctuation">)</span>
plt<span class="token punctuation">.</span>show<span class="token punctuation">(</span><span class="token punctuation">)</span></code></pre>
</div>
<div class="nb-output" data-prompt-number="5"><img decoding="async" class="nb-image-output" src="data:image/png;base64,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9VyTJ0/mQx/6UFvPIUlSX3EEaBA755xz+PrXv85HP/rR/q6KJEmDiiNAg9QXv/hFbrnlFo499li233577rzzTnbZZRcmTpzIVlttxSWXXALAzJkzWX311fna177G1ltvzbhx47j11ls58sgjmTBhAm9729uYMWMGAE899RQ777wz22yzDePHj+ewww5jyZIlTc9/wQUXsN1227H11luz4447cs899/RZ2yVJWlEGQIPUmWeeycSJEzn99NO58sor+exnP8tFF13EtGnT+N3vfsfRRx/NE088AcBzzz3HNttsw/Tp0/nqV7/Kbrvtxl577cXdd9/NQQcdxPHHHw/A6quvzuWXX85dd93Fvffey8yZM/nZz372mnPfeuutXHzxxdx8881Mnz6dE088kf33379P2y9J0opwCmwImDp1Ko8++ijvf//7l0l/4IEH2HjjjRk1atTS9TsTJ06ko6ODnXfeGYBtt92Wiy66CCjudP2Vr3yF3//+92Qmc+bM4W1vexv77bffMuVedtll3HPPPWy33XZL0+bNm8fLL7/MKqus0s6mSpLUKwyAhoDMZPz48UydOvU1+2bOnMnKK6+89PHw4cMZNWrUMo8XLVoEwGmnncacOXO4/fbbGTVqFEcddVTTn/3ITA466CBOOumkNrRGkqT2cwpsCNh+++3585//zLXXXrs07e6772bhwoU9KueZZ55h3XXXZdSoUTz11FNL1xE12muvvbjwwgt57LHHgGLkaNq0acvfAEmS+pgjQCtgoNyvZ4011uCKK67gS1/6EkcffTR///vf2XDDDbn00kt7VM7hhx/Ohz/8YcaPH896663HpEmTmubbYYcdOOWUU9h7771ZtGgRCxcuZPfdd2fixIm90RxJktouvEPva40ZMyZnz569TNrixYt58MEH2XTTTRk+fHg/1Wzwsd8kDWT+GvzQEhFPZOaYVvI6BSZJkirHAEiSJFXOgAuAIuKdEXF9RLwQEc9GxNSIGFbuy4h4OSLm121b9HedJUnS4DKgAqCIeCfwW2AyMBpYCzgSqF+otGdmdtRtnf4IVhkwjW1fjSVJ0mA00K4COwU4PzP/ty7t9v6qjCRJGpoGzAhQRLwO2B5YHBF3RMTciLgrIhqXxV9Y7pseEZ/ppXMfFRGza9v8+fN7o1hJkjRADaQRoDdSBGQHAXsAfwD2An4SEe/J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" /></div>
</div>
<div class="nb-cell nb-markdown-cell">
<p>Beautiful, now we know that majority of our audience is younger females.</p>
<h2 id="more-custom-visualizations">More custom visualizations</h2>
<p>With the wide variety of Python packages available for data visualization, the number of different charts you can use is virtually limitless.</p>
<p>In the next example, let&#8217;s try out joy plot. If you don&#8217;t know what a joy plot is then you are about to learn it now.</p>
<p>First, let&#8217;s install the required Python package.</p>
</div>
<div class="nb-cell nb-code-cell">
<div class="nb-input" data-prompt-number="6">
<pre class=" language-python"><code class=" language-python" data-language="python">!pip install joypy <span class="token comment"># install joypy</span>
<span class="token keyword">import</span> joypy <span class="token comment"># JoyPy is a one-function Python package based on matplotlib + pandas with a single purpose: drawing joyplots.</span></code></pre>
</div>
<div class="nb-output" data-prompt-number="6">
<pre class="nb-stdout">Requirement already satisfied: joypy in /usr/local/lib/python3.6/dist-packages (0.2.1)
</pre>
</div>
</div>
<div class="nb-cell nb-markdown-cell">
<p>Now, let&#8217;s make the request to load required data. For this example we are using the number of transactions per age bracket and hour of the day for the past 90 days.</p>
</div>
<div class="nb-cell nb-code-cell">
<div class="nb-input" data-prompt-number="7">
<pre class=" language-python"><code class=" language-python" data-language="python">api_query_uri <span class="token operator">=</span> getpass<span class="token punctuation">(</span><span class="token string">'Enter API Query URI here'</span><span class="token punctuation">)</span> <span class="token comment"># get the URI</span>
r <span class="token operator">=</span> requests<span class="token punctuation">.</span>get<span class="token punctuation">(</span>api_query_uri<span class="token punctuation">)</span> <span class="token comment"># make the request</span>
data<span class="token operator">=</span> r<span class="token punctuation">.</span>json<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># read data from a JSON format</span>
df <span class="token operator">=</span> pd<span class="token punctuation">.</span>DataFrame<span class="token punctuation">(</span>data<span class="token punctuation">[</span><span class="token string">'rows'</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># turn data into a Pandas data frame</span>
df <span class="token operator">=</span> df<span class="token punctuation">.</span>rename<span class="token punctuation">(</span>columns<span class="token operator">=</span><span class="token punctuation">{</span><span class="token number">0</span><span class="token punctuation">:</span> <span class="token string">'Hour'</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">:</span> <span class="token string">'Age'</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">:</span> <span class="token string">'Transactions'</span><span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token comment"># giving the columns some proper titles</span>
df<span class="token punctuation">[</span><span class="token string">'Hour'</span><span class="token punctuation">]</span> <span class="token operator">=</span> df<span class="token punctuation">[</span><span class="token string">'Hour'</span><span class="token punctuation">]</span><span class="token punctuation">.</span>astype<span class="token punctuation">(</span><span class="token builtin">int</span><span class="token punctuation">)</span> <span class="token comment"># formatting hours as ints</span>
df<span class="token punctuation">[</span><span class="token string">'Transactions'</span><span class="token punctuation">]</span> <span class="token operator">=</span> df<span class="token punctuation">[</span><span class="token string">'Transactions'</span><span class="token punctuation">]</span><span class="token punctuation">.</span>astype<span class="token punctuation">(</span><span class="token builtin">int</span><span class="token punctuation">)</span> <span class="token comment"># formatting transactions as ints</span>
df<span class="token punctuation">.</span>head<span class="token punctuation">(</span><span class="token punctuation">)</span></code></pre>
</div>
<div class="nb-output" data-prompt-number="7">
<pre class="nb-stdout">Enter API Query URI here··········
</pre>
</div>
<div class="nb-output" data-prompt-number="7">
<div class="nb-html-output">
<div>
<style scoped="">
    .dataframe tbody tr th:only-of-type {<br />        vertical-align: middle;<br />    }</p>
<p>    .dataframe tbody tr th {<br />        vertical-align: top;<br />    }</p>
<p>    .dataframe thead th {<br />        text-align: right;<br />    }<br /></style>
<table class="dataframe" border="1">
<thead>
<tr style="text-align: right;">
<th></th>
<th>Hour</th>
<th>Age</th>
<th>Transactions</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>0</td>
<td>18-24</td>
<td>47</td>
</tr>
<tr>
<th>1</th>
<td>0</td>
<td>25-34</td>
<td>195</td>
</tr>
<tr>
<th>2</th>
<td>0</td>
<td>35-44</td>
<td>32</td>
</tr>
<tr>
<th>3</th>
<td>0</td>
<td>45-54</td>
<td>26</td>
</tr>
<tr>
<th>4</th>
<td>0</td>
<td>55-64</td>
<td>26</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="nb-cell nb-markdown-cell">
<p>To make our dataframe more suitable for the joy plot, we need to pivot it.</p>
</div>
<div class="nb-cell nb-code-cell">
<div class="nb-input" data-prompt-number="9">
<pre class=" language-python"><code class=" language-python" data-language="python">pivot <span class="token operator">=</span> pd<span class="token punctuation">.</span>pivot_table<span class="token punctuation">(</span>df<span class="token punctuation">,</span> values<span class="token operator">=</span><span class="token string">'Transactions'</span><span class="token punctuation">,</span> index<span class="token operator">=</span><span class="token punctuation">[</span><span class="token string">'Hour'</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
    columns<span class="token operator">=</span><span class="token punctuation">[</span><span class="token string">'Age'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>

pivot <span class="token operator">=</span> pivot<span class="token punctuation">.</span>fillna<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span>

pivot<span class="token punctuation">.</span>head<span class="token punctuation">(</span><span class="token punctuation">)</span></code></pre>
</div>
<div class="nb-output" data-prompt-number="9">
<div class="nb-html-output">
<div>
<style scoped="">
    .dataframe tbody tr th:only-of-type {<br />        vertical-align: middle;<br />    }</p>
<p>    .dataframe tbody tr th {<br />        vertical-align: top;<br />    }</p>
<p>    .dataframe thead th {<br />        text-align: right;<br />    }<br /></style>
<table class="dataframe" border="1">
<thead>
<tr style="text-align: right;">
<th>Age</th>
<th>18-24</th>
<th>25-34</th>
<th>35-44</th>
<th>45-54</th>
<th>55-64</th>
<th>65+</th>
</tr>
<tr>
<th>Hour</th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>47</td>
<td>195</td>
<td>32</td>
<td>26</td>
<td>26</td>
<td>0</td>
</tr>
<tr>
<th>1</th>
<td>37</td>
<td>68</td>
<td>37</td>
<td>16</td>
<td>42</td>
<td>0</td>
</tr>
<tr>
<th>2</th>
<td>21</td>
<td>16</td>
<td>5</td>
<td>11</td>
<td>5</td>
<td>0</td>
</tr>
<tr>
<th>3</th>
<td>0</td>
<td>16</td>
<td>11</td>
<td>0</td>
<td>5</td>
<td>0</td>
</tr>
<tr>
<th>4</th>
<td>5</td>
<td>5</td>
<td>5</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="nb-cell nb-markdown-cell">
<p>Now, let&#8217;s see how our joy plot looks like by running the following code.</p>
</div>
<div class="nb-cell nb-code-cell">
<div class="nb-input" data-prompt-number="10">
<pre class=" language-python"><code class=" language-python" data-language="python">x_range <span class="token operator">=</span> <span class="token builtin">list</span><span class="token punctuation">(</span><span class="token builtin">range</span><span class="token punctuation">(</span><span class="token number">24</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
fig<span class="token punctuation">,</span> axes <span class="token operator">=</span> joypy<span class="token punctuation">.</span>joyplot<span class="token punctuation">(</span>pivot<span class="token punctuation">,</span> kind<span class="token operator">=</span><span class="token string">"values"</span><span class="token punctuation">,</span> x_range<span class="token operator">=</span>x_range<span class="token punctuation">,</span> figsize<span class="token operator">=</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">,</span><span class="token number">8</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
axes<span class="token punctuation">[</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">.</span>set_xticks<span class="token punctuation">(</span>x_range<span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre>
</div>
<div class="nb-output" data-prompt-number="10"><img decoding="async" class="nb-image-output" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsgAAAI4CAYAAAB3OR9vAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3XecVPW9//HXmb69V3pViqAUUVAEFESxi6AoIGpMLMlN1CSWn5JiizFG7801mlxjbrCkaK4xiS0aiBFJRBClrPTO9r47feb7+2OWZZDi0na2vJ+PxzzmzJlzZj6T4M57vudzvscyxiAiIiIiIjG2RBcgIiIiItKRKCCLiIiIiMRRQBYRERERiaOALCIiIiISRwFZRERERCSOI9EFHANNvyEiIiIiX8Y60h00giwiIiIiEkcBWUREREQkjgKyiIiIiEgcBWQRERERkTgKyCIiIiIicRSQRURERETiKCCLiIiIiMRRQBYRERERiaOALCIiIiISRwFZRERERCSOArKIiIiISBwFZBERERGROArIIiIiIiJxFJBFREREROIoIIuIiIiIxFFAFhERERGJo4AsIiIiIhJHAVlEREREJI4CsoiIiIhIHAVkEREREZE4CsgiIiIiInEUkEVERERE4iggi4iIiIjEUUAWEREREYmjgCwiIiIiEkcBWUREREQkjgKyiIiIiEgcBWQRERERkTgKyCIiIiIicRSQRURERETiKCCLiIiIiMRRQBYRERERiaOALCIiIiISRwFZRERERCSOArKIiIiISBwFZBERERGROArIIiIiIiJxFJBFREREROIoIIuIiIiIxFFAFhERERGJo4AsIiIiIhJHAVlEREREJI4CsoiIiIhIHAVkEREREZE4CsgiIiIiInEUkEVERERE4iggi4iIiIjEUUAWEREREYmjgCwiIiIiEkcBWUREREQkjgKyiIiIiEgcBWQRERERkTgKyCIiIiIicRSQRURERETiKCCLiIiIiMRRQBYRERERiaOALCIiIiISRwFZRERERCSOArKIiIiISBwFZBERERGROArIIiIiIiJxFJBFREREROIoIIuIiIiIxFFAFhERERGJo4AsIiIiIhJHAVlEREREJI4CsoiIiIhIHAVkEREREZE4CsgiIiIiInEUkEVERERE4iggi4iIiIjEUUAW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zZs3M2HCBBqCUHjdY0STcxJdkoh0Y9FQgEh9BaH6MqzGCiL1ZQRqygjWlhKuLyca9O23fXZuHv369mPwoAEsWbKE8opKss++luSxV+gcis5LI8gikjilpaVMnTqVumY/RQrHItIB2JxubLm9cOb2al2X2nJvjCHqayBcV0akvgyrsZJQXRnrqkr5dNPfcSZn0nvBvZicfokpXhJGAVlEjova2lrOP/98du0po3jOI5iMHokuSUTksCzLwp6cgT05A4pPAiAJSI/bRoeru6c2X8RaRORQvF4vF198MetKPqfwyvshf2CiSxIRETlqCsgickxCoRCzZs3iww8/pOCSb2PrNSLRJYmIiBwTBWQROWrRaJQbb7yRv/71r+RPvxXnoPGJLklEROSYKSCLyFFpbGxkwYIFLFq0iNxz5uIZcUGiSxIRETkudJKeiByxpUuXMnfuXLZt307O2deSPG5WoksSERE5bjSCLCJtFgwGuffee5k4cSJlDX56XfcjUsdfoytKiYhIl6IRZBFpk7Vr13LdddexatUqMk49n6zJN2FcSYkuS0RE5LhTQBaRw4pGozz11FPcc8894Eqmx6yFOPqN1dygIiLSZSkgi8gh7dixgwULFvD3v/+dtJPOIGf61zGejESXJSIickIpIIvIAYwxvPTSS9x22214/UEKZ3wT17BzMeo1FhGRbkABWUT2U1NTwy233MLvf/97UnsPpce1d2LSChJdloiISLtRQBaRVm+//TYLFiygvKKS3MnzSR5zBcZmT3RZIiIi7UrTvIkIXq+X22+/nenTp9MQddF7wU9JOf0qLIVjERHphjSCLNLNLV++nOuuu44NGzaQNe4y0s6eh7G7El2WiIhIwmgEWaSbCofD/OAHP+DMM89kZ0Udva59mPRJN2EpHIuISDenEWSRbmjDhg3MnTuXjz76iPRTppB93lcxrpRElyUiItIhdNqAHAgEcLvdiS5DpFMxxvDMM89w5513ErU5Kb7iHpyDJuiiHyIiInE6bYvFhLPOYufOnYkuQ6TTKC0tZcaMGdx66604iodSfMPPcA6akOiyREREOpxOG5A/XbOOk4aP5J333kt0KSId3quvvsrw4cP523uLyZ9+C1lXfo9ocnaiyxIREemQOm1AHnnb04QdKUyfdj4/eOTHGKODxCJfVF9fz7x585g5cyaB5Dx63fifJI2cgaUr4omIiBxSpw3Iyfm9KZz3BEkDT2fhvd9h+mVX4fV6E12WSIexZMkSRowYwYsvvkTO2XPIufpHRNOLE12WiIhIh9dpAzKAzZ1M7mX3kHn2XN55/Y+cfOpYtmzZkuiyRBLK7/dz1113MWXKFKp8UXrNf5zU8XOw7J32nFwREZF21akDMoBl2cgYP5v8mQvZvXMHQ0eO4q9vvpXoskQS4tNPP2Xs2LH85Cc/IWPUheTNfRLyByW6LBERkU6l0wfkvZIGjKFw3hOYpEwumjGD+77/oPqSpdtoaGjgrrvuYsyYMWzaUUrPq39Axnm3gNOT6NJEREQ6nS4TkAGcWcUUXPc4KSdN4OHv3c+5My6jqakp0WWJnDDGGF544QVOOukknnjiCVKGn0fhgp9h7zMq0aWJiIh0Wl0qIAPYXEnkXPIdMictYPFbf2HwKaPYuHFjossSOe4+/fRTJk6cyNy5c2l0ZND7+p+Sef7tGE9aoksTERHp1LpcQAawLIuMcVeSP+sHlJeXMXzkKP742uuJLkvkuKitreXrX/86o0aNYvmqNRTO+CY5c34M+QMTXZqIiEiX0CUD8l5JfU+laP6TWOn5XHnFZdxx9/8jGo0muiyRoxKNRnnuuecYPHgw//3006SPmkHhTc/gHn4eltWl/1MWERFpV13+W9WRUUD+tY+RMnQSP/3RQ5w99ULq6+sTXZbIEVm+fDlnnHEGN910E/6UQvrc+J9knPtVcKcmujQREZEup8sHZACb00POjDvIOvdmPlz8Nwafchrr1q1LdFkiX6qqqoqbb76ZcePGsXr9Foou/TbZsx/BZPdNdGkiIiJdVrcIyBDrS04fcwkFVz9EdU0tI0eN5aXfv5LoskQOKhKJ8PTTTzN48GCe+9XzZJ5+OYU3PoPr5HN0mWgREZETrNsE5L08vU+hcN6TOHJ6cu3sq7jtju8QiUQSXZZIq6VLlzJmzBhuu+02Qpl96H3Tz0ifdAPGlZTo0kRERLqFbheQARzpueRf8yipI6bx9E9/zJmTp1FbW5vosqSbKysrY/78+Zx11lms376H4ivvJfuqH2Iyeya6NBERkW7FkegCEsVyuMie/nVcRYNY/rdnGTTsVN5788+MHDki0aVJNxMKhfjZz37GwoUL8fr8ZI+fTdoZV+kqeCIiIgnSLUeQ97Isi7RTL6BwziPUNzYx+vRx/PqFlxJdlnQjixcv5tRTT+WOO+7AFJxMr688TdrZcxWORUREEqhbB+S93D2GUDD/SZz5/Vgw91puuu2bhMPhRJclXdjOnTuZPXs2U6ZMYWt5LT1nLyT7igcw6UWJLk1ERKTbU0Bu4UjNJv/qh0k7bQbPPf0UY86aTFVVVaLLki4mEAjwyCOPcPLJJ/PH1/5EzjnXkTf/Z9j7jtXsFCIiIh1Et+1BPhjL7iR72i24Cgfy2TtPM2jYSP72xp8ZM3pUokuTLuCtt97iG9/4Bhs3biTt5PH0OvcrRFPzEl2WiIiIfIFGkA8idcRUCq79EU2+IOPOPJNn/uf5RJckndjWrVu57LLLuOCCC9hd56fXnAfJvvRehWMREZEOSgH5ENxFgymc/ySuopO45Ss3cN1NX9NUcNJm0WiU9evX873vfY+hQ4fyxlvvkDtlAbnz/xNbr1MTXZ6IiIgchlosDsOekkn+rB9Su+R5XnzuWV7+9XOcfc4krrtmNpdeeil5eRoBlNg0bSUlJaxcubL1turTT2luagIgfdg5ZE++EZOSneBKRUREpC0sY0yiazgqEx9bbHbUeNvt/QJlmwhs+ICmkg8I1ZVh2WycMf4srr16FpdffjnFxcXtVoskjs/nY/Xq1axcuZJPPvmElStXsnr1agKBAAB2VxKugn64CwaQXDwIW/5A7Dm9E1y1iIhIt/bitkdnXHckOyggHyFjDKGKrQQ2fkjT50sJVu/EsixOGzuO666exZVXXknv3gpEXUFDQwOrVq1qDcIrV66kpKSk9dLkzuQ0nPkD8BQOILl4ICanL/bMYiybPcGVi4iISBwF5PYWrNpBYOOHNK//kED5FgCGjxzFtVdfxcyZMxk4cGCCK5S2qKqq2i8Ir/zkEzZt3Nj6vCs9B0deP5KKBpFUNACT0w97er6mZhMREen4FJATKVS7B/+GD/Fu+BD/ng0ADB46nGtnx8Ly0KFDE1yhGGPYs2fPfi0SK1auZNfOna3buLMKceT3J6V4EK6C/picfjhS1T8sIiLSSSkgdxTh+gp8Gz7Et/FDfDvXAdB3wCDmXD2Lq2bOZOTIkRp9PMGMMezcuZMVK1bsu61cSWVFRWwDy8KT2wtHXn9SegzCmd8PcvphT0pLbOEiIiJyPCkgd0Thxmr8G/+Fb+OHeLevBhOluFdf5sy+iquumsnYsbqK2rEyxrBr1y4+/vjj1jD88ccrqKqqBMCy2fHk98GRP4DU4kHY8/th5fTF5kpKcOUiIiJygikgd3QRbz2+jcsIbFxG09ZVEI2QX9SDWTOvZPasqxg/fjw2m6anPpy9YTgWgj8+eBjO64OjcACpxYOx5/ePhWGnO8GVi4iISAIoIHcmEX8T/o3/JrDpQ5o2r8REQmTn5jPzyiuYddVMRowY0a4jyw6Hg/T09A4V0OPD8N5A/PGKFVRVfiEMFwwgtccg7PkDFIZFREQk3vEPyJZl9QJ+AxQABviFMeYpy7K+B3wFqGzZ9F5jzBsH2f+HwKVAFKgArjfG7Il7fiywDLjaGPNKWwvvCgE5XjTgxbd5OcFNy2jcuBwTDiSkDsuySEvPIDMri+zsbPJyssnO3nfLalkfv7z3Pinp2NoVvhiGV6xYwccrVrT2DMfCcG8cBQMVhkVERKStTkhALgKKjDErLctKA1YAlwGzgCZjzONfsn+6MaahZfkbwFBjzNdaHtuBvwF+4FfdOSDHi4b8+LeuxO5r30tbm2iEqL+ZiK+RsK+BsK+JsK8R42/E+JsJ+xrBRA+5v8vtISMzk+ysbHJzs8k5SLCOD9ipqals2LBhX5vEwcJw/gBSewzGXjAAK6cPNqenvf7nEBERka7hiAPyl15q2hhTCpS2LDdallUC9GjrG+wNxy1SiI1C7/V14FVgbFtfrzuwOT0kDx6f6DIOYEwUE/QR9TcR8TUS9TdhBZog0IwJNBH1NxLyNbLb18T2HfVE1+/CBJqJ+BuJBv2HfF3LsrWMDI+gaNRgbPn9seX2VRgWERGRhPjSgBzPsqy+wGnAv4EJwO2WZc0DPgbuNMYcdMjTsqyHgHlAPTC5ZV0P4PKWx0cckMsbDh245MSwLBuWOwWbOwVHRsER7WsiIaL+JqK+JiL+WJiOBppxZhbizO+nMCwiIiIdRpsDsmVZqcRGe79pjGmwLOvnwA+JjQj/EPgJcMPB9jXG3AfcZ1nWPcDtwELgSeC7xpjo0ZyI1is7GW8wfMT7SaJ4AM0vLCIiIu1rT53/2SPdp02zWFiW5QT+ArxtjHniIM/3Bf5ijBluWdbzxEaZ9xhjLvzCdr2BN1q22wrsTca5gBe42RjzWhtr75zTb4iIiIhIezrikdgvHUG2YsO7zwEl8eHYsqyilv5kiLVKrAEwxiz4wv6DjDEbWx5eCnzesl2/uG1+TSxgtzUci4iIiIicEG1psZgAzAVWW5a1qmXdvcA1lmWdSmwkdxvw1UPs/6hlWScRm+ZtO/C1Y6pYREREROQE6rQXCkEtFiIiIiLy5Y64xaLjXDJNRERERKQDUEAWEREREYmjgCwiIiIiEkcBWUREREQkjgKyiIiIiEgcBWQRERERkTgKyCIiIiIicRSQRURERETiKCCLiIiIiMRRQBYRERERiaOALCIiIiISRwFZRERERCSOArKIiIiISBwFZBERERGROArIIiIiIiJxFJBFREREROIoIIuIiIiIxFFAFhERERGJo4AsIiIiIhJHAVlEREREJI4CsoiIiIhIHAVkEREREZE4CsgiIiIiInEUkEVERERE4jgSXYCIiEhXUlZWxjPPPENRURFTp06lf//+iS5JRI6QArKIiMhx4PP5eOKJJ3jkkUdobm5uXd+jd18unD6N86dNY8qUKWRlZSWwShFpC8sYk+gajlanLVxERLqOaDTKyy+/zD333MPOnTtJO3k8OZMXEAyFCW7/lMD2VTRv+5Ro0Idls3HKiFOZccH5TJs2jfHjx+NyuRL9EUS6OuuId1BAFhHpXKLRKH6/H6/Xi9frxefzHbDc1nVer5dgMEhOTg7FxcUUFRVRXFy833JmZiaWdcTfL93C0qVLueOOO/joo49IKR5Eznk3YRUNO2A7EwkTKN1AaMcqfFtX4dv9OZgobk8SZ509kRkXnM/UqVMZNmyY/rcWOf4UkEVEOjpjDPX19ZSVlR30VlVVFQuvPh/Nzc14vXsDrhe/z08g4D+q97XsDmxONzaHG8sZu2F3gd1B1NtApLmGaMB7wH4ul5v8wiJ69iimZ4/iAwJ0dwzSW7Zs4e677+YPf/gDnoxcsibOwzlkEpbVtnPfo4Fm/DtWE975KU2bPyFUswuAnLwCzp82lennT+O8886jqKjoRH4Mke5CAVlEJFF8Ph/l5eWHDL5lZWXsKS2jvLyMYCBwwP6W3YEzNQsrKR0cbiyHG5vThd3piQVbVyzc2pz7bjhcLdu6MHYXUbsLqyUA25yx9XsfWzb7l36GaNBHpKmGSHMtprkavHVEm2oINlYTaqwh3Fhz6CDt9pBfUEjPHsX06tnjgAC9d7kzB+n6+noeeughnnrqKaKWjYzTryR17OXg9BzT64YbKghsW0Vox6c0bvmEqK8BgIEnDWXG9KlMmzaNc845h5SUlOPxMUS6GwVkEZHjKRKJUFlZedjQW1paRmlZGY0N9Qd9DWdKJvaUTEjOwpmahSstG2daFvbkLKJJmZCciT0lC5sntdMEx9Yg3VSD8daCt3ZfkG6oJtxUe9ggfeppo7hxwXyuuuqqTnHSWjgc5he/+AULFy6kurqa9FPOI+uc6zDJOcf9vYyJEqrYSnD7KvzbVuHdsQYTCWF3OBk77gwuamnHGD16NHb7l//oEREFZBGRAxhj8Hq91NbWUlNTQ01NzUGX995Xt6yvqak9ZOi1u5NxpGZhtYTbWOjNxpGSBcmZRD0Z2FOysCdnYNm774RBBwvSkcZqGjctJ1i1E4fTyfkXzOCmBfO58MILO9wJa8YY3nrrLe68805KSkpI7TuC3HO/gsnt1241REMBArtLCO9YRfOWTwiUbwYgNT2TKVMmc8H505g6dSoDBgxot5pEOhkFZBHp2mpra6mqqjps0N27XFVdQ21tbDkUDB7yNS2bHUdSGrakVCx3GpYnBUdSGs6kNOxJaThSM7ElZxH1ZGClZGFPzsTmOrZD6t2dMYZg+WYCJYtpWPsPIs11pGZkcvXs2dxw/XzOOOOMhI+mr1mzhjvvvJN33nmH5NweZE+5EVvfsQmvK+Ktx79tVax/ecsnhBsqARg64jT+97lfMGbMmITWJ9IBKSCLSNdSW1vLkiVLeO+993jvvff4/PPPD7mt3Z2M3ZOKLSkV3KnYPWk4ktNwJqVjT0rFlpSG5U7BuFLAnYbNkxpra3AlJTz0dGcmGsG/dSX+kn/QuH4ZJhygR59+3Hj9PObNndvuI6Pl5eUsXLiQX/7ylzg8KWRMuIakkRdg2Z3tWkdbGGMI1+4hsHUFdf/6A9Hmem746i389LFHSEtLS3R5Ih2FArKIdG4+n4+lS5f+f/buOzyu6sD7+PdOH81Imhk1q7jJNs2mBTeK6S2UAFkghoQSE0JCSAMSSCEbnP7y5k12IWVJQkKS3Sxrks2CTQ1gsmBqTLMk94qKbaw6vdzz/jGyGLnLyCr27/M888x4dO/MGVP01dW55/YF8T/+8Q9s28bp8eEbO43AhKNxBcvBG8T2FOHwFePwF+PwBg7pqQwHCzsVJ75yCYnG54ivfxswHDd9FjfdcD1XXnklkUjkgL13Mpnkpz/9Kd///veJxROUfOhCQifNxfhGR2jayShdf/893W88Tqiiit/828/56GWXDfewREYCBbKIjC7ZbJZ//OMffUH84osvkkqlsJxO/LVH4B9/HEUTj8WqnDIij+DJgZPt3kqi6XmiDc+R3roBp8vNOeedz43zrufCCy/E6/UOyvsYY3jooYe488472bBhA8WHzabszHmY0ppBef2hlmpuouOpn5Hasp4zzruQ3//6l9TV1Q33sD6wTZs2EYlEtJKH7A8FsoiMbMYYmpqa+oL4ucWL6e7KnwjnH1OPb/yxBCceB2OOxOEtGubRykhgjCGzZS2JxufoaXieXKyDQEkpH7vySuZdfx0nnXTSfk+Reemll7j11lt5+eWXCVRPpuysG7Bqjx7kTzD0TC5L9+t/peuFP+F2OfnOd7/LbV/6wqhc9eL1119n/vz5PProo5SEItx++2186Quf1xQSGQgFsoiMPJs2bfQTgHIAACAASURBVOoL4r898wxtra0A+CLVeMYdQ8mkD0H11PxSaCJ7YOwcyfVvkmxaTM+KJZhMipqx45l33bVce+01TJkyZZ9eZ/369dx555089NBD+ErLCc25Bs+Rp+/TWtGjSaazjc6nf0F87T+YMvVY/vTgbzjhhBOGe1j75NVXX+Xuu+/msccewxMoIXjch0m1rSG25nUCJSFuv+1Wbv3SFykpKRnuocrIp0AWkeHX3t7Oc8891xfFK1euBMATDOEZewwlk47HUXc0ztIxwzxSGc3sVJz4qpdINi4mtu5NwHDM8dO5cd51zJ07l/Ly8p326e7u5gc/+AE/+clPyBmL0pkfJTjzMnD7h/4DDBFjDPHl/0vHM7/Cjndx48238OMffo9gMDjcQ9ull156ibvvvpsnn3wST6CEkhmXETj+QvDkf6OUallB9OWHiK56FX+whNtu/TK3fflLhEL6AVt2S4EsIkMvHo/zwgsv9AXx0qVLMcbg8vrx1k0jOOl4POOOwYqM2+dL8YoMRLbnPRJNzxNreI7UlvU4nC7OPvc8bpx3PRdddBEul4vf/OY33HXXXWzdupXSo88ifNo1mMDOEX2wspNROv/+e3reeIxwZTUP/NsvuPTSS4Z7WH1eeOEF7r77bv72t7/hDYYonnkZgWM/3BfGO0q1rsqH8sqX8QeK+eIXv8hXb791VFx4RoacAllEhoYxhv/8z//k/vvvZ8mSJaTTaRxOF77aIyiacBz+CdtPrNPKEjK00lvWkmxcTHfDYnLRdoqCJVSPqWTN6tUEx0+j7KwboeLQvahG8t0mOp/6Gamt6znrwxfz4K9+QW1t7bCN5/nnn2f+/Pk8++yzeIvDlMz8KP5jz8fax6P66c1r6HnpIaIrluArCvL5L3yeO26/jbKywb/KoYxaCmQROfCam5v5zGc+w8KFC/FXjMNXP51g/fH5E+t0AQ0ZIYydI7nhbVJNi0lua6b8pMtx1s/Smtf0nsT32n/T9eKfcLvdfPe73+XWL35+yE7iM8awePFi7r77bp5//nm8JZF8GB9zPpZ7//4fkt6ylp6X/4to0wt4/UV87pZb+NpXv7LLqTZyyFEgi8iBY4zhgQce4NZbbyWeTBM+7Vr8x1140J3YJHKoyJ/E93Pia5dy2LTjeOgPv+W44447YO9njOGZZ57h7rvv5oUXXsBXWkbJrMvxTTsXyz04y/alt64n+vJD9DS+gMfn57M3f5av3/FVKisrB+X1ZVRSIIvIgbFhwwZuvPFGnn76aYITjqX8gi9giquGe1gi8gEZY4g3/Z2OZ3+Fnejh0zffwv/9wXcH9SQ+YwxPPfUU8+fPZ8mSJfhCFZTOuhzvtHOwXJ5Be59C6fc25kO54e+4vT5uuukmvvn1O6mqOnj/v5XL5ejq6qKzs3Ofb+l0ekjHWF1Tw3e/8x2mTp06lG+rQBaRwWXbNr/85S+54447SGVtImfMw3v0uTrZTuQgk0tG6X7+d3S/+QSRqhoe+LdfcMklH/lAr2mM4fHHH2f+/Pm88sor+MKVlM6+Au9RZ2O5hubCP5ltm+h5+b/oaXget8fDDZ+6kW9942tUV1cPyfsPRC6Xo7u7e5/CtqOjo/e+k47ODjo7u4hFe/b8BpaFyxfA4Q3m15n3FA3ZP4ftUq2rMOkEN37mZu75wXeHapk+BbKIDJ7Vq1dzww038Pe//53gpBOo+PAt2IGK4R6WiBxAyXcb6XjyPtLvbeScCy/hd/f/nJqagV1V0BjDwoULmT9/Pq+//jr+yBhKZ1+B58gzhzzItsu0NxN9ZQHd7zyLy+Xikzd8in/+5teH5QTFdDrNypUraWhooKGhgWXLlrGsoYE1q1dj2/budywMXF8ReAI4fEFcvgAufxCXL4jDtz1+A9ieIizv9u0DWB7/sB/cyMW76P7fP9D95pMUh8v46f/7v3zyumsP9LkBCmQR+eByuRz/+q//yje+8Q1ylpPImTfiOepMndwkcogwuQzdr/43XUv+E7fbzQ9+8H2+eMvn9noSnzGGRx55hPnz57N06VL8ZdWUnnglniNOHzGXis90tPaG8jM4HQ6uvX4ed3/rG4wdO3bQ3yubzbJ69WqWLVv2fgw3NLBq5Uqy2SwAluXAW1aLo2wsRRXjcAVCIzpwB0uqdRWdz/ySZPMKpn1oJn/4zb8dyPnvCmQR+WCampqYN28eL7/8MsWHzaL8vM9hF0WGe1giMgwyHS35K/Gte4PDjz6eh/7wW4499tidtrNtm7/+9a/Mnz+ft956C39ZDaGTPob78NNG7FKPmc42oq88TPfbT+NwWFxz7Se5+1vfYPz48QN+rVwux9q1a/siuKGhgXeWLWPFihVkts/xtSy84WqcZWPxV07AVzkBE6rFFak7YPOwRzpjbGLv/I3O5x/ETvRwzSc/xU/u+QGRyKB/z1Egi8j+yWaz3HPPPXz729/G8vgpO/szuA47RUeNRQ5x+ZP4ns9fiS8Z5TOf+wL3/OA7BAIBbNvmz3/+M9/5znd455138JfX9YbxqaNmdZts1xairzxM11tP4XDAVR+/lu9++y4mTJiw07a2bbNhw4Z+UyMaGhpobGoilUz2becNVeEsG4e/cjy+ygkQrsMRqcOxn0vYHexyySjdL/w73UsXESgp5Z4f/ZCbbvwUDsegHS1XIIvIwL311lvMmzePpUuXUnLUHCJn34Tx67KtIvK+XKKHrr//jp43n6RsTC1f+fIX+P2DD9LY2Ii/Yizhk+fimnLKqAnjHWW7txJ99c90v/kEFnDlVVdz1RX/1G+ucENjI/FYrG8fT2kFrrKxeCsm4K+agBWuwxGuy0+RkAFLb1lH599+SWJTA4dPO44Hf/1LZs2aNRgvrUAWkX2XTqf5/ve/z/e+9z1c/mIi596Me/KJwz0sERnBku820PHkz0i/t5GiqvGETpqLa/JJozaMd5TteS8fym88gcllAPAUR3CWjcNXOR5/5QSsSB2O8FgcvsFbCk/ytv/GovO5B8hG27ny49dx30/uoaLiA50grkAWkX3z+uuvM2/ePN555x1Kjj6TyJk3YnzFwz0sERkFTC5DZtsm3BUTDpqTxnaUi3aQ6WzFXVaH0z8kS5FJATsVp3vJf9L1+v/g8wf4/ve+w+c/dzMu137NaVcgi8ieJZNJvv3tb3PPPffgKY5Qfv4tOCdMH+5hiYiI7CTz3iY6n/k34uvfZOLhR/Hgr37JnDlzBvoyCmQR2b0lS5Ywb948VqxYQelx5xM645PgCQz3sERERHbLGEN85RI6n/012e6tfOTyj/HLf/3JQC72okAWkZ3FYjG++c1v8i//8i/4wlWUf/jzOOp2XqpJRERkpLLTSXpeWUDXK3/G7fHy7X/+Z26/9Uu43XtdY1uBLCL9LV68mBtuuIG1a9cSmn4RoTnXYTz+4R6WiIjIfsl0tND1zK+IrXmNuolT+O39P+fss8/e0y4KZBHJ6+np4Y477uAXv/gFReW1lF/wRazqo4Z7WCIiIoMivvpVOp+9n0xHG+dddCm/+vm/7u6KiApkEYEnn3yST3/602zatInQzEspOeXj4NIC9SIicnAx2TTdr/6FrpcW4HJafO1r3+Drd34Fr9dbuJkCWeRQ1tnZyW233cYDDzxAUeV4Ki74IlQdNtzDEhEROaCyXVvoeu7XRFcsoapuAr/55c+48MILtn9ZgSxyqOnq6uLJJ5/k0UcfZeGiRXR3dROafTnBEz+G5fIM9/BERESGTGLdUjqfuZ/0tnc5/dwLeOCX9zFx4kQFssihYM2aNfkgXriQ559/nmw2iydQird+OmUzL8WUTxzuIYqIiAwLk8vQ/fojdL34JxzY1N36l/L1P7xw20BeY78uRyIiQyuXy/HSSy/x6KOP8uijj9LU1ASAv3I8xTMuIzhlJlbVYVgOp35yFBGRQ5rldFM6658IHHUa3f/7B4DvAzcN5DUUyCIj1PapEwsXLmTRY4/Rvm0bDqcT/7ijGXPeTbgnzsBROma4hykiIjIiuYrLiVzwZYABXxFLgSwygqxdu7bvKPH2qRPuohJ89SdQd/psrLHH4fDqynciIiIHkgJZZBjlcjlefvnlvihubGwEwF85juIZlxKcMqtv6oSIiIgMDQWyyBDr7u7uW3WicOqEb+w0qs79NJ76GThK9/n68iIiIjLIFMgiQ2DdunX9pk5kMhncgRJ8E0+g7vQTscYeq6kTIiIiI4QCWWSQGGPYtm0bra2ttLS00NLSwvLly1m0aBENDQ0A+CvGETzhIwQPm4VVdbimToiIiIxAB30g27ZNMpn8wLdsNssRRxzBCSecwLRp03a8hKEcxIwxtLe309LS0i9+Cx83t7TS1tZKJp3ut6/ldFLUO3XCO3EGVkhTJ0REREa6URvIH/nIR/riNZFIkkgmSCR6gzaVJJVMkUolyWYyH+yNLAuHywNY2JkkAC6Xm8OPmspJs2Ywffp0TjjhBI4++mg8Hl21bDTZHr67i97W1lbebW7ZZfgCuPxBnMEIjqIwrpJJlNTNxF1chjMQxvhDEMw/drj1w5SIiMhoMmqvpBcZd7iJ2w5wenC43DhcHhxuT/6+92b1/tlyeXA43eDygNMNLjc4PBinC+P0YDndWL3bWS43lvP9xzhcWJaFMYZs12Yybauxt64h2bqaROsq7GQUyEfzEVOnceLM6YrmESIej7N+/XrWrl3LunXrWLt2LZs2beo94ttCW1sb6VRqp/1c/iCuYAQrEMYVLMNTEsFdXK7wFRERGZ3+ff0PL/zEQHYYtYF86v95zmxsjw/rGPYazW4PRxw1VdF8gNi2TXNzc1/8Fobw6jVr2bK5rd/2To8fd2lFb/hG8JSU9Q/fQARnMIzD7RumTyQiIiIHgAJ5uO0YzYnWVSRbV/eL5iOPmsrs3miePn0606ZNUzTvRldX107xm7+tY/2G9f2mPliWA09pBY7SKtyhMfgi1bjDYzCBChylY3AUlWJZ1jB+GhERERkGgx/IlmX5gL8DXvJzlh82xvyzZVm/A04Duno3vd4Y8+YeXudfgXnGmOAOz/8T8DAwwxjz+r4OfKQG8q70RfPm1dhbVpNoXb3baJ4xY0bfiYDbo9kYQzqdJh6PE4/HSSQS/e5393hPz8V6n4/F4yTiCRKJOJlMFp/Ph7+oCL/fT6CoiKIiP8FAgKLe54qKinb7eG9f3/7Y6Xx/5YZ0Os3GjRv7BfD2+zVr1tLZ2dHv79JdVIIrVIWjpApfpBpvuBqrpBJTXIWrpALLOWqn1YuIiMiBMeBA3peaSAFnGmOilmW5gRcsy3q892tfMcY8vLcXsCxrOhDexfPFwBeBVwYw5lHHsizcoTG4Q2Pg8FMI0hvNnW35aN66hjWtq2n4w5/41a9+BeSjubi4OH/SYSLOfh3ptxw4PV4cbi+WK3/D7cFyesHlwekJ4vBFcBT7cHq8uCwndi5DNJ2kO5PCjqbIdcQwmXZMNgXZNCabws6kMJkUdnbnE9f2hdvjwefz4fF46Wjfhm3bfV9zuNx4QmOwSirxTjqJMZEanKVV2MHKfBhrrWARERE5wPYayCZfZtHeP7p7b/tca5ZlOYF7gKuBy3b48neAHwFf2dfX225zd3Kgu4wolmXhDlfjDlfDEXP6RXO6bTXpzavJpBO4XB5KXF6s7ZHr9uZPIHR7cbi8WG5PwfPe3ufzX99+guGBYoyNyaYxmVS/ezuTwmR7b70xvavnU9kMxYeFcYXG4ApV4Sodg7M4gmU5DtiYRURERPZmn34f3Ru5/wAmAz8zxrxiWdZnge9ZlvUt4BngTmPMzksCwC3AI8aY1sJYsyzrQ8BYY8wiy7IGHMjhIjfdyexAdxv5quryN04f7pHsAyd43YCO6oqIiMjIFE/nFg90nwGdpGdZVgj4b+DzwDagDfAA9wNrjDHzd9i+Bvgv4HRjTNayrKgxJmjlDxE+S37e8nrLshYDtw9kDjIDOIotIiIiIoesAf86fUC/yzbGdALPAecbY1pNXgr4LTATwLKsJy3LetOyrF8Dx5M/6rzasqz1QJFlWauBYmAasLj3+dnAI71zlUVEREREhs1ep1hYllUBZIwxnZZl+YFzgB9ZllXdO23CAi4FlgEYY87b4SXGFLxW1BgzufeP5QXPL2bgR5BFRERERAbdvsxBrgYe7J2H7AD+yxiz0LKsZ3vj2QLeBD5zAMcpIiIiIjIkRu2FQtAcZBERERHZuwM7B1lERERE5GCnQBYRERERKaBAFhEREREpoEAWERERESmgQBYRERERKaBAFhEREREpoEAWERERESmgQBYRERERKaBAFhEREREpoEAWERERESmgQBYRERERKaBAFhEREREpoEAWERERESmgQBYRERERKaBAFhEREREpoEAWERERESmgQBYRERERKaBAFhEREREpoEAWERERESmgQBYRERERKaBAFhEREREpoEAWERERESmgQBYRERERKaBAFhEREREpoEAWERERESmgQBYRERERKaBAFhEREREpoEAWERERESmgQBYRERERKaBAFhEREREpoEAWERERESmgQBYRERERKaBAFhEREREpoEAWERERESmgQBYRERERKaBAFhEREREpoEAWERERESmgQBYRERERKeAa7gGIiIxEsViMlpYWWltbGTt2LBMnThzuIYmIyBBRIIvIISUWi9Ha2kpLS0tfABc+bm7OP45Ge/rtVzN2POefew7nnnM2Z555JhUVFcP0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" /></div>
</div>
<div class="nb-cell nb-markdown-cell">
<p>Looks quite good already. but since most of our customers were in the age bracket 25-34 and we want to visualize the difference in their behavior rather than absolute numbers, let&#8217;s normalize the data.</p>
</div>
<div class="nb-cell nb-code-cell">
<div class="nb-input" data-prompt-number="11">
<pre class=" language-python"><code class=" language-python" data-language="python">df_norm <span class="token operator">=</span> <span class="token punctuation">(</span>pivot <span class="token operator">-</span> pivot<span class="token punctuation">.</span><span class="token builtin">min</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token punctuation">(</span>pivot<span class="token punctuation">.</span><span class="token builtin">max</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">-</span> pivot<span class="token punctuation">.</span><span class="token builtin">min</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
df_norm<span class="token punctuation">.</span>head<span class="token punctuation">(</span><span class="token punctuation">)</span></code></pre>
</div>
<div class="nb-output" data-prompt-number="11">
<div class="nb-html-output">
<div>
<style scoped="">
    .dataframe tbody tr th:only-of-type {<br />        vertical-align: middle;<br />    }</p>
<p>    .dataframe tbody tr th {<br />        vertical-align: top;<br />    }</p>
<p>    .dataframe thead th {<br />        text-align: right;<br />    }<br /></style>
<table class="dataframe" border="1">
<thead>
<tr style="text-align: right;">
<th>Age</th>
<th>18-24</th>
<th>25-34</th>
<th>35-44</th>
<th>45-54</th>
<th>55-64</th>
<th>65+</th>
</tr>
<tr>
<th>Hour</th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>0.356061</td>
<td>0.313531</td>
<td>0.096429</td>
<td>0.130</td>
<td>0.206349</td>
<td>0.0</td>
</tr>
<tr>
<th>1</th>
<td>0.280303</td>
<td>0.103960</td>
<td>0.114286</td>
<td>0.080</td>
<td>0.333333</td>
<td>0.0</td>
</tr>
<tr>
<th>2</th>
<td>0.159091</td>
<td>0.018152</td>
<td>0.000000</td>
<td>0.055</td>
<td>0.039683</td>
<td>0.0</td>
</tr>
<tr>
<th>3</th>
<td>0.000000</td>
<td>0.018152</td>
<td>0.021429</td>
<td>0.000</td>
<td>0.039683</td>
<td>0.0</td>
</tr>
<tr>
<th>4</th>
<td>0.037879</td>
<td>0.000000</td>
<td>0.000000</td>
<td>0.000</td>
<td>0.000000</td>
<td>0.0</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="nb-cell nb-markdown-cell">
<p>Now that the data is normalized, let&#8217;s see how a joy plot would look like.</p>
</div>
<div class="nb-cell nb-code-cell">
<div class="nb-input" data-prompt-number="12">
<pre class=" language-python"><code class=" language-python" data-language="python">fig<span class="token punctuation">,</span> axes <span class="token operator">=</span> joypy<span class="token punctuation">.</span>joyplot<span class="token punctuation">(</span>df_norm<span class="token punctuation">,</span> kind<span class="token operator">=</span><span class="token string">"values"</span><span class="token punctuation">,</span> x_range<span class="token operator">=</span>x_range<span class="token punctuation">,</span> ylim<span class="token operator">=</span><span class="token string">'own'</span><span class="token punctuation">,</span> overlap<span class="token operator">=</span><span class="token number">1.5</span><span class="token punctuation">,</span> figsize<span class="token operator">=</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">,</span><span class="token number">8</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
axes<span class="token punctuation">[</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">.</span>set_xticks<span class="token punctuation">(</span>x_range<span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre>
</div>
<div class="nb-output" data-prompt-number="12"><img decoding="async" class="nb-image-output" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsgAAAI1CAYAAADLpwyxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xd0VNXax/HvtEwmZdIrEEoITTqE3iH0DoIURVDAcrGhKCJFRQSxYkHpUlSU0KSJIAgKhCaI9N7SQ0gvU877B8qr96JSkjkzyfNZ667rYubs/ctKMvNkz3P21iiKghBCCCGEEOIGrdoBhBBCCCGEcCZSIAshhBBCCPEnUiALIYQQQgjxJ1IgCyGEEEII8SdSIAshhBBCCPEnUiALIYQQQgjxJ3q1A9wD2Z9OCCGEEEL8G82dXiAryEIIIYQQQvyJFMhCCCGEEEL8iRTIQgghhBBC/IkUyEIIIYQQQvyJFMhCCPEPDh06RHx8vNoxhHAq2dnZrFu3DrvdrnYUcRcUReHcuXOsWLGCixcvqh3HKWkUxWU3g3DZ4EII15CXl0dwcDB6kzeHD+wlolxZtSMJobqMjAy6dOnC7t27GTxyDMvmzFI7kvgXGRkZ7Nu3j7i4OPbs2cOeuDhSU1IAMHn7sm3rFhpHN1A5ZbG6410spEAWQoi/sXr1avr06QMaLSEVqnL6cBze3t5qxxJCNenp6XTu3Jn9Bw7iHlGL3PO/MGn6e7z64jNqRxO/s9lsHD169GYxHBcXx7Fjx/ij3nMPLIchrApe5aqDdwgpG2ehseazbesWmjdppHL6YiMFshBCFJWhQ4fyzep1+HQaQ8qqadRq2oZfdmxGp9OpHU0Ih0tLSyMmJoZfj/xGaN+X0ZWvT0rs6+RdOMiyr1cyuF8vtSOWSgkJCcTFxd0siPft309OdjYABg8zhrAqeJathjG8KgRHoXP3+sv1luuJJH/1MhTm8v13G2nTsoUaX0ZxkwJZCCGKQkFBAcHBwSgVG+Pf+WmyDq7n2vez6Tl4BGuWzVc7nhAOlZycTIcOHTh+4iSh/Seii6gHgL0gl6QvX8KWnsCOnTto1qihyklLtry8PH755ZebK8O79+zh8qVLAGh0OtxDInH7fXVYE1wZrW84Gs2/14bWzGSSv3wZJS+T9RvW07Fdm+L9QhxPCmQhhCgKGzZsoFu3bpQb9BraiPoAXPthHln7VvP85GnMnDJe5YRCOEZiYiLt27fn1JlzhPWfhLZc7b88bs1KJWnJWAw6LccPH6B8RDmVkpYsiqJw5syZv7RKHDp0CKvVCoDRNxh9WFW8ylbDEF4VTUBFtAbjXc9nzUol+asJ2LOvsebbtXTr2KGovhRnIAWyEEIUhREjRrD0q28Ie3IJGp0BAEWxk7L6TfJO7WHu4i959MGBKqcUonhdvXqVdu3acf7iZcIGTEETft8tn1eYfI6kZS8SEFaOM7/uw2w2OzhpybBjxw62b99+oyiOi+NaWhoAOqMJY2gU7mWq4lGmGkpwFHov/yKf35adTvLyCVgzkli5cjW9uncu8jlUIgWyEELcK4vFQkhoKNbwOvh3G/uXx+yWfJK/fBlL6kW2bN1G25ZNVUopRPG6dOkS7dq143J8IqEDXkUTWu0fn5937gDJK16lRnRLDv+8Bb1e76CkJcPKlSvp168faDSYgiLQh1XBq2x1tKFR6Pwj0Ggdc++DLec6yctfwZJ+la++XsGAPj0dMm8xkwJZCCHu1ZYtW4iJiaHcgEloK/7vXd22nHQSlzyPzm7h14P7qFK5kgophSg+58+fp127dsQnpxI28HUIjrqt67IObeLadx/RZcBDrP9q0W31v4ob7RT169fn1NU0Aoa8jdboqWoeW14mKcsnUph6icXLvmTowH6q5ikCd/yDKAeFCCHEf1mxYgV6ownK1rnl4zpPP4L7T8FiKaRJ6w6kp6c7OKEQxefMmTO0bt2ahJRrhA+adtvFMYB33c6YG/dj49eLeW7i1GJMWbJs2rSJQ4cO4dOkv+rFMYDOZCbogTdwC67IQ4MHsmDJl2pHcjgpkIUQ4k9sNhurVq3CvVLDf7zhxRBYjqDeL5OeeJlG7bpSWFjowJRCFI8TJ07QqlUrktOzCBv8JkrgnX864tt6GB5VW/D+G5P4dNGyYkhZ8kybNg13v2AMVVupHeUmnbsXwQNfxy0sikceHsrsBYvVjuRQUiALIcSf/PzzzyQnJ+N7X8t/fa57+doEdBnDmUN76NRvKC7csiYER48epU2bNqTnFBA2eBqKf/m7Gkej0RLQ7VmMZarxxMgRfL99ZxEnLVl27tzJTz/9hLlR35s3BDsLrdGT4Ptfw71MDZ54dDgffDpP7UgOIwWyEEL8yYoVK9AZjGjK1but53vVbI9P80FsX/cNo8dOKOZ0QhSPw4cP06ZNGzLybYQOfhPFL+KextMajAT1nYjOy5/uPXpy/NTpIkpa8kybNg2jty/u9znntmpaowdB/afgHlGLZ54YxcxZs9WO5BBSIAshxO/sdjsrV67EvWJ9tG6m277Op/lgPO9ry9z33uSdT0rPCosoGQ4cOEDbtm3JsWkJG/Imik+ZIhlX5+FDcP8pWK1WmraJIe33LcvE/zt48CCbNm3Cu2EvNAZ3teP8La2bO0H9JmGqUJdxTz/BG+/MUjtSsZMCWQghfrd3716uXr16W+0Vf6bRaAjo/BTGcjV54aknWLtpSzElFKJoxcXF0b59e/I1RkIHT8fuHVak4xsCyhLU9xUyk68S3bYLBQUFRTq+q3vzzTdxM3nhWaer2lH+1R+fCpgio3nl+aeZNO1ttSMVKymQhRDid7GxsWh1erTlG9zxtRq9gaC+r6D3DaFf374cPnKsGBIKUXR+/vlnYmJisOg9bxTHXsHFMo97uZoEdH2G80f2EdNnsPTq/+7EiRPExsbiVb8bOMHOFbdDo3cjqM/LeFRpyusTXuDFKdPUjlRspEAWQghu7EO6YsUKTBXr3fU2Szp3L4L6T0HRaGnRviNJSclFnFKIovHjjz/SqVMnbO6+hAyejt0zsFjn86zRBp+WQ9m5cSWPPP1isc7lKmbMmIHOYMS7gWsdxKHRGQjs+SIeVVvw1qsTeGb8ZLUjFQspkIUQAvjll1+4cOECPtVb3NM4Bt9QgvpNIic9hQatY8jLyyuihEUvNzeX1157jbJlyzH80dGkpqaqHUk4wNatW+nSpQt4BREy6E3sHkV/ZPGt+DQdiGfNDiz8cCYzZn3qkDmd1cWLF1m6dCledTqByUftOHdMo9MT2PMFPGu04YPpr/HE2PEl7pMBKZCFEIIb7RUarQ5dpeh7HssYXpWA7mO5evIIrbr2w263F0HCoqMoCl9//TXVq1dn8uTJXNOaWbRgHuUqRvL2u+9hsVjUjiiKyaZNm+jevTtanzCCHngDu8nXYXPf6NV/EvfydRj/3BhWrv/OYXM7m5kzZ2IHfBr3UTvKXdNodQR0exbPmh2Y/e50Hh3zfIkqkuWoaSFEqacoCtWqVeOqxZPAAa8X2biZe1eSvm0BAx95kq/mfVRk496LX375haeffpqdO3fiGVaZwJhREFaDwpSLZGybR+75XyhbMYp5sz+kU6dOascVRejbb7+lf//+GAIjCB7wOnajtyo57PnZJC4bh5KdRtye3dSvU0uVHGpJTEykQoUKuFdrjW/np9SOc88Uxc617z4m+/B3DB35HxZ/NssZjxiXo6aFEOJOHT16lFOnTmG+x/aK/+Yd3Qevel1ZPv9jJs14v0jHvlPJycmMGjWKBg0asPeXI4R2HUPA0HcgrAYAbkHlCbz/NYL6TiTpejadO3embceunDlzRtXcomisXLmSvn374hZckaABU1UrjgG07l4E95+ConOjVftOxCckqpZFDe+//z6FFgt+ze5XO0qR0Gi0+Hd6Eu/63Vg69yMGDn+sRKwkS4EshCj1YmNjQaPBENmoSMfVaDT4dxiNqVJDXh8/lmUr1hTp+LejsLCQd999l6ioKOYvWIhPdC9CR36GsVYnNFrd/+T1iGpM2IhP8G3zMD/+uJ2q1aoz5tmxZGZmOjy7KBrLly9nwIABuIdXIfD+11GMXmpHQu8TTFC/SeRmXqNhqxhyc3PVjuQQ6enpfPLJJ3hVa4FiLtot9dSk0Wjx6/AY3g178c3nc+gzZITTtZbdKSmQhRCl3ooVK/CMqInGw6/Ix9ZodQT2HIdbcAWGDRnErr37i3yOv7Nx40Zq167N2LFjsQdXIWLkx/i0fRTc/nmXDo3egE/j/pQZOQfP+9ry0fvvUrZCJHPmzXf5N73SZunSpQwePBhT2RoE9n8Vxc1D7Ug3GcOiCOzxAglnjtKiSx9sNpvakYrdxx9/TFZWFv7NB6gdpchpNBr82j2KuXF/1ny5iO4Dhrr091R6kIUQpdqpU6eoWrUqIZ0ew71u92Kbx5qVStKSsRh0Wo4e2k/F8vd2lO8/OXnyJM899xwbNmzAI6gcAe0fvau9nf9QkHCKjB/mknflOFH31WbhZ5/QvHnzIkwsisPChQt55JFH8KxQm8A+k1AMRrUj3VLm/jWkb51Lv2GjWbGo5O5ukZOTQ/ny5SnwjySg7yS14xQbRVHI+OkLMnZ9SYee/dm08it0Ot2/X1i8pAdZCCHuRGxsLABukU2KdR69dyBB/SdTkJtN49YxxdKycP36dcaOHUvNmjXZsu1Hgjo8SuCwWfdUHAMYw6oQNPgtAns8z/lLV2nRogU9+w3gypUrRZRcFLU5c+YwYsQIvCrVJ6DvRKctjgHMDXvh3aAHsZ9/xoSpJfd0trlz55KWloZ/s4FqRylWGo0G35ZD8Gk5lC1rV9Cuez+X3BlHVpCFEKVagwYNOJGcR9CQmQ6ZL+/cAZJXvEqN6BYc/nkrer3+nse02WwsWLCACRMmkJqairluJ/xaPohSDPur2gvzyYpbQcbeleh1Wl4Y9yKvjH8Rk8lU5HOJu/PRRx8xZswYvKs0wr/nS6BzUzvSv1LsNlJWvUHe2f0s+uJrhj3QT+1IRaqgoIDIyEgyDAEEDCy5p8/9t4y4FVzfvoim7buyfcMq3NxU+1mUFWQhhLhd58+f5+DBg3hVa+awOU2VGuDf8QmO7d1Bj8Ej7vlu7x07dtCwYUNGjRpFnkcI5R+ZhW/H/xRLcQygdXPHp+VQwh+djbFSQ6a9/ioRlaL4avnyEnHnuqt79913GTNmDOZqzfDvNd4limP4vVe/xzjcQioxYthQduzeq3akIrVkyRKuXr2KX/OSvXr833wa98ev3Uh2b91A85juFBQUqB3ptkmBLIQotVauXAmAe5TjCmQA77qdMTfux6ZvlvDsK3e37/LFixcZOHAgrVu35uTFeMr0HY//wDdRAioWcdpb0/uEENDzJUIGvUmWYmTQAw9Qv3FzDh065JD5xf+aPn06Y8eOxVyjJX7dx4HWoHakO6J1cyeo3yS07t506tKVcxcuqh2pSFitVqZPn45nmSpoytRWO47DmaN74R/zOPt3fE+Ttp3Jz89XO9JtkQJZCFFqrVixAo/wKDTmEIfP7dt6GB5VW/DBtMnMXrjstq/Lzc1l8uTJVKtWjZWr1xLQaihBIz5BH9Vclc353SNqEfLQe/h3+g9Hjh6lXv36DBn2CCkpKQ7PUlopisKrr77K+PHj8anZFt9uz4Pu3lt31KD38ieo/2QK8/No1KoDGRkZake6ZytWrODs2bP4NhvgjAdoOIR3/W74dx7Dod0/0qhNJ5fYDUd6kIUQpdKVK1coV64cgW2G4dlYnQ377ZYCkpdPoDDpHJs2b6Fj25Z/+1xFUVi+fDkvvPACV65cwXxfa/zbDkfxDHRg4n9mz88mY9eXZB5Yh7vJgymTJ/Hs00+p2XdY4imKwtixY3nvvffwqRODT8f//M/+1q4o78Ihkr+ZTNV6TTmy+wcMBtdaDf+D3W6nbt26nE3KJPDhD9FoSve6ZNbB9Vz7fjYvTH2PtyY848ippQdZCCFux6pVqwDwqOrY9oo/0xqMBPWdiM7Lnx49e3L81OlbPu/AgQO0bNmSQYMGkW53p/ywmfh1f8GpimO4cUKaX7uRhA//CG1IFV4a9wIVq9Rgw4aNakcrkWw2GyNHjuS9997DL7oXPp3GlIjiGMBUoS4BnZ7k5IGf6DbwYZftb1+/fj1HjhzBt+n9pb44BvCq1xVjmeq89+arJKWmqR3nH8l3SwhRKq1YsQJTSAU0vmVUzaHz8CG4/xSsVitN28SQlvb/bxpJSUk8+uijREdHc+DXY4R2e4aAIe9AaHUVE/87Q2A5AvtPIaj/ZFKz8unWrSst23fi1KlTakcrMQoLCxk0aBDz588noMUgvNs+WuIKMK/aHTE3HcD3q75gzPgpase5Y4qi8MYbb2DyD0UfVbTH2LsqjUaDX4fRWHMyGDh6rNpx/lHJ+m0SQojbkJSUxM6dO/Goot7q8Z8ZAsoS1PcVMpOvEt22C1lZWbz99ttERUWx6PPP8W3cl9BHPsNYs4PLrBBqNBo8IqMJHfERfm1HsOvnn6heowaPj3mmRPSVqik3N5fevXvzzTffENThUbyaDymxva2+LYfiUb01H894jY/mLVY7zh3Zvn07cXFxmBv3Q+OiPeHFwRhaGa+6nfhx1RK27zmgdpy/JT3IQohS57PPPuOxxx4j4tGP0QSUVzvOTTnHtpP67du4e3iSn5uDd5XGBLZ7BLtPuNrR7pktJ53MnUvJPLwZL18/5s2Zw8D7S9Zet46QkZFBjx49+OmnnwjuOgb3mh3VjlTsFKuFpOUTKEw8zfqNm+nSoY3akW5LTEwMO/ceJGTkPDR66cP/M1tuBvFzRxNaqRpXftvriD/wpAdZCCH+TWxsLKbAsuBffMc93w3PGm3wa/sIik8Zyg16Hf8+E0tEcQyg8/TDr/MYQoe9h9UjkEEPDCR23Sa1Y7mU1NRU2rVrx8+7dhPWe1ypKI4BNHoDQX1fQe8dRK/evTl6/KTakf7V3r172bJlC+bo3lIc34LOwwfflkOJP7af6bM/VzvOLckKshCiVElLSyMkJASfxv3wbvmQ2nFKJXtBDknLxmHPSmXPnl00qFP69oa9U1evXiUmJobTZ88R2vdldPd4fLgrsqTHk7TkeTzNPpw5cpCgIOe6SfXP+vTpw4bvfyBs1Dxw81A7jlNS7DYSFj2N1pJL8qWzmL29inM6WUEWQoh/snbtWmw2G17VmqsdpdTSGj0J6j8ZRedG6/aduBqfoHYkp3b27FlatGjB2QuXCB/4WqksjgEMfuEE9p1IVmoiDdt0ctoDJ44ePcrq1avxqt9diuN/oNHq8O8wmoLryTz09AS14/wPKZCFEKVKbGws7v6hEFhJ7Silmt4cTFD/yeRmphPduiO5ublqR3JKv/32Gy1btiQhJZ2wQdPQhN+ndiRVuZetTkC357h07CDteg50ygMnpk+fjt5owrt+D7WjOD33iFp4VG/F2sWz+eWoc7XOSIEshCg1MjIy2Lx5M+5RzUrsXf+uxBhamcCe40g4e4zmnXtjs9nUjuRU9u3bR+vWrUnPtRA2dDoERaodySl4Vm+Jb+th7P5+LQ8/+bzacf7i3LlzfPnll3jX7QLu3mrHcQl+bUaAVsuAEU+oHeUvpEAWQpQa69atw2KxYK4u7RXOwqNyY/zaj+TQzu8ZMOJJteM4je3bt9OuXTvyNUbChsxA8S2ndiSnYm7cH686nVjy6Xu88d7Hase5aebMmaDR4hPdW+0oLkNvDsSn6UDO7P2BOV+uVjvOTVIgCyFKjdjYWIw+QRAcpXYU8SfmBj3wbtCTlYs/4+WpM9WOo7p169bRuXNnFM9AQgbPwO4donYkp6PRaPCPeRz3CvV45fmn+WbNBrUjER8fz4IFC/Cq1QHF01/tOC7FHN0HvW8Yzz3zNIWFhWrHAaRAFkKUEtnZ2WzcuBH3qKYl7sSxksCv3SOYoprw5qSXWPRVrNpxVPPVV1/Rp08fDEEVCB40DbuHFFp/R6PTE9R7PG4B5Rj0wAD2Hjykap53330Xi9WKX9P+quZwRRq9Ab/2I8lJvsSol6aqHQeQAlkIUUps3LiR/Px8fKS9wilptDoCuz+PMSSSRx4ayo+74tSO5HBz5sxh8ODBmMpWJ2jAVOxGs9qRnJ7W6EFQ/8mgN9K2Q2cuX7mqSo60tDQ+/fRTvGu0RpEV/7viUbkRpkoNWfLxO5y9eEXtOFIgCyFKh9jYWNy8/SC0mtpRxN/QurkT1G8SWg8znbp04+z5C2pHcpiZM2cyevRovCpH499vCnaDSe1ILkNvDiK4/2TysjOIbt2R7Oxsh2f48MMPycnJwb/p/Q6fuyTxaz8Su7WQ/o+MUTuKFMhCiJIvLy+PdevW4V65CRqtTu044h/ovPwI6jcZS0E+jVvHcP36dbUjFStFUXjllVcYN24cPve1xr/XeNAb1Y7lctxCIgns9SJJ50/QvFMvh+6IkpWVxaxZs/Cu0hTFyU7ndDUG/zKYo3tzaOtqVmz8QdUsUiALIUq8zZs3k5OTg0+NFmpHEbfBLag8gb3Hk3b1PI3bd8disagdqVjY7Xaeeuop3njjDXzrdcan63OgM6gdy2V5REbj32EUv+76gX7DRjts3s8++4z09HT8mw9w2JwlmU+zgei8/Bn1+JOqbv0oBbIQosSLjY3F4OGNJqx0H7LgSkwV6hLQeQynDv5M14HDUBRF7UhFymq1Mnz4cD766CP8m/TFHPOkfLpRBLzrd8c7ujdrls1n3JTpxT5ffn4+77zzDl6V6snuOEVE62bCt81w0i+eYNy0WerlUG1mIYRwgMLCQtasXXujvUKnVzuOuANetTrg03QgW1Z9yZPjJqkdp8gUFBQwYMAAFi9eTGDrB/FqNVwOrilCfm1HYKrSlJmvvsz8pV8X61yLFi0iMTER/+YDi3We0sazRhuMZWswa8arJKakqZJBCmQhRIm2detWMjMy8JX2Cpfk03IoHjVaM/vtqXwwZ5Hace5ZTk4OPXr0YNWqVQR3HI1nk4FSHBcxjUZLYPexGMOiGDXiIbbt3F0s81itVmbMmIFnueogn04VKY1Gg3+Hx7DmZjFg1LOqZJACWQhRosXGxmJw90RTprbaUcRd0Gg0BHZ5BmPZ+3j2yVGs36zujTv34vr168TExLBl61ZCezyHqV4PtSOVWFqDO0H9JqL18KVLt+6cOnOuyOf46quvuHDhAv7NBsgfOcXALaQSXnU6sXPNMn7Ytd/h82tcuK/LZYMLIRzDarUSEhqKJbQ2/t3Hqh1H3ANbXhZJS5+H/CwO7oujZg3X2q4vOTmZjh078tvRY4T2fhF9ZBO1I5UKltTLJC57AZ+AYM4e2Y+fn1+RjGu326lVqxYXruUR+NAHcvhQMbHlZRI/ZzQhFatw9ei+e/lD5I4vlO+oEKLE+vHHH7mWlobPfXI4iKvTmbwJ6j8FO9C8XUeSk1PUjnTbLl26RMuWLTl6/CTh90+W4tiBDIHlCOr9MukJl2jUrmuRHWO8du1ajh07hm/TAVIcFyOdyYxvqwdJOH6AaR8vdOjc8l0VQpRYsbGx6N3c0ZStq3YUUQQMfmEE9Z1IVmoi0W06kZ+fr3akf3Xq1ClatGjBhSvxhA+aijZCfhYdzb18bQI6j+HMoT107j/0nndEURSFN954A1NAOPrKzYoopfg7XnU6YQiuyOuvjCczy3GHwEiBLIQokWw2G6tWrcI9siFag7vacUQRMZapTkD3sVw6/gttew7AbrerHelv/frrr7Rs2ZKU69mED34TjZziqBqvWu3xaT6Ibd9+w2NjJ9zTWFu2bGH//v34NOkvW/M5gEarw7/DaAoykhn61MsOm1cKZCFEibRr1y4SExPxrdFS7SiiiHlWa4Fvm4fZ8/23PPTEc2rHuaXdu3fTunVrsiwQOmQ6SkBFtSOVej7NB+N5X1vmvPcm73wy/67HmTZtGu6+QbhVa1uE6cQ/cS9XE48arVm35FMO/nbCIXNKgSyEKJFiY2PRGdzQlKundhRRDMyN+uFVpzPLPvuA19/+UO04wI2P3rdt28bgwYNp06YNhXpPQofMQPEpo3Y0wY0dUQI6P4WxXE1eeOpx1m7acsdj7Nq1i+3bt+Md3QeNXk49dCS/NsNBq2PAiCccMp/sYiGEKHHsdjsR5cuT4VGWgD6vqB1HFBPFbiN5xWvkX/yFr1asYWCf7qrkSE5O5vPPP2fu3LmcPn0aNw9vTDXa4t9sAHaTryqZxN+z5WeTtPR5lNwMDuzdQ+2aNW772h49evD99p2EjJqPRlq3HC5jzzdc//FzPl26ktFD+tzJpXe8i4UUyEKIEicuLo4mTZpQpvfz6Ku2UTuOKEb2glySvngRW0YSP//8E40bOOYTA7vdzrZt25gzZw6rVq3CYrHgWb4mPvU6o6vUFK3B6JAc4u5YrieStGQsJk8vzhw5SEhI8L9ec/jwYerWrUtg6wfxbCIn56lBsVqIX/AERoOBtEunMBpv+/dMtnkTQojY2Fi0Oj3a8g3VjiKKmdboQVC/yWAw0S6mC5cuXynW+RITE5k+fTpRUVF06NCB1es34VmvG+VHf0rgA9MxVG0jxbELMPiGEtRvEjnpKTRsHUNeXt6/XjN9+nQM7p541uvmgITiVjR6A37tR5GTfIlRL00t3rlkBVkIUZIoikLlypVJ0vgT2H+K2nGEgxQmnSPpixcJKlOB04fj8Pb2LrKx7XY733//PXPnzmXNmjVYrVY8K9TGt25ndJFN0Ojdimwu4Vg5J38mdfV0GrbtTNyWdWi1t143PH36NNWqVcOncT/MrYY5OKX4b8krXqXg8lFOnDhOVMWI27lEVpCFEKXboUOHOHfuHD41WqgdRTiQW0glAnuOI+nCSZp36oXNZrvnMePj43njjTeIjIykc+fOfPvdVrwb9qL86DkEDpyGvmorKY5dnGfV5vi1Hc7+bRsZMurpv33eW2+9hUZnwBzdy4HpxN/xaz8SxVbI/Y8+VWxzSIEshChRYmNj0Wh16CpGqx1FOJgpMhr/mMc4snsbfR4ceVcHQthsNjZu3EifPn2IiIjglVdeIUXjS5l+LxE6eiHm1sNMsDGEAAAgAElEQVTBN7wY0gu1eEf3wateV76a/xGTZ7z/P49fuXKFzz//HK/aMSA3XToFg1843tG9OfzDGr7ZsLVY5tAXy6hCCKECRVFYsWIFHhG10Jp81I4jVOBdryvW9AS+/XIhL0RV5u1Xb+9ggStXrrBgwQLmz5/PpUuXMHr7YW7UF3OdjuATVsyphZo0Gg3+HUZjy0jmtZfHUrVyRQb3+/+V4nfeeQebXcGvST/p7XQiPk0HknN0G6Mef5I+Z39Dry/aklZ6kIUQJcbRo0epWbMmoV2fxFiri9pxhEoUxU7q6unkntrN3MVf8uiDt95xwGq1snHjRubOncv69eux2+14RdbHt15ntBWi0ehkn9vSxF6QS9KXL2FLT2DHzh00a9SQlJQUypcvjyGqOX5dnlE7ovgvOcd+JPXbmTz76ju8O+kfDw2SHmQhROkVGxsLGg2GSk3UjiJUpNFoCeg+FmN4FUY/Mowfduz6y+OXLl1i8uTJVKhQgZ49e7L5x134Nrmf8o/PI6D/a+gim0lxXArd2BFlEhqjBx06deXipct88MEH5Ofn49/0frXjiVvwqN4KY9n7+HDGayQkpxbp2LKCLIQoMerUqcOZ6zaCBs1QO4pwArac6yQuHYvWVsgve/dw+uRx5syZw8aNGwHwjGyIb71OaMs3RKOTjkNxQ2HyOZKWvYh/aFksGcnYw2vh3/MltWOJv1GYfI6ERc/QoucQdq5e/HdPk4NChBCl0+nTp6lSpQohHUfjXq+H2nGEk7CkXSZx6QvYC3JAUTD6BOJZKwbv2h3BO0jteMJJ5Z07QPKKV0GxU+GRD1ECK6odSfyDtM2zyT60kS0799C++S1v0L7jAln+ZBZClAixsbEAGCtLe4X4f4aAcgT1m0Te4Y341GiFpnx9NFqd2rGEkzNVakBgz3EoGQlSHLsA35ZDyD2+g6GPPk78sX1oNHdcD/8PWUEWQpQI0dHRHEvIImjoO2pHEUII4WBZv2zg2uZPeO2DuUx86tH/flhaLIQQpc/FixepUKECwe1HYGrYV+04QgghHEyx20j4/Fm0BdkkXTqDj/kvp2nKLhZCiNLnj/YK96hmKicRQgihBo1Wh3/MaAoykhn61Ph7Hk8KZCGEy4uNjcUjLBKNT6jaUYQQQqjEvex9eNZow/qlczhw5Pg9jSUFshDCpV29epVdu3bhUaW52lGEEEKozLfNcNDqGDDiiXsaRwpkIYRLW7VqFQAeVaW9QgghSju9dwA+zR7g3P7tzF4ae9fjSIEshHBpsbGxmILLo/Erq3YUIYQQTsDcsBd6v3Cef+5Z8vML7moMKZCFEC4rOTmZHTt24FFFVo+FEELcoNEb8G8/ityUy4x68fW7GkMKZCGEy1q9ejV2ux3Pai3UjiKEEMKJmCIbYoqMZtmn71LhpfXmO71eCmQhhMuKjY3FFFgG/CPUjiL+gaLYseVlYbl2lfwrx8g9HYc1K03tWEKIEs6v/Uh+P+/jhTu9Vo6aFkK4pGvXrvHDDz/gHd2nSI4VFbdHURSUwjxseZnY8zKx52be/G9bXib23Izf//9P/5aXBYr9L+PoPP0Ifegd9OZglb4SIURJZ/ALp8zjCwDu+LxwKZCFEC5p7dq1WK1WvKvJ9m73ypabgS07DdsfRW1uxo3iNy/z///tT8UwNsutB9Jo0XqY0Zl80HqYMQRGYDSZ0ZnMaD3MaE1mdB4+YLeT8u1Mkr95ldChb6E1ejr2CxZClBo60x13VwBSIAshXFRsbCzufiEQFKl2FJel2G1k7P6ajJ+//J8VXgCtu9fNolZvDkYbUhndH4WuyYzWw+dm8aszmdEYPW97NT+o93iSv5lMyurpBPefjEYnb0dCCOchr0hCCJeTmZnJ5s2b8ajbVdor7pItJ53Ub98h/+IhPKq3wqNqc3QePv9f/Jq80Wh1xTa/qUJdAjr9h7SNH3Bt8yf4dx4j30shhNOQAlkI4XLWrVtHYWEhIdWlveJu5F/8ldRvZ2IvyMG/8xi8andUpTj1qh2D9XoiGbuXo/cNxafpAIdnEEKIW5ECWQjhcmJjYzGaA9CEVFU7iktR7DYydi0nY9dX6P3CCR34Om5BFVTN5NNyKJaMRK7vWIzeJwTPGq1VzSNEaZJ7ahd63zDcgu/4HrYSTwpkIYRLycnJYePGjbjXaI9GIztV3i5bdjqp62aSf/FXPO9ri3/HJ9C6mdSOhUajIbDLMyRlppK64X105iDcy9ZQO5YQJV7u2X2krJqGziuA8Ec/kZtl/4u8uwghXMrGjRvJy8vDXF0OB7ldeRcOEb9oDAVXTxLQ5SkCuj3nFMXxHzR6A0F9J6A3B5GyciqW9Hi1IwlRolkzU0hb9y56vzBsOemkb1uodiSnIwWyEMKlxMbG4ubliyasutpRnJ5it3F95zKSl09Ea/Qi9KF3VOs3/jc6k5ng+6cAkPzNlBvbyQkhipxis5K6ZgaK3Upw/ymYo3uTfXgT+Rd/VTuaU3HZAvnQoUN/nI4ihCgl8vPzWbduHe6VmxTrDgslgTX7GknLJ5Kx60s8a7YjbNj7qvcb/xuDXzhBfSdizUwhZeVUFGuh2pGEKHGu71hMQfwJAjqPweBfBp8Wg9H7hZG2aRZ2S77a8ZyGyxbI9erVo3LVGkyfPp0rV66oHUcIUcw2b95M06ZNyc7OxrdmK7XjOLW887+QsPApCuNPEtD1GQK7PYvWzV3tWLfFvWx1Ars9R8GVY6RueB/lFvszCyHuTu6ZvWTuXYlXva54Vr/xOqo1uBPQ+Sms1xO5vnOpygmdh8sWyJX7PE18robx48cTERFB0xatWbhwIZmZ8rGcECXJwYMHiYmJoVOnTpy8lEh4nxfRlKmtdiynpNhtXN+xhOSvJ6EzmQl96F28anVQO9Yd86zeEt/WD5N7fIe8YQtRRKyZyaStfw+3kEj82z36l8fcI2rhVbcLWfvXUhB/UqWEzsVlC+SwJr0IGTqT8FFz8WsxmAPHzjBixAgCg4Lp038A69atw2L5m+NQhRBO79y5cwwePJgGDRqwc88+gjuOImj4bAxVWqodzSlZs9JI+moCGbuX41mrPaEPvYtbUHm1Y901c+N+eNXpRObur8n+dbPacYRwaYrNSsrvfceBvV5Eo3f7n+f4tRmOziuAtA0foFilfnL5bd4MfmEYmg3Cq+kDFMafJP/EdtZu+I7Vsd/g4xfA4EGDeHjYg0RHRzvljSlCiL9KSUlh6tSpzJ49G0Wjw7/ZQMyN+qEYPdSO5rTyzh8kdd07KJZ8Aro+i1et9mpHumcajQb/mMexZiST9t3H6MzBmCrUVTuWEC7p+o+fUxh/ksCeL2LwC7/lc7RGDwI6PUHyilfJ2P01vi2HODilc9G46o1urd7aply6lnvLxxSbhbxzByk4vp2sU3tQbBbKVYzkkYcf4qEHH6RiRdkQWwhnk5OTw/vvv8+MGTPIzsnBXKcjfi0Go3j4q5rLbikAQGswqprjVhS7jes/fUHm7q8xBJYjsNdLuAVGqB2rSNkLcklcNg5rRjKhQ99y+hsNhXA2uafjSFn5Ol71uhHQ8fF/fX7qunfIOb7jxo29JecAkWUXpncbeicXlMgC+c/s+dnkntxF3vFt5F48AkD96CaMeuRh7r//fvz91X3zFaK0s1qtLFy4kMmTJ5OQkIB31aYEtB2G4lNW7WjknPiJtI2zwG7DvXxtTJUaYoqMRu8TrHY0rFmppK6dScGVo3jV7ohfh1FoDa5xI96dsmamkLhkLGh1hD74Dnoved0W4nZYM5JJWPQUep8QQofOvGVrxX+z5WUSP+8J9OZAQh98p6TsGCQF8j+xZiaTd+xHso/+QGHqZfQGAzGdujByxMN07doVo9H5VoiEKKkURWHNmjWMHz+eEydO4BlRg8B2IyCkmtrRUKyFXPthPtm/rMctvCrGsCrknd2P9XoCAIaACEyRN4plY5nqaHSO7VbLO3fgRkuFtRD/Tk/idV9bh86vhoLEMyR98RKGgLKEDJruMrtyCKEWxWYhcdlLWNIuE/bwBxj8wm772pwTP5G6Zjq+bR7Gp3H/YkzpMFIg3w5FUShMOkv+8e1kHf0RW046nmYfBg4YwPBhD9G8eXPpVxaiGO3atYtx48bx888/4xFUDv82D6Ot2Mgpfu8s6fGkrplBYdJZzI364tvqITQ6PYqiYL12lbxz+8k7u4/8y0fBbkVj9MRUod6NgrlSA3SefsWW7cbBH0vI3LMCQ2B5gnq/hCGgXLHN52xyz+4jJfZ1TJENCeozoaSsbAlRLK79MI+sfasJ7PUSntXu7ORRRVFIWfUG+ecPEjb8Qwz+ZYoppcNIgXynFLuN/AuHbhTLJ3ehWAoIKxvB8IceZNiwh6hSpUoRpBVCAJw4cYLx48ezevVq3M0B+LYYjNt9HZym0Mk5voO0TR+i0eoJ6PYsHpUb/e1z7QW55F88RN7Z/eSd248t+xoAbmFRN1sx3EIro9EUzWZB1sxUUr99i4Irx0p8S8U/yTq4jmvff4p3gx74dxitdhwhnFLu6T2krJyKd/3u+Mc8dldjWLOvkTDvcQxBFQgZ/GaRvZapRArke2EvzCP31G7yj28j5/xhUOzUrNuAkcMfYtCgQQQFBRXpfEKUFvHx8UyZMoX58+ejczPh07gvHg16oXGSAu9GS8U8sn/ZgLFMdQJ7jkNvvv3fd0VRsCSfu1Esn933+z6iCloPX0yVGtwomCvWQ+vudVf58s7uI3X9eyg2CwGdnsSzRpu7GqekuLZ1Lln71+DXfhTmhj3VjiOEU7FmJJGw8Cn0vqGEDn0bjd5w12Nl//o9aRs/wD/mcbzrdyvClA4nBXJRsWalkXf8R3KObacg6RxanZ7hj4zkrTenyo19QtymzMxM3nrrLd59910KLBbM9bri2+wBFHez2tFusly7SsqaGViSz2Fu3A/flg/ec0+xLTeDvPMHyTu3n/xzB7HnZ4FGi7Fsjd9bMaIxBEb8a0uJYrPeaKmIi8UQVIGgXjd6cEs7xW4jZc108k7tIajvBDyimqgdSQincKPv+EUsaVfuuO/4luMpCslfT6Ig/gThIz52ihuU75IUyMWhMOUCOb+sJ/PQd3h4m5k2dSpPPj4avd7lt5EWolgUFhby6aef8vrrr5Oamor5vjb4t34QxTtE7Wh/kXPsR9K++wiNzkBgt2cxRUYX+RyK3UZB/MmbvcuW5PMAN/b1/f1GP/eIWv/TLmHNTCF17VsUXD2OV93O+LUb6ZRbzanFbskn6cvxWFIvETJoOsawKLUjCaG6Pz5dCew9Hs+qzYtkTGtGEvHzn8RY9j6C75/iFPeK3AUpkItTYfJ5rv8wl7yLv1IhqjrzZn9I+/auvyG/EEXFbrezfPlyJkyYwPnz5/GqVJfAtiNQAiupHe0v7JYC0rfOJfvwJoxlahDY84U7aqm4F9as1Jt9y/kXDqFY8tHo3TBG1LrZu2xJvUTa+vdQ7FYCOv0HzxqtHZLN1dhy0klY8jyKtYCwB9915dUtIe5Z7qndpKx6o1j68zMPfEv6ls8I6PYsXjVdsu6RArm4KYpC7qldZGxfgOV6Eh269GDOxx/I4SOi1Nu6dSsvvvgiBw4cwDMsEv+2w9GUreN0qw2WtCukrJmOJeUC5ib98W0x1OHbtP1BsVrIv/zbzdVla3r8zccMwRVvtFS4/t3jxaow9RKJS19A7x1A6NCZaI2eakcSwuEs1xNJXPQ0er9wQoe8dU99x7eiKHaSlr2EJe0S4Y/MRudVfLv1FBMpkB3Fbikga99qMvZ8jRaFMU8/w+uTJ+LldXc34Qjhqg4dOsRLL73Ed999h8kvBN9WD2Ko2sop73jOObadtO8+/r2l4jlMkQ3VjvQXlt+3kVOsFswNe97Wpv4C8i4eJvnrSbiXq3XjI2CV/uARQg03+o7HYbkWf6Pv2De0WOaxpF0mfuFTeERGE9Tn5WKZoxjdcYHsfO9gLkJrMOLTbCDhIz/Do2oL3n/7LcpWiGThos+x2+1qxxOiWNlsNjZt2kSfPn2oX78+237aTVCHRwkaMRu3am2crji2WwpI2ziL1G/fxi24ImEPz3K64hjA4F8Gc8Ne+DTpL8XxHTCVr0NA56fIv3iItO8+xlUXfoS4G+nbFlKYcJrArk8XW3EMYAgoh2/zQeSe2kXOyZ+LbR5n4VzvYi5I7x2If7fnCB06kwKjLyOGP0zN+tHExcWpHU2IInf16lWmTp1KZGQkXbp0YcOW7fg1HUDYqLl4NOjtlEWdJe0yiUvGkv3rZsxNBxAy6E305kC1Y4ki5lWrPT7NHiDnyPdk7vlG7ThCOETuqV1kHViLd4OeeFRpVuzzmRv1xS0kkmvfz8aWl1Xs86lJCuQiYixTneChbxPQ9VlOnT1PkyZN6DtwMPHx8f9+sRBOzGazsX79enr16kX58uWZOHEiaTp/yvQbT+johXi3fBDcnLPvM/voNhI+fxZb9jWC738Vv1YPOc2hJKLo+bQYgmeNNlzfsZicYz+qHUeIYmW5nkjqhg9wC4vCr+1wh8yp0ekJ6PIU9txM0n+Y55A51SKNWkVIo9HiVas9HlWakrnna1bHfsO6tasZP/5lxo97Hnd35zgUQYjbcfnyZRYsWMD8+fO5fPkyRm8/zI37Yq7TCczF9zFeUbBb8knfMofsXzdjLFeTwB7Po/eWVeOSTqPRENDlaaxZqaRueA+ddwDu5WqqHUuIIqdYLaSumYEGCOz5Ihpd0d6U90/cQiIxN+lP5u6v8azeClOlBg6b25HkJr1iZElPIGP7AnJO7Sa4TASzZ71Pnz69ne6ufiH+YLVa2bBhA3PnzmXDhg0oioJnpfr41u+MtnxDh74I3y1L6uUbu1SkXsKn6QB8WgyWVeNSxpaXReLSF7DnZhD64NuyE4goca5t+YysA98S1GcCHlWaOnx+xVpI/MKnUKwFhI/4GK3Rw+EZ7pDcpOdMDH5hBPaZQPDAqWQUaujXry+NWrTht99+UzuaEH9x8eJFJk2aRPny5enVqxff79iNb9P7iXh8HgH9X0VXqalLFMfZv20lYfEz2HKvEzzgVXxbPSjFcSmkM3kT3H8yaDQkr5iCLTdD7UhCFJmckz+TdeBbvBv2UqU4BtDo3Qjo8jS2zFSu7/hclQzFTQpkBzBVqEvIw7Pwj3mMgwcPUrt2HR4e+RhpaWlqRxOlmMViYdWqVXTt2pWKFSvy+tSpZHqUoez9EwkZNR/vFg+Ck51893fshfmkrn+ftPXv4RYadWOXior11Y4lVGTwCyO430SsmamkrJyKYi1UO5IQ98xyPZG0DR/gFlYFvzYPq5rFvWx1vBt0J+vgevIvl7yFP2mxcDBbXiaZP39B5sENmDy9mfr6azz1nyfk2GrhMOfPn2fevHksWLCAxMRE3H2C8KgVg3ftGPB2zGlyRakw9RKpq6djSbuMT7OB+DQfJKvG4qacEz+RumY6pshoPGt1wC0gAr1fmOyVLFyOYrWQuOwFrOkJhA2fhd5H/QUMe2Ee8Qv+g0arI2z4h2gNRrUj/R05KMRVFKZcIOOHeeReOEREZFXmzf6QmJgYtWOJEspisbB27VrmzJnD5s2b0Wi1eEY2xK9+FzQR9V22oMw+soVr389GYzAR2ON5TBXqqh1JOKHMfatJ37YAlN/3qNfqMfiHYwgsjyGgHIbAiBv/8wtziVYiUTpd+/5Tsg6uI6jvK3hENVE7zk15Fw6RvPwVzI37q76q/Q/uuECWP6FV4hZUgcABr5N3Jo6EbfPo2LEjbTt2Ze4ns4iMjFQ7nighzpw5w7x581i4cCHJycm4+wYT0GooXrViwCtA7Xh3zV6Yz7XvZ5Pz21aMEbVv7FLh5a92LOGkzNG98arTGcu1K1hSL2JJvYwl7RKFiafJPfET8PtCkVaHwS/8RrEcEIEh8Pfi2a9MkR/dK8SdyDnxE1kH193oO3ai4hhutJF61oohc+9KPKq1wBhaWe1IRUJWkJ2AYrWQuX81GbuWo1FsPDnmad54dRLe3t5qRxMuqLCwkNWrVzNnzhy2bt2KRqvDs3Ij/Op3RlOursuuFv+hMOUCqWtmYEm7gk/zB/Bp9oDLf01CPXZLPtZrVylMvYQl9RKWtMtYUi9ivZ70/yvOGi16v3DcAiP+uuLsX8YpD8cRJYslPYGERU9jCChH6JDpTvkphz0/m/j5T6A1mQkb9p4zZpQWC1dmzUojc+diso5sxewfxOyPZjF40ANqxxIu4tdff2Xx4sUsXryYlJQU3P1C8arTEY+a7dF4uu5q8Z/lXzlO8vJX0BhNBHaXlgpRfOyWAqzpV7GkXqLw9xVnS+olrOkJ/1U4h90smt1+X3nW+5dx5l5M4UIUayGJS1/Aej2RsOEfovcJVjvS38o9vYeUlVPxaTEE3+aD1I7z36TFwpXpvQPw7/osnnW7cn3rHIYMHsTaTVtY9NlHcsiIuKWrV6/yxRdfsGTJEo4cOYJWp8ejciMiYp6GMrVK1MqqLT+b1G/fQuflR+iQmei8/NSOJEowrcGIW3Al3IIr8edzIhWrBUv6VSwpF39fbb5EYeol8s7s/Wvh7BuCR7VWmBt0R+cpP6vi7qRvm09h0lmC+k506uIYwCOqCR7VWpKxazkeVZvjFhihdqR7IivITkqxWbm+cwmZcbFUqFqTLetXS2+yACArK4vY2FiWLl3KDz/8gKIoeJStjrlWO9yimqEx+agdscgpikLq6jfJPRNH6JC3MIZXVTuSEH+h2CxYrsX/3qZxiYKEU+SfOwg6PV4122GO7oMhoKzaMYULyTm+k9S1MzBH98Gv3SNqx7kttpzrxM9/Ar1vGKFD33KmRRpZQS4pNDo9fm2GYyxTg0sb3qNG7bosXrSIgff3UzuaUIHVamXz5s0sXbqU1atXk5eXhykgHP8Wg/C8rw0an3C1Ixar7MObyD21C982w6U4Fk5JozPgFlQet6DyN//Ncu0qmftWkX1kK9mHN2OKaoy5UV/cy9ZQMalwBZb0eNI2zcItvCq+rYepHee26Tx98Ws/krR175B14FvM0b3VjnTXpEB2ch5RjXF7+ANS10zngQH9+W70f/jsw3cxGJyuAV4UMUVROHDgAEuWLOGrr74iOTkZN08zpurtCK7dDiW4Sqk4trww5QLpW+fiXqEe5kZ91I4jxG0z+JchoNN/8G0xlKyD68g6uJ6k03swhlfD3LgvpsqNnWmFTTgJxVpI6poZaLQ6gnq+6HJ7dnvWaEPu8R1c37EEU+XGGPzC1I50V6TFwkUoVgvp2+aTdXAdVWs34Pt1qyhXrpzasUQxuHDhAsuWLWPJkiWcPHkSncENU2Qj/Gq3QxNRzxnvDi42dks+iYufw5abSfjwD6XvWLg0e2E+2Ue+J2vfaqwZSej9wjFH98azZnu5qU/clLb5E7J/2UBQv4l4VG6sdpy7Ys1MIX7+E7iFRhHywBvOsJgjLRYllUZvwD/mMYxl7+P0pllUua82y79YSs/u3dSOJopAeno633zzDUuXLmXnzp0AeJavRVj3p9FXborW6KVyQnWk/zAfS+olgge8JsWxcHlaN3fMDXrgXa8ruad2kxkXy7XNn3D9p2V41++Od72u6DxK3j0E4vblHN9B9i8bMDfq67LFMYDeHIRf2xFc++5jsg9/h3fdzmpHumNSILsYz+otcQupRNqa6fTq2YP/PPsC7781DZ1OPqZzNQUFBWzcuJElS5awbt06CgsLMQVFENhmGB412qBxwWOfi1LOyZ/JPrQRc6O+mCrWVzuOEEVGo9XhWa0FHlWbU3D5NzL3riTjp2Vk7lmBV+0OeEf3weAbqnZM4WAFCadJ2/QhxvBq+LZ6SO0498yrTidyju8gfdsCTJUaojcHqh3pjkiLhYuyWwpI3/IZ2b9upnZ0c75bu4LQUHlBdXaKorBr1y6WLl3K8uXLSU9Px+jth6laK3xqt0MJqOQMH0WpzpqRTMLCMej9wwkd8lapaisRpVNhykUy960i5+h2UOx4VGmGuXFfjGFV1I4mHCD39B5Sv52J1sOX0MFvojc795Zut8uSHk/CgjG4l69NUL9Jar6/SYtFaaE1GAno8hTGsvdxZPMnVK5ek1UrviamfTu1o4lbOH36NEuWLGHZsmWcO3cOnZsRj6imlOvcDk3ZOjdv1JHSGBS7jdRv30ZR7AT2fFGKY1EquAWVJ7DrM/i2fJCsA9+SdWgjuSd/wliuJubG/TBVaoBGo1U7pigGmfvXkr51Lm5hlQnuN6lE7Ztt8AvHt+UQ0rctIPf4DjxrtFY70m2TFeQSoDDlAmlrplN4LZ4XJ0xi2qsT0WrlhfTPcnNzOXjwIAkJCQ6dNz4+ni+//JK4uDjQaPCsUBef2u3QVWyM1ujh0Cyu4vqOJWTsXk5gjxdc6sVUiKJkL8gl+/B3ZO5fiy0rBUNABOZGvfGs0RaNXv5oLAkUu430H+aTdWAtpqgmBPZ4Hq2h5B0KpthtN08DDH90tlp99nLUdGllL8jl2ncfkXN8B41atmPDqq8JCCgZxwvfKbvdzunTp4mLi2PPnj3ExcVx+PBhbDabKnk8wiLxrNEGU7WWaLxcqwfL0fIv/krSVxPwrNmewG7PqB1HCNUpNis5J3aSuXclluTz6Lz88W7QA++6XdC6l86bd0sCe2E+qeveJu/0Hrwb9sKv7YgSveVfYcoFEhY9g0fVZgT1HKdGBCmQSzNFUcg+tJH0rXMw+wfy7coVtGzRXO1Yxe7atWvExcX9f0G8dy/X09MB0Lt74BZWBVOZapjKVMPmGYgjGxm0bu7ofUIcNp8rs+VmkLBwDBo3D8KGvYfWzaR2JCGchqIo5F84RGZcLPkXD6FxM+FVuyPm6F4lpl+1tLBlp5Mc+xqFSWfxaz8Sc4MeakdyiOs/fUHGz18Q1HciHlEO36FDCmQBBYlnSFszHQCXr6wAACAASURBVGtmClOmTmPiSy+UmBu/LBYLv/76682V4d179nDm9GkANBot7sEVMIRF4VWuBpqQKHT+ZaVvzwUoikLKytfJO3+QsAffxS2kktqRhHBahUnnyNy7kpzjOwDwrN4Kc6O+8nvjAgpTL5H8zRTseRkE9hinRqGoGsVmIeHzZ7FlpWKO7oNXva7oTN6Oml4KZHGDPT+baxs/IOfUblrFdGPN10vx9fVVO9YdURSFy5cv/6VVYv+BAxTk5wPg5u2PIawqnmWr/R979x0eVZX/cfx9ZzKTyUx6T2ih966AgIAiiICAgAoiCAqiUiz8Fvuua1kVdBWsawN7pQgCFpDeQXoTKQklkF6nz5zfHwFWV9QkJLkp39fz5FnIzL33Y9jAJ+eeew7mxKZoMQ1l1LGKKnpI5S0iet9J6GWD9I4jRJXgzUsjb+vXFOz+HuV2YKnXhpAOA2WHvkrKkbyL9AX/whBgJmb4PwiMb6R3pArnyTxJ1oq3cB77Cc1kIbhNH0IvH1IRd1qlIIv/UkqRv3Uh2avnEhWXyLeLFnDZZR31jvWHCgoK2LZt24VCvGnzZs6ce6jOEGDGEt+IwMQm2Oq0gJhGGEJjqs3IeE3mPnuE1A+nEVS/AzFDH5c/UyFKyOcsoGDnMvJ/WoovPx1jSAwh7foR3LZvtVoRoSor2LuCzGWvYIpMJHb4EwSE1expMe60Y/+9C6IU1mbdCe00tDx/aJCCLH7PefIAmYuex+/IY8aLL/LAlEm6lxCv18uhQ4fYsmVLURnetIm9e/fi9/sBsETVIiC+CSF1mmNMaIIhqp4s91UN+d0OUt+/D+V2kDDuFdlFTIhLoPw+HL9sIf+nJTiTd4IhAGvTboR0GEBgrea6/71fEymlyF3/CbnrP8VSry0xQx6Whyt/xZuXTv62ReTv+vbCXZDQTsOw1O9Q1v9/lYIsLs5nzyVryb+xH93OtYOH89VHcwgOrphv0oyMDHbt2sXu3bsvfOzdtw+3ywVAQFAw5oQmWGs1JahWM1RMIylKNUTGkpcp3LuCuBHPYKnXRu84QlQbnsyT5O9YSsHeFShXIabY+oS0H4CtRS8M5uq3lFhlpHweMpfNpnDfSmytriGq3yQZ6PkDflch+Tu/JX/b1/gKsjDFJBHa6QZszXuU1ddMCrL4Y0r5ydv4JTnrPiauTn1++GYBrVu3LrPzu91uDh06dKEE79q1i127dnPmzH/XHjaHRBAQXR9LXH2C4utDTEOMEbXkQboaqHD/KjIWv0DYFTcT3mO03nGEqJb8bieF+1eR/9M3eNKPowXaCG7Vm5AOAzBF1tI7XrXlcxaQvuAZXCl7CLvyVsKuuFlG8ItB+TwU7l9dtKxhRgrG4ChCLhtMSLt+l7p3QNkXZE3T3gMGAmlKqVbnPtcOeBOwAF7gHqXUlosc+zFwGeABtgATlVKeX71+ObARGKGU+qokwaUgl54zeTcZi2eCx86rr77OXRNuL/E5zp49+7tR4f379+PxFP3xGgJMBEbXxRidRHBiA4zRSWiRdWU+nADAk51K6typmGPqE3fLs/JAkRDlTCmF69QB8n9agv3QevB7sSS1J6TDAIIaXi7fg2XIk3OGtC+fwJtzhqj+9xLc8iq9I1U5SimcR7eTu2U+rpTdaGYrIe36EXLZIAJCSrWfQLkU5B5AAfDBrwry98BLSqllmqb1B6YrpXpd5Nj+wLJzv/0EWKOUeuPca0bgB8AJvCcFuWJ5C7LIWjwTR8oebhgxmo/f+w9BQb9fAcLlcnHgwIHfjQqnp6ddeI85NJqAmCSC4upjiWsAkXUwRtRGM8pO5uL3lM/DmY+n4806TcK4V2r8wypCVDRfQTb5u7+jYOe3+PIzMIbGENLuOoLb9MVoq1qrHVU2rtOHSJv3FPi9xNzwKJa6ZXeXtqZypR4mb8v8oh/sNA1bi55FyxrGJJXkNCUuyH/ZYJRSazRN+98UCgg99+sw4PQfHLv0/K81TdsC1P7Vy1OAecDlxY8rykpAcCQxNz9NzrqPWfDZhzTdupUvPppDdnb2f8vw7t0cOngQr9cLFK0kERhTj4CEtsR3aEhAdD2IrCvzhUWJ5Kz5EHfqYWKGPCLlWAgdGIMjCO86grAuN+I4vJn8HUvIWfMBOes/wda0OyEdBmBObCZTAkrI/vNGMha/gNEWTuyNz2KKqqN3pGohMKExMYMfxJNzhvxtRcsaFu79EUv9joR2Hoqlbpty+f9qseYgnyvI3/xqBLk58B1FW5IZgK5KqeQ/Od4EbAbuVUqt1TStFkUjylcB7507d4lGkJs+tky5vP6SHCL+gOPINjK+eRG/M//C54yhMZhjkjDF1scck4Q5tj4BEYlyG05cEsfR7aR9+Q+C211H1LWT9I4jhDjHk3mi6KG+PStQbjvmuIYEtx+ArUUPDCZ5qO+v5G39muwf38Gc0ITYYY/LSHw58jnyyN+xlPzt3+C352COa0hop6FYm3X/s45SPg/pXaQgzwZWK6XmaZp2E3CnUuqaPzn+baBQKXXfud9/CbyolNqkadpcSlGQuz63QuU7vCU5RPwJV24amYe2YYpMxBSThDkoGIvJiEFGEEQZ8RRk8ct/7sEQFEr8mJcwmAL1jiSE+B9+t4PCfSvJ/2kJnoxkDBYbEW37Enn59QRGJuodr9JRfh+p3/+HrC2LCGpyBdEDp8kPFBVEed0U7P2RvK0L8GadwhQWR1SXG4hs3+93K7Xku7yjjz834KOSnL+0BTkXCFdKKa1oXDtXKRWqadp3QBywTSk1/tx7/wG0B4YqpfznPneMotFngGjATlHJXliC7FVz+Q0haiC/30+/fv1YuXoNtce9jAqXW49CVGZKKVwn9+HYuZS8g+vB7+PKq3rzt/vvpX///hiNcjexsLCQkSNHsnjxYiI630BIj7Fyl1UHSvlxHN5MwdYFOE7uxxoSxuRJ9/DAffcSF3dhh74Sj/aVtiAfAO5WSq3SNK03MEMp9bst2jRNGw/cDvRWSjn+4NxzKcUIMlKQhagyZs6cyfTp04m7bjKWNv30jiOEKAFvQRb23d+Rv+NbvAWZxCbW5t5J9zBhwnhiYmL0jqeLM2fOMHDgQH7asYOYvhMJajtA70iCoo3RCrfNp+DQJgJMJkaOupVHH5pO06ZNy74ga5r2KdCLopHes8A/gEPALIoe8nNStMzb9osc6wWSgfOTW+crpZ78n/fMRQqyENXWli1b6NatG9bGXQi//kF58EeIKkr5vNh/2Yx951Lsx3cBYAwIICgoCEuQFau16MNmtRJss2Gz/fdzF16z2X73ub/6sFgsGAyVZ638ffv20b9/f1LPphE35CGMSZfpHUn8D0/WKQq3LSRv93KU30u96YvrHH9uwMmSnKPKbhSCFGQhKr28vDzat29PanYhcbfNQgXKFqtCVAfujBQ8R7egeZz4PS78Hie+c//rd7vweVwojxO8LpTHhfK6zr3PBaXoHYGWIKxWK7Xr1qVtq1a0atWSFi1a0KJFC+rXr19hBXrFihUMGzYMNybihv8dFd2gQq4rSsdXmEPBT98QduWtc44/N6BEmz5IQRZClAulFKNGjeLzz7+g9ugZaPFN9Y4khNCZUgp8Hvye/xZnda5kK48LzetC87vB4wavE+V1n3vNic/twJWViisjBV9+5oVzBlqCaNS4CW1b/7Y4N2jQoEznSs+dO5cJEyYQGF2H2OH/wG8r1YYVQh9lvw6yEEKUxty5c/n000+J7jVGyrEQAqBoilWAGWOAGYJCSn0ev6sQT0YKvqwT+LNOcjw9hUPffM8nn3x84T0mc+BFi3PDhg0JCCh+/VFK8Y9//IOnnnqKkAbtiRr8MH7zJW17LKoAGUEWQpS5gwcP0rFjRwxxjYkc/qQ82S2EqBB+lx1P5olzxfkEzvQUXOnJeHP/u/trgMlMw0aNadu6Ja1atbpQnBs1aoTJZPrN+VwuF+PHj+ejjz4irF1fwq+5B2SX2KqofNZBrqSqbHAhqjOn00mXLl04eOQ4ieNewW+N1DuSEKKG87sdeDJP4stMwZ99Eld6Ms70FLy5Zy/MiQ4IMFG/YSPatG5J61ataN68Oa+//jqrV68mutcYrJ1ulIeMqy6ZYiGE0NeDDz7Irl27qH3zE1KOhRCVgsEcRGBCY0hoDMD5x4X9bieerJP4Mk+gsk+Qmp7C8RUbmDdvHiiFIcBEwpC/YW7aU7/wQhdSkIUQZWbx4sXMnj2biE6DZekjIUSlZzBbCIxvBPGNALCd+7zf48KbdQot0IopPF6/gEI3UpCFEGXi1KlTjBs3DltiI0J7jNU7jhBClJrBFIg5TpZwq8kqz8rbQogqy+fzMWrUKPIK7MQOng5G018fJIQQQlRSUpCFEJfsX//6V9GDLH3vxh+aqHccIYQQ4pJIQRZCXJJ169bxxBNPENbqKkzNr9I7jhBCCHHJpCALIUotOzubW265BUtkAhF975ElkIQQQlQLUpCFEKWSnZ3NkCFDOHU6lZhBf0OZgvSOJIQQQpQJKchCiBI7fvw43bp1Y/2GjcQNmgYxjfSOJESl4sk6hfK69Y4hhCglKchCiBLZvn07Xbp04WjySRJHPI25yZV6RxKiUnGe2Mvpt+8i9YMH8GSc0DuOEKIUpCALIYptyZIl9OjRgzyPRsLomRhqtdQ7khCVit/jInPZbIwhUfgKs0l9/z7yd32POredsRCiapCCLIQoljfffJNBgwahRdQi/tYXUOG19Y4kRKWTu+5jvNmniep/HwnjXiGwVjOyvp1NxuKZ+F2FescTQhSTFGQhxJ/y+/089NBD3H333dgaXkbMiGfxB4XrHUuISseV+jN5WxcS3KYvQUntCAiOJPamJwnvMQb7wXWkzpmK6/QhvWMKIYpBCrIQ4g+5XC5GjRrF888/T3jH/kQMeRQVYNE7lhCVjvJ5iqZW2MKJuPqOC5/XDEbCrriJuFueRyk/Zz6eTu7meSjl1zGtEOKvSEEWQlxUVlYWffv25bPPPiP66nGE9r4bzWDUO5YQlVLuxi/xpB8n8tpJGAJtv3vdUrs5CeNewdqoMzmr5pD25RP4CnN0SCqEKA4pyEKI3zl27NiFZdwShzyI7fJhsgmIEH/AnX6c3I1fYG3eE2ujzn/4PqMlmOghDxPZ9x6cKXtInTMFx/GdFZhUCFFcAXoHEEJULtu2bWPAgAHkFDioNfIZtMQWekcSZUh53XgLsvBd+MjE78jHHNcAS902GCzBekesUpTfR+ayWRgCrURec+dfvl/TNELa9yewdgsyvn6etM8fJ7TLcMK7j0Izyj/JQlQW8t0ohLhg8eLFjBgxAoLCSBwzExUmK1VUFcrvw1eY/avim4U3PxNfQeZvPud35P3xSTQDgQlNsNRvjyWpA4GJTWRazV/I2/o17tTDRF//N4zWsGIfZ45JIn7MS2SveIu8TV/iStlD9KC/ERAWV45phRDFpVXhtRmrbHAhKqPXX3+dKVOmEJTQiNhhj+MPitA7kgCU8uN35BcV3fysc6O/vy++vsIc+N8HvzQDRlsExpBIjMFRGIMjMQZHEhB87vchRZ8zmINwnT6E89gOHMd34E49DCg0sxVLUluCktpjSWqPKSJBl69BZeXJPk3qe5OxJLUnZuhjpZ6GVHhgDZnfvgqaRlS/KdiadS/jpELUeB8ff27ArSU5QAqyEDXc+WXcZs6cSUiTzkQNnI4yBeodq8ZRPi+u1MO4UnbjPnukaAT4XPnF7/3d+w3WsF8V3qhzhTfy3OfOlWFrWKlGgH2OfJzJu3Ae34Hj2E/48tIBCAiPx5LUnqD67Wv8dAyl/Jz99BHcacdIvON1AkKiLul8npwzZCyagTv1Z4Lb9SPi6gkY5PtQiLIiBVkIUXxOp5PbbruNL774gvCOAwi9+k65pV5BlN+H++xRnCm7cCbvwXVyH8rjBCAgsjYBIdG/K7wBwZFFo762CDSjqWJyKoU3+zSOYz/hPL4TZ8pulNtR46dj5O9YStb3rxPZbyohbfuWyTmVz0vO2g/J2zwPU3Q9ogdNxxxTr0zOLUQNJwVZCFE8mZmZDBkyhHXr1hHT+3aCOt4gK1WUI6X8eNKTcSbvxpmyG+eJvahzO6uZoupgqdeGwLptsNRpVaK5rBVN+by4Th88Nx1jJ+4zh0H5i6Zj1GtDUP0O1X46hjcvndPv3kNgQhNib366zL9vHEe3k7HkJZTbQUTvCQS3vVa+N4W4NFKQhRB/7ejRo/Tv359fjhwl7vppmJrInMeyppTCm3myqAyn7MaZsufCA3IBEQlY6ra58GEMrrrzvX87HWMHvrw04FfTMZLaY6lXfaZjKKVI++oJXCf2knD7a5jC48vlOr6CbDK+eRFn8k6sza4kqt/ki66vLIQoFinIQog/t3XrVgYOHEhuoZO4YY+jJTTXO1K1oJTCm3OmqAwn78aVshtfYTYAxpAYLPXaFH3UbUNAaIzOacvH+ekY58tydZyOUbD3RzKX/JuI3hMIvWxwuV5LKT95m+eTs+YDjKExxAyaTmBi03K9phDVVM0pyG+//baaMGGC3jGEqFIWLVrEiBEj0KzhxN74BCqslt6RqjRvXhrO5D0XSrEvv+hhNqMtomi6xPlCHB5fI2+RFz14eG51jGM7fjMdI6Tj9YRfeWuV+rr4CrM5/c49mCJrETfq+Qor+a5TB0hfNBNfQSbhV44mtPNQNE32+RKiBGpOQdY0TT3y1HM889iDekcRokp47bXXmDp1KtbExsQMfRx/ULjekaocX0H2f6dMJO/Gm5MKgCEoFEudVljqtS0qxFG1q1Txqyjnp2PYD67Ffmg9IR2vJ6L3nVXma5W+8Fnsv2wmcewrmKLrVOi1/c4CMr99FfuhdViS2hM98AGMtqo7NUeIClbiglxlNwqJbt2Dfz3+EICUZCH+hN/vZ/r06bz44ouENOlC1MC/4Zflo/6S8vvw5pzBffYIzhP7cKXsxpN5AqDogbS6rQjpMBBLvdaYYpJkRK8YjEEh2Jp1x9q0Gzmr5pC3ZT7K7yeyz8RK//WzH9qA/dB6wnuMqfByDGCwBBM9+EEKdrUje8VbnJ4zhegB0wiq377CswhRE1TZgtx05GPYXU9ISRbiTzidTsaMGcOXX35J+GXXE3rVeFQVnftZnvweJ570ZNxpx3CnHcVz9iju9OMXll3TTBYCa7fE1ro3lrptMcc1qLJzaCsDTdMI7zUONAN5m78C5SOy7z2VtiT7HPlk/vA6ptgGhHYaqlsOTdMIadePwFrNyFg0g7QvHie08/CiqSqyTbUQZarKfkcZjAFED5pOxqIZUpKFuIjMzEwGDx7M+vXriblmPEEdBleZW9nlyVeYgzvtaNHH2WN40o7iyTp1YRc6zWzFHNeA4DZ9MMc2wBzXAFN03Qpbd7im0DSN8J63gcFA3sYvwO8nst/kSlmSs398F789j7gb/1kpimjRNtX/JnvFO+Rt/grnuW2qy2tFDSFqIv2/0y+BJiVZiIs6cuQI1113HceOJ5M49BFMjbvqHanCKeXHm52K++zRC4XYk3asaGe6c4yhMZhjG2Bt2h1zXH1MsQ0ICIuTHyQqiKZphF85Gk0zkLvhM5RSRF03pVKVZMfR7RTuXU7oFTdhjmuod5wLDCYLUf0mY0lqR+a3r5A6ZyrRA6dhbdxZ72hCVAtVuiCDlGQh/tfmzZu5/vrrybO7SbzlX2jxzfSOVO7+aooEBmPRZhxJ7YpGhWMbYIqtjzEoRN/g4lxJvhU0A7nrPwHlJ+q6qZViCovfZSfzu1cJiKxNeNcRese5KFuz7gQmNCZ94bNkLJ5J4oT/XPK210KIalCQQUqyEOctXLiQW265Bc0aQeLoZ/CHJeodqcz57Lm4zx4p2RSJqLpoATJFojIL734LaBq56z4uKsn979O9JOeseR9fXgbxt85ACzDrmuXPBITFET34IU6/czc5q+cSPXCa3pGEqPKqRUEGKcmiZvN6vTz++OM899xzBNduRvSwx/FbKu92xaWhfB5y1nxI3pYFnN8nyBgaizmuAdZm3S+UYWNorEyRqKLCu41E0wzkrP0QpfxED3hAt5LsPLGX/J+WENJxEIG1Kv9mOqbweEI7DSVv4+cEt7sOS+0WekcSokqrNgUZpCSLmunkyZOMHDmSdevWEdauH+G9x6MCLHrHKlOezJNkLJ6J++wRgtv0xdayF6YYmSJRHYV1vRkMBnJWv0+GUkQPnFbhJdnvcZG5bDbGsDjCe4yu0GtfirAuN1K4dwXZy/9D/Jh/6z4CL0RVVq0KMkhJFjXL0qVLGTNmDHmFDhKGTMfctIfekcqUUoqC3d+TveItNKOZmBsexdrkCr1jiXIW1uVG0AzkrJpDht9P9PX/V6GrR+Su/wRv9mlib34agzmowq57qQxmCxFX3U7GohkU7P6BkHb99I4kRJVVeR4VLkPnS7K1SVf+9fhDPPr083pHEqJMeTweHnzwQQYMGIDTHEbtcS9Xu3Lsc+STsfBZsr59hcDEZiTc/qqU4xokrPMwIq66A/uhdWQsmoHyeSvkuq7Uw+RtWUBwm74EJbWrkGuWJWuzKwms04qcNR/gcxboHUeIKqtaFmSQkiyqrxMnTtCrVy9mzJhBeIf+RN8yE39o9XoYz5m8m9T3JmP/ZQvhvcYRe/NT8mR+DRTa6QYirp6A/ecNpH/9HMrnKdfrKZ+HzGWzMNrCibjq9nK9VnnRNI3Ia+7E7ywoeuBRCFEq1bYgg5RkUf188803tGvXjq0/7STxhgcJ63MPBFSfbaOVz0P2qrmc/exRNLOF+NEvENZ5WKVaF1dUrNDLBxNxzUQchzeRvvA5lLf8SnLupq/wpB8nsu8kDJbgcrtOeTPHNiC43XXk/7QEd/pxveMIUSVV+391pCSL6sDj8TB9+nSuv/56XIER1B43C1OTK/WOVaY8Wac489F08jZ/RXDbviTcNovA+EZ6xxKVQGjH64nsczeOXzaTvvBf5VKS3enJ5G74HGvzHtVis43wK0dhCLSRtfw/KKX0jiNElVPtCzJISRZVW0pKCj179mTmzJmEdxxA1KiZ+EMT9I5VZs4/iJc69168OanEDHmEqH5TMJir10oc4tKEdBhA5LWTcBzZStqCp1Fed5mdW/l9ZC6bjSHQSuQ1E8vsvHoyBoUS3mM0rpQ92A+t1ztOmXCnH8fvsusdQ9QQNaIgg5RkUTUtXryYdu3asW3nbhKHPkzYNXejGSvvhgUl5XMWkPH1c2Qum405oQkJ417F2rTmbYstiiek3XVEXjsZ59HtpM1/Gr/HVSbnzd+2CHfqISKvmYjRWn3WDw9uey2m2Ppk//gu/vO7SlZRzhN7SZ0zlbSv/ony+/SOI2qAGlOQQUqyqDrcbjfTpk1j0KBBuIOiqD12FqbG3fSOVaacKXtIfW8K9sObCO85lribnyIgNFrvWKKSC2nXj6jrpuI8toP0+U9fcvHzZJ8mZ+1HBDXqhLV59VoJRjMYibxmIr78dPI2zdM7Tqn57LlkLJqBwRKM6+Q+ctd9onckUQPUqIIMUpJF5ZecnEyPHj3497//Tfhl1xN1ywz8ofF6xyozyucle80HnP30EbQAE/G3ziSsy3DZ1EAUW3CbvkT1vw/n8Z2kz3uy1CVZKT+Z374CBiORfe+pljswWuq0wtq8J7mbv8KTc0bvOCWmlJ+MJf/G58gn7uansbXuQ+7GL3Ac36l3NFHN1biCDFKSReX19ddf065dO3bs3kfisEcI6z2xWk2p8GSf5szH08nb+AW21teQMHYWgQlN9I4lqqDg1r2JGnA/zpS9pH31T/zukpfkgl3f4UrZQ8TVdxAQUn3vXkT0GodmMJC98l29o5RY3paFOI9uJ/Lq8ZjjGhB5zURMUXXI+OYFfAXZescT1ViNLMggJVlULm63m/vvv58hQ4bgscWSOG4WpkbVZy6uUoqCPSuKHsTLOkX04IeI7n9vldqlTFQ+wa2uJnrgA7hO7CPtqyfwux3FPtabl072yvew1GtDcJu+5ZhSfwGh0YRdcTOOnzfiOLZD7zjF5jp1kJw172Nt0pXg9v2Bot0Cowc/iHI5yPjmBZmPLMpNjS3IICVZVA7Hjh2je/fuvPzyy0RcPojokc+jQuL0jlVm/M4CMhbNIHPpS5jjGpJw+6vYmnXXO5aoJmwtehE9cBquk/tJ+/IfxVrlQClF1nevgfIT2W9qtZxa8b9CLx9CQHgC2SveqrBdCS+Fz1lA+qIZGEOiibrut39G5ph6RFwzEWfyLvI2faVjSlGd1eiCDFKShb4WLFhA+/bt2bXvALWGP0bo1XeC0aR3rDLjPLGX03OmYD+0nvAeY4gb8QwBoTF6xxLVjK1FT6IHTcd16mCxSnLh/lU4jm4j/MoxmMKrz/z+P6MFmInoPR5P5gnyf1qid5w/pZQic9ksfAVZxAyaftFNW4Lb9MHaoic56z7GeWKvDilFdVfjCzJISRYVz+12c9999zF06FB8IfEkjp1FQMMuescqM8rvI2ftR0UP4hkCih7Eu+ImeRBPlBtbs+5ED34QV+rPnP3icfyuwou+z1eYQ/bytwhMbEZIx4EVnFJfQQ07YanfkZx1H+MrzNE7zh/K/+kbHD9vJKLXWAITm170PZqmEdV3EgHh8WQsmoHPnlvBKUV1JwX5HCnJoqIcPXqUbt26MWvWLCI6DSFqxHPVakqFJ+cMZz6eTu6Gz7C1vKroQbw/+EdOiLJka9qNmMEP4j7zC2c/fxy/s+B378la/h/8HgdR191b435g0zSNyN4TUF432avf1zvORbnO/EL2yncJang5IZcN/tP3GgKtxAx+CJ8jn4wl/0YpfwWlFDWBFORfkZIsytu8efNo3749u/cfotaNjxN61fhqNaWiYN9KUudMwZN5kuhB04kecD+GQKvesUQNYm3SlZghj+A+e5Sz5p1wHgAAIABJREFUnz+O71cl2f7zRuwH1xLedSSm6Do6ptSPKao2oZcNonDPD7hOH9I7zm/4XXYyvn4eozWcqAH3F2tuuDmuAZFXj8d5dDt5WxZWQEpRU0hB/h9SkkV5cLlcTJkyheHDh+MPTaTWuNkENOisd6wy43cVkr54JpnfvIg5tj6J417BVs02XRBVh7VxZ2JueAR3+jHSPnsUnyMfn7OArO9fxxTbgNDOw/SOqKuwriMw2iLIWv5WpRl1VUqR+e0reHPPEj3obxiDQot9bHD7/libdCVnzfu4Th0sx5SiJpGCfBFSkkVZOnLkCN26dePVV18lovMQokY8iz+4+jyo5jx5gNNzpmI/sJawK28lbuSzBITF6h1L1HDWRp2IveFR3BkpnP3sUbK+ew2fPZfo/veiGQP0jqcrQ6CV8F5jcaceonDvSr3jAEVrUtsPriX8ylux1G5ZomM1TSPquqkYQ6JJXzTjN3cNhCgtKch/QEqyKAtfffUVHTp0YO/Bw9S66R+E9qpeUyryd33P2U8eRAPiRz1PeNcRNW5ep6i8ghpeTuzQx/BknsB+cC2hnYdhjmuod6xKwdbyKsyJTclePadYS+OVJ3f6cbJXvIUlqT2hXYaX6hwGSzAxg6bjK8gkc+nLKKXKOKWoaaQg/4n/Lclduvdi3rx5eDwevaOJSkgpxdGjR5k7dy7jxo2jQcOG3HjjjfjDEkkcN4uA+pfrHbFM+QpzyP7xbQLrtCJh3CsE1mqudyQhfieoQUfibvwnwe2uI7zbSL3jVBqaZiDymrvwF+aSu/5T3XL43Q7SFz6HIdBG9MAH0LTS15LAxKZE9ByL4/Am8n/6pgxTipqoZt9nKobzJTlv6wK271jK8OHDiYiO466J47nnrruoXbu23hGFTpRSHDp0iNWrV7NmzRpWr1nDqZMnATDZwjDXakHCdddhbnkN/mo0anxezvpPUF43UX3vkQfxRKVmqdcGS702eseodAITGhPcpg952xcR3LYvpqiKf3Ax64c38WadInbE0xhtEZd8vpDLh+BM2U32yncJrNWcwPhGZZBS1ERaVb0N0WPGSpWSVbG3hZTfh+Podhy7llHwyzY0g0afa/vzwL2T6dOnDwaDDMhXZ36/n7179xaV4dWrWb1mDelpaQCYQyIx125JSFIbAmq1RIusfUkjIZWdJ+MEp9+bREj7/kT2uUvvOEKIUvIV5nDq7YkEJjQh9qYnK3RXwYI9K8hc+hJh3UYS3n1UmZ3X58gjdc5UNKOJhLGz5Ad4AfDx8ecG3FqSA2QEuQQ0gxFro05YG3UiLPcs9t3fsWLN93y/7BsS6tRj6qS7GX/HHURHR+sdVZQBr9fLzp07LxTiNWvXkpOdDUBgeCzm2i1J7DQSQ2ILDOGJNWK72vOyV72HZg4iTG5ZC1GlGW3hhHe/hewVb+P4ZQvWxhWzuo4n8wRZP7xOYN3WhHUdUabnNgaFEj3ob5z95GEyv32F6EHTa9Tfz6JsyAjyJVI+D/ZDG7DvWoY9ZS9Gk4khNwzj/qmT6dq1q3xTViFut5tt27ZdKMTr1q+nID8fAEtULUy1WxCa1BYtoTnGsOqzsUdJOY7vJO3zxwjvNY6wGr5clhDVgfJ5SZ0zFeVzk3jH62gB5nK9nt/j4syH0/AVZJEw7hUCQqLK5Tq5G78gZ80HRF47mZB2/crlGqLKkBHkiqYZTdha9MTWoifu9GQcu79lwdeLmPfFZzRs2oL7p9zD6NGjCQ0t/pqOomI4HA42b958oRBv3LgRh8MBQFBsPcyNrqR2/TYQ3wxjiNwVgKJpRtk/voMxLI7QjtfrHUcIUQY0YwAR19xJ2uePkbdlAWFdby7X62X/+Dae9OPE3vjPcivHAKFdhuNM2UP2ircITGyKObZ+uV1LVD8yglwO/G4nhQdWY9+5DOeZXwgMsnHLLbdw75RJtG3bVu94NVZBQQEbNmy4UIi3bNmC2+0GTSMorgGBdVoSXK8NJDTHaA3TO26lVLD7ezKXzSZ60HTZCESIaiZ9wb9wHNtO4vg3CQgtn7XaCw+sIWPRDEI7Dyei19hyucav+Qqzi+YjB9pIuO0lDOagcr9mVaL8PvD7KvaiBqMey4GWeARZCnI5UkrhTv0Zx65l5O1fg/K6adPxcqZNncxNN92ExWLRO2K1VlhYyIYNG1i5ciWrVq1i69ateL1eNIORoIRGBNZpha1e66IRYkuw3nErPb/bwem3J2IMjSH+1hdk+pAQ1Yw39yyn37mboMZdiBk0vczP78k+TercezFH1yPulucqbMMWR/Iu0j57DFurq4kecH+FXLOyUcqPNzcNT0YynowUPOnJuDOS8WSeBF/FLl0bEJFI/OgXMQaFVORlZYpFZaJpGoGJTQlMbEpIrzuw713BwZ3LuO2225g05V5uv30ck++5m8aNG+sdtVqw2+1s3LjxQiHesmULHo+nqBAnNiGs0zCC6rVGi2siTzWXQt6W+fgKsoge/LCUYyGqoYCwOEI7DyN3/ac42/fHUqdVmZ1beT1kfP08msFI9ODpFbqbYVC9toR1HUHuhk+x1G1DcOveFXbtiqaUwleQiSc9GU9GMu6MlHOl+ATK47zwPmNIDKaYugQltcdQgUVVed3kbvicnDXvE3Xt5Aq7bmlIQa4gxqAQQi4fQvBlg3Gm7MaxaxmzZ89m9ssv0a3nVTwwdTKDBg0iIED+SIrL6XT+phBv3rwZt9t9YYQ45PIh2Oq1gbimUogvkTc/k7wt87E27Y6ltmwIIkR1Fdp5GAV7lpP1w5skjJ1VZrfCs1e9h/vsEWKGPk5AaMVvRR/WbQTOk3uLVs5IbKLLms9lzVeYgycjpWgkOD35wq+Vq/DCewy2cMzR9Qhu0xdTdF3MMfUwRdfFEGjTLbff7SB/60KCW/Wu1BtMyRQLHXkLsrDv/o78nd/hzc8gMiaee+66k7sm3kmtWrX0jlfpuFwuNm3axKpVq1i5ciWbNm3C5XKhaQYsCY2w1G1NcFIbiG8uhbiMZSx9mcL9q0gc/yam8Hi94wghylHhofVkLHyWyD53E9JhwCWfz/7zRtIXPEPIZYOJ7D2hDBKWjjc/k9Q5UzAGRxI/+kUMpkDdspSEz1nw+6kRGSn47bkX3mOwBGOKrocpph7m6LpFv46uWymfp/G7HZx+524MlmASbnu5ou4mlP0cZE3T6gAfAHGAAt5SSs3SNO0JYAKQfu6tjyilll7k+KeAwYAfSAPGKqVO/+r1y4GNwAil1FfFDV4dCvJ5yu/DcWQr9l3fUnhkOwaDgb7XDaDP1T0r9FZ2QEAAMTExxMXFERsbS2xsLJGRkRiNFT6ZHigqxFu2bLlQiDdu3IjT6Sx6qC6+YdGtsqSih+r0/Gm4unOfPUrq3HsJvXwIEVffoXccIUQ5U0qR9vmjuM8eJfHOtzAGlX4VJm9uGqlzphTNO711BprOu4o6jm4n7ct/ENy2H1H9KtctfqUU7rNH8KQdLZoacW6ahK8g68J7NHMQpqjzI8FFJdgUUw+jLaJKTX07/0NTxFW3E9ppaEVcslzmIHuBaUqpnzRNCwG2a5r2w7nXXlJKvfAXx89USj0OoGnaVODvwF3nfm8Enge+L0no6kYzGLE27oK1cRfCcs5g37WMH1b+wLdLFukdDYPBQHhkFLExsSQkxBH/q/IcGxv7mzIdGxuLzVb6oup2u9m6deuFQrxhw4aiZdc0DWt8Qyxt+hGT1LaoEMtDdRVCKUX2yncxWIIJLeeln4QQlYOmaUT0vpPUOVPJWfsRUX3vKdV5lM9L+qLnUUoVbdahczkGCGrQkdDOw8nb/BWWuq2xteipdySUz0vhwbXkbZmPJ+0YAFqAGVNUHSz12mI6V4bN0fUwhsZUqSL8R4IadyGoUSdy1n2CtVl3Xabd/JW/LMhKqVQg9dyv8zVNOwAU+/6/UirvV7+1UTQKfd4UYB5weXHPV92ZwuMJ6zmO0CvH/GZCfUVQPi8+ey5+ew448sCRg9+ei7cwh5OFORw7lIp/x0F89hz8rouP3luCrERHxxAXH0dCXBxxcX9cpsPCwtixY8eFQrxu/Xoc9qLzBsU3ILBVX6IbtEXFNa/op13FOY6j23Am7yKi952y0ocQNYg5JomQDgPI/2kJIW37YY5rUOJz5Kz9EPfpQ0QPehBTREI5pCyd8CtvxXViL5nfvYo5oTGmiERdcvjdDgp2f0/e1oX48tIxRdUh8trJWOq2JiA8Xo+l0CqMpmlEXnMXp9+9m6zlbxE79DG9I/1OiSZ+aJqWBLQHNgPdgMmapo0BtlE0ypz9B8c9A4wBcoGrzn2uFnDDud+XuCCfzavY8ljRNIMRTYdpA0Xzler+5fv8Hhd+Ry6+wqJC7bPn4ivMwWfPIdueS0Z6DruT9+G3r8dnz/3LdRZNMUlYmvcmpm5rAuu0uqRbeqJsKL+PnJXvERBZi5D2/fWOI4SoYGHdR1G4fzVZy/9TtCxbCUYuHUe2krd5HsHtrsPW/MpyTFlymjGA6EHTSZ07lYyvny9atjKg4ka3fYU55G9fTP6OJfidBQTWbklkn7sJangZmmaosBx6CwiLJazbSHJWzcV+eHOFbXNeXMUuyJqmBVM02nufUipP07Q3gKcoGhF+CngRuP1ixyqlHgUe1TTtYWAy8A/gZeBBpZS/NLcLwq0m8hwVu3af+BVTEFiDIOqPH9hSCnx+hcfnw+cs/E2R9ttz8TnyMEXXxVKnFQHWMAJNBqr+jaPqI3v7MjyZJ4gZ+liFLskkhKgcjJZgwnveRta3r+A+tJbw1r2KdZwnL4PMJS9hikki4urx5RuylALCYonqfx/p858md/V7JPS7u9yv6c46Rdam+eTuWo7yeQlq0oWwTkMr9UoO5S30siEU7v2RrOVvEt6wHcbA8tnIxeHxrynpMcVaxULTNBPwDfCdUurfF3k9CfhGKdVK07Q5FI0yn1ZK9f+f99UFlp573zG40IeiATtwp1JqYTGzV83lN4SoAvLy8mjUqBEOWwKRNz1TLea8CSFKTvl9nPlwGthzOJNyhIiwP7+75/V6ufrqq9m0ZRu1b5+FP1Sf6QvFlbXibfK3fc1rcz7hnrEjy+UamzdvZubMmcyfPx9DgIngllcT0WUoKqxyf20qivPkPs5+/CB9R0zgu0/fKq/LlPgfsb8cy9eK/mV8Fzjw63KsadqvJxTdAOwFUEqNU0q1O1+ONU379S4Yg4GD595XXymVpJRKAr4C7ilBORZClKNnn32W9PR0onuPl3IsRA2mGYxE9J6IOy+DUZMf+sv3P/nkk6xdu5bofpMqfTkGiOg1FnN8Y6befSeHDh8ts/P6/X6WLFlCz5496dKlC4uXfU/EFTdR+653Cb92spTjX7HUbklwm758//m7/Lhhq95xLijOMm/dgbXAHoqWagN4BBgJtKNoJPc4MPHcA33/e/w8oOm5Y5OBu5RSp/7nPXMpGoEu9jJvyAiyEOUiOTmZpk2bEtikOxH9a+a2rEKI38r45kXsB9ey+addXN6mxUXfs2LFCvr06UNom2sI73dvBScsPU92Kmfev5fYug1J2bcdk6n085HdbjeffvopM2fOZN++fVgiYgm9bAiWVtegmWV9/j/ic+Rx+u27iKqVxJlDOzAYynwudolHeqrsRiFIQRaiXIwaNYovvpxH7YlvoWxRescRQlQC3oIsTr89kaTWnTi6bdXvXj979ixt27YlHwsxo14Ek6XiQ16CwgNryVj0PEPG3MWC998o8fF5eXm89dZbvPzyy5w6dQprfH3COw8noHE3eYajmAr2rCBz6Us88OSLvPj4A2V9einIQojS27JlC507dyay282EdB+tdxwhRCWSu3keOavm8OoHXzJp9PALn/f5fPTr149Va9ZSe+xLqIi/XgmpMsr87jUKdi7jnU++4o6Rw4p1zOnTp5k9ezZvvPEGeXl5BNdvR2SXYVCnnUxPKyGlFGc/fRhvRjJHD/9M3VplumurFGQhROkopejRowfbdu8n7o43QW4HCiF+Rfk8nH5vMmajgcyUw1gsRVs1P/PMMzz22GPEDZiKpVVfnVOWnt/j4syH01CFWRzYu5tG9ev94XsPHDjACy+8wIcffojX5yO4WfeiYhzTsAITVz+ejBOcnjOF9lcN4KflZfpYWtk/pCeEqBnmz5/PunXrCO8+SsqxEOJ3NKOJyKsnYE8/wZ0PPgXA2rVr+fvf/05oq14Etuyjc8JLYzAFEjP4QXweN1cNGIrX6/3de9avX8/gwYNp0aIFH3z0CdY2fal719tEXj9dynEZMEXXIbTzUHas+JoP5y/VNYuMIAshcLvdtGjRgtQCH9FjZlXrHZyEEJcm7at/4jqxlw0b1jNs8PVkuyB2zMsoU/msYVvRCvb+SOaSfzNi4n18+uZL+P1+Fi1axMyZM9mwYQOBwWHY2g8gpMNAsMimVmXN73GS+u4kAi2BZBz/+cKdiktU4hFkmTkuhOC1117jyJEj1Bn5lJRjIcSfiug9gdR376F7164ov486Y/9dbcoxQHCrq3Gm7Oaz/8wiympi+dJFHDp0iKDIeOKuvZvAFr3RzFXrIcSqxGCyENnnLtK++idj73+Mz96YqUsOGUEWoobLysqiUaNGeCIbEDX8n3rHEUJUAdmr3ydv05fE9ruboLYD9I5T5vxuJ2c+uB9P5glsiY0J7zIMY8MrZAChAqUvfBbHka1s/WknHVtf8m6D8pCeEKJk7r//fmbNnk298a+gIv74oRQhhDhP+X24Uw9jTmxabVdr8BZk4c89iymxWbX9b6zMvPkZpL5zN7Wbt+f4jnWX+mcgD+kJIYrvl19+4bXXXiO0TV8px0KIYtMMRgJrVe/iGBAciblW82r931iZBYREE3blaFJ2beC51+dW+PVlBFmIGmzYsGEsXrKMWhPfQgVF6B1HCCGEuED5fZz54AGUPYfTx38hOjK8tKeSEWQhRPGsXbuW+fPnE9plmJRjIYQQlY5mMBJ57SQ8+VkMH1+x25dLQRaiBvL7/UybNg1LeAy2y4boHUcIIYS4qMCEJoR06M/qhR+x5Mf1FXZdKchC1ECfffYZW7duJaLHGLQAWa5ICCFE5RXeYwxGaxijbx9/0Q1cyoMUZCFqGIfDwcMPP4wtsTGmZj31jlPpefMz8HtcescQQogayxBoI+Lq8WQnH2Tq35+vmGtWyFWEEJXGrFmzSElJIar3eDRN/gq4GL/HScHeHznz6cOcen0sZz+ejs+Rr3csIYSosazNe2BJas9/XvwXh4+llPv1ZBULIWqQtLQ0GjVqBIktiRzymN5xKhWlFO7ThyjY8wOFB9ag3A4CwhMIatSJ/B1LMEfXI3bEMxgtwXpHFUKIGsmTdYrU9ybT/Ire7Fu7rCSHylbTQog/9sQTT1Bod1Dvqtvx6x2mkvAVZlOwdyWFe37Ak3kCzRSItWl3gtv0IbB2SzRNIyipHWkLniHts0elJAshhE5MkbUIveIm9q/7mP98PJ+Jo4aW27VkBFmIGuLAgQO0bt2akPb9Ces9Ue84ulI+L46j2yjY/QOOI1tB+Qms1Rxb6z7YmnXHEGj93TGOI1tJW/AM5pgkYm9+WkqyEKJKU34fWd+/TmCt5gS3vkbvOMWmvB5Oz5mMSVOkJR8m2Pb7v68vQraaFkJc3MCBA/lh5WoSJ7yFsoTqHUcX7vRkCvcsp2DfSvz2HIy2CGytehPcujemqDp/ebz9yFbSpSQLIaqB7JXvkbdlPpopkMQJbxEQEqV3pGJzJO8i7bNHGTxuCgvfm12cQ6QgCyF+b/ny5fTp04eY3rdjvaz8bklVRn5XIYUH1lCweznu1ENgMGJt1Blb62sIatARzWAs0fn+W5LrE3vzU1KShRBVTuGBNWQsmoG1aXfsv2zC1rwX0QPu0ztWiWR88yKFB9aybss2unVs+1dvl4IshPgtn89Hhw4dOHwyjZhxr6MFmPWOVO6U8uNM2UPhnuXYD21AeV2YousR3KYPtpZXYbSGXdL57b9sIX3hvzDH1Cfu5qcwSEkWQlQR7vTjnPlwGubYhsSNfIacNR+St2UB8be9RGB8I73jFZuvMJvT79xFXP3mnNq3BU370w4sW00LIX7r/fffZ/fu3UT2Glvty7E3N42c9Z9y6j8TSPvsUey/bMHWujfxY14i4fZXCb18yCWXYwBro07EDHkEd9oxzn7+OH5nQRmkF0KI8uV3FpC+4BkMZivRQx5CM5oI63ozBmso2T++Q1UaNDXaIgjvOZbUA9t4/IU3yvz8MoIsRDVWUFBAkyZNyAsIJ2rkjL/6CbtK8ntcOA5vomD3DziTdwFgqdeW4DZ9CGrcBYMpsNyubf9lC+kL/oU5VkaShRCVm1J+0uc9hePYT8SNfBZL7RYXXsvfsZSs718nZsgjWJt21TFlySjl58xHf8Ofe5bkIz+TGBfzR2+VEWQhxH+98MILpKamEt17fLUqx0opXKmHyfz+DU69NoaMxTPx5KQS1v0Wat31LnEjnsbWome5lmM4N5J8w8NFI8lfyEiyEKLyyl3/GY4jW4nsPeE35RgguO21mKLrkr3qPZTXo1PCktM0A1HXTsJrz2PouMlle24ZQRaiejp9+jSNGzcmoF5HIgY9qHecMqGUn/yfllCw6zs86cfRAsxYm3TF1qYPlrqtddsZ0P7LZtIXPIs5rj5xN8lI8p9Rfh+uk/swBkdhiqyldxwhagT7L1tIn/cktla9iep/30UHTBzHfiLti78T3ut2wjpXrYe5s358h/ytC/lyyXKG9+99sbfIQ3pCiCK33347H3z4EXXufBMVEqd3nDJRsG8lmd+8iDmhMcFt+mJrdmWlKaP2w5tJX/gs5rgGxN30ZKXJVRkopfCkHaVg30rsB9bgK8jCYAsnYczLBIRG6x1PiGrNk3WK1A8ewBQeT9yoGX96Zy3tyydwntxPrYlvl8nzGhXF73Zw+p27sYWEkX5sP2bz7563kSkWQgjYuXMnc+fOJfSyQdWmHAMU7v0RY1gc8aNfJKTddZWqhFobdyZmyMO4zx7l7Bd/x+8q1DuS7ry5Z8nd+AWp704ide695G//BnNCEyKvnYTyuEhf+AzK69Y7phDVlt/tIH3BM2gGIzE3PPqX084irroD5XGSs+7jCkpYNgzmICKvmUje6SNMfOipMjmnjCALUc0opejTpw/rNm8jfsJbYLbpHalMeAuyOPX6WMK63Eh4j9F6x/lD9sObSF/4XNFI8s1PYQisHl//4vI58rEfWkfhvpW4Tu4HILB2S2wte2Ft2h1jUAhw7us0/+k/veUrhCg9pRQZi2ZgP7Se2JueJCipXbGOy/rhTfJ3LCVh3CuYY+qVc8qyo5Qiff5TuJJ3s2vPXlo1bfjrl2UEWYiabunSpaxYsYKwbiOrTTkGsO9fDcqPreVVekf5U9bGXYgZ8lDRSPLnj9eIkWTldVN4cB1p85/m5KujyfruNfyOfMJ7jKHWXe8SP+p5Qtpdd6EcQ9HXKazbLRTuXUH+9sU6pheiesrfugD7wbWE9xxT7HIMENb9FgzmILJXvluO6cqepmlEXnMXCsUNoydc8vmMTzzxxKWn0scTegcQorLxer0MHToUuxZEaN+paIbq8zNw1g9vYgyNJuyKm/SO8pdMUbUxxyaRv30RzuO7sDXrXu3WoFbKjytlDzkbPiNz6Szs+1ei3HZC2vQlsu/dhF15K5Y6rf50GkxgnZa4046Rv30xltotCQivPtOBhNCTI3kXmUtewtrkCiJ631miOzQGUyCa0UTBjiUEJjTBFJlYjknLlsFiA4OR0xsWEl6nCV06tD7/0j9Lei6ZYiFENfLGG29wzz33UPumv2Os30nvOGXGnZ5M6nuTiOh9J6GXDdI7TrEVTbd4FnNcI+JufrJaTLdwpx2jcN9KCvevxleQiWYOwtqkG7aWvYpWEinh1t1+l50zH/4fPnsOCbe9RECYlGQhLoU3L43UufdhtIYTP/oFDIHWEp9D+TycfncSmsFIwrhX0IwB5ZC0fCifl9S5UzF4nZw5fpjwsFCQKRZC1FwbNmzg0UcfJTipDYaky/WOU6YK968EzYCteQ+9o5SItXEXYgY/hPvsL1X6wT1vXjq5m77i9LuTSJ0zhbxtX2OOb0j0oOnUnvwh0QPuIyipXYnLMYAh0ErM0EdRfh9p85/G73GWw3+BEDWD8rpJX/Asyucl5oZHSlWOATSjiYirbseTeYKCXd+WccrypRkDiLx2Eq6cNG6+6/9KfR4pyEJUA++99x69evXCZbQS039qtXrgSSk/hftWE1S/A0ZbuN5xSsza5IqiknzmfEm26x2pWPzOAvJ3fceZTx7i1BvjyFk9F0Oglcg+d1N70gfEDvs7tuY9MJgsl3wtU2QtYgZNx5N2nMxls6vUdrdCVBZKKTK/fx33mcNED5yGKar2JZ0vqFFnAuu2IWfdJ/iq2CZIltotCW7Tl+8/f5cfN2wt1TlkioUQVZjX62XatGnMnj2bkIYdiLp+Oiqw8ix9VhacKbs5++kjRF//N2wteuodp9TsP28g/evnMcc3KtpMpJQjO+VJeT04jmylcP8q7Ee2gM9LQGRtbC17YWvRC1N4fLleP3fTV+Ssnkt4r7GEdR5ertcSoro5v110WNcRhF95a5mc0332KKlz7yXk8sFEXj2+TM5ZUXyOPE6/fRdRtZJIO7yrxKNGVWdSiRDiN7Kysrj55ptZvnw5EZ1vIKTHWFQpbnFXdgV7V6KZgwhq3FnvKJfE2qQrMYMfJP3r5zn7xeOVpiQrnxfXqf0U7l+N/eA6/K5CDLZwQtoPwNaiF+b4RhV2RyK08zDcZ4+Qs+p9zDH1CWrQsUKuK0RV5zp1gKzlb2Fp0LFoBaMyYo5rQHCbPuRv/4aQdtdVqd0vjUGhRFx1B+lLXyLpoSUDjj83YElJjpeCLES3msyFAAAgAElEQVQVtG/fPgYPHszx5BTir7+fwBYX3VqzyvN7XNgPrcfapFuZ3MrXm7VJV2IGPUj6oudJ++LvxN70ZIWXZKX8eNKP4zy+C2fyLpwn96HcDjSTBWuTK7C16IWllPOJL5WmaURddy+erJNkLJpB/G0vYYqoOk/QC6EHX0E26QufJSA0mujr/1bm37vhV46m8OBaslfNIXboY2V67vJma3U1fkcewAhACrIQ1dnixYu55ZZb8BoDqX3r8xDXRO9I5cbxyxaU246tZS+9o5QZa9OKL8menDM4j+8sKsQpu/HbcwEIiKyFreVVBNVrh6V+Bwxm/X8IMZgtxA59jNT37yd93tOlfgpfiJpA+bykf/0sfmch8aP/ibEcdhc1BkcQ1uVGctZ8gDN5N5Z6bcr8GuVF0zRCO90ApVjFQuYgC1FFKKV49tlneeyxx7AmNub/2bvv8KjKtI/j3zN9JlMy6QUChF4SepNOKKKAoKIUETuC3VXX7q4F2666rq8FxUYQlCaIqHSVIk06CNICpPdkMpnJlPP+EWBREAhkcibJ87muXHGTOef8siQz99znKZHXPo1sClM6VkDlzH+eiqxDxE/5WJGOZiCV7V9H3qJX0ce1JGrMP6u1CPSVFeJK24krbQflaTvwFWcDoDaHYWjUHkOjDhgatUdjjai2a1a38qPbyfnqWYzNuhE5+kkkScwpF4Q/K1jxAaVbvwn4HA2/x03GR3ejMliInfRmbXw+nnX0laurNDBbdJAFoRZwOp3cdtttfPnll1jb9cc+9D5kjV7pWAHlcxZTfngr1i7X1MYn4wsKadkLrvk7eYteJWfuc5dVJPvdTlzHd1d2iNN24Mk9CoCkD8GQkISh6yiMjTqgCW9Qa1Y4MTbugH3A7RSu+pDi9V8SWo3jKgWhLnDsWU3p1m+wdLkm4BOYVVo99n63kPfN65TtXok5eUhArxcMRIEsCEHu+PHjjBo1im3bthEx8FZMXa6FWlLkXA7nbz+D30dIu4FKRwmYSy2SZa8Hd8ZvlQXx0e24Mw+A7EfS6NDHtyak3yQMjdqji25aq99cWLqMpCLnEMVrZ6GLSsRUyydqCkJ1qcg+RMH3/0XfsB32/rfWyDVNrfui3/oNRT/NxNSyd50f+iSGWAhCEFu3bh3XXnsthaVlRI98FHXjLkpHqjGZn/8N2esm7rZ3lI4ScGW/rSVv8Wt/OdxC9vuoyDmCK207rqM7cJ/Yi+x1g6RCF9McQ+P2lUMn4lvXuS2t/R432V88jqfgBLET30Ab0VDpSIKgKF95CZmfPQQ+L7G3/KdG14d3Z+wna+bfsPa8EXvfiTV23WoghlgIQl0xY8YMpkyZgtYWRfykfyPbLm/R99rEU5BOReZ+QvvfpnSUGhHSqjcAeYtfI2fuP4ga84+T44grO8SuY7vwu0oB0IYnYG4/pLIgbtgOVQAm5QQTlVZP5OgnyfzsIXIWvEDszW/U+Z9ZEP6K7PeRt/h1fI58Ysa/WuObJ+njWmJq04/SzQuxdBiKxhpVo9evSaJAFoQg4/V6efjhh/nvf/9bZzf/uJCyPWsAiZA2tWtr6ctxZpF84p2JlR1iQG2JxNise2WXOCEZjSVcyZiK0FgjiRz9BNmznyTvm38Red0zQT10xJ11kOL1c1AbregbtEXfsC0aW3StGf8tBK+in1NxHd1G2NB70ce1VCSDvd8kyg9soHDNZ0SOfFSRDDVBFMiCEETy8/O58cYbWblyZZ3e/ON8ZFmmbO9qDI2S0ViCd5WFQAhp1RtJo8O5fy36uFaVK03Y40RhReXWsWGDJlOw7F2K1s7C3vdmpSOdxe92UvTzTEp//bayyy37cexcBlSuIKJv0BZDw7boG7RFG9lIrMwhVIlz/3pKfpmLuf1QLB2uVCyHxhqFtetoijd8ibvzCPTxrRTLEkiiQBaEILFnzx5GjhxJ2rHjdXrzjwtxp/+GtygL2xX1c9UCU7NumJp1UzpGUDJ3GEZF9iFKNnyFLirxdNddabIs49y/jsKV0/E5CrF0uorQvjcj6Yx48o7hPrEX1/E9uI/vrpx8CqgMZvTxrdE3bIuhQdvKHQvVWoV/EiFYefKOk7f0TXSxLQgbdLfScbD2uB7HruUUrPqQmJv+VSffxIsCWRCCwOLFi5kwYQJeVd3f/ONCyvauRtLoMbXoqXQUIchIkkTYoLvx5B0jf+mbaMPi0UU1UTSTtzibgmXvUX54C9qoRCJHP/WHW9+6yMboIhtj6XgVsizjLc7GfWIP7uN7cJ3YS/mhzQBIGj26uBYYGlR2mPXxrVDpjEr9WEIQ8bud5Cx8CUmjI3LUk0ga5d9IqXRGQvtMJP+7/+Dc91PAl5lTgiiQBUFBsiwzbdo0nnnmGUxxzYmpB5t/nI/s8+Dc9zPG5j3q/BJCwqWRNFoiRj1B1mcPkrvgRWImvYnaaK3xHLLPS8nmryleNxskCfvAO7B0HnHesdGSJKENjUEbGoO5XeUdIl9ZUWWH+cQe3Cf2ULzhK5D9lSuURDdF36DN6WEZapOtpn48IUjIsp+8b9/AW5hB9NiXgmpzn5CkFEp/XULhmk8rn7O1dWttflEgC4JC6uPmHxdSfngrflcp5jq0tbRQ/TTmMCJHP0XWF38nb9FrRN3wzxqdtOc6sZeCH97Bk3cMY/MehA2ajMYaeUnnUoeEYmp5BaaWVwCV3UJ3xm+VQzJO7KF021JKtywCQBve8PSkP0ODtmhsdXcFAaFSyS/zKP/9F+wD78SQkKR0nD+QJBX2gXeQPfsJSjd/je2KG5WOVK1EgSwICjh27BijRo1i+/bt9Wrzjwsp270KlcmGoUknpaMIQU4f15LwIfeQ/91/KFzzCWED7wj4NX3lpRSt+QTHzmWorZFEXvtMtW9eotKbMDbphPHk34Ds9eDO+v30sIyy337GseN7oHKFE33DNqeHZWgjGoqJf3VI+eGtlZtytO6HpctIpeOckyEhCWOLnhT/MpeQ5MFozHXnDqgokAWhhp3a/KOo1En8Df9A3biz0pGCgt/lwHloE5YOw4J6CS8heJiTB1ORc5jSzV+ji26Kue2AgFxHlmXK9qymcPUM/OWlWLtdi63XuBoZIyxptBgatMHQoA30GIPs9+HJSzvZYd6L+9gunHt/BEBticDcLoWQpEFo7bEBzyYEjqcoi7xvXkcb2YjwK+8L6klw9v63knFwM0U/zSTiqgeUjlNtRIEsCDXozM0/4ib9q15t/nEhZfvXgc9LSNu6u7W0UP3sA26nIvcoBd//t3IIQkyzaj2/J/8E+cvexX1sJ7q4loTf+AK6qMRqvUZVSCo1uqjEygydR1RO/CvKwn18N2X711L8y1yKN3yJvmE7zMmDMbXohUpnUCyvUHV+j4vchS+BLBM5+qmg//fT2uOwdh5ByeavsXYeji66qdKRqoXYaloQasAfN//oTPiIR+vd5h8XkvXF4/jKioi7472g7pYIwcfnLCbzswdBhthJb1bL7mKyt4LiDXMp3jgXlUZPaP9bMLcfGvRDGLwleZTtWYVj13K8hZlIOiMhrfpgTh6MLq6V+NsKcrIsk7/k35Tt/ZGo65/D2LSL0pEuit/lIH36XWgjGxE9dlow/p6JraYFIdiIzT8uzFucg/v4bkL7TAzGJ1YhyKlNNqKufZqs1MfI/fplose+hKS+9Je38qPbKVj2Lt7CDExt+hE28A7UIfZqTBw4GmsEtp43YO0xBveJPTh2rqBs3084di5DE9YAc/IgzG1TUJtrx89T35Ru/YayvWuw9bmp1hTHULmud2jvCRQsf4/y33+pE8t0ig6yIATQmZt/RA67D30bMXzgXIo3fEXRT58Tf/cMNLZopeMItVTZ3h/J++Z1zB2vJnzIlCof7ysrpHDVDMr2rkFjjyVs8FSMTToGIGnN8rudOPevxbFzBe70vSCpMDbtgjlpMMamXS/rzYRQPWRZxrHjBwqWv4cxsQuR1z4V9Hcr/kz2+8j8+D5kv4e4298Nto1vRAdZEJRWVFTE6tWrWbZsGampqWLzjwuQZRnH7lXoG7QVxbFwWULa9KvcaW/TAnTRiVjaD72o42TZj2PHDxSt+RS/143tinHYeo5B0ugCnLhmqPQmzMlDMCcPwZN/AsfuFZTtXkXuwU2oTDZC2g7AnDQYXWQjpaPWS353Gfnfv4Pzt58xNO5IxPCHa11xDJXj4+0Dbydn7nOUbl2CtdtopSNdFlEgC8Jl8nq9bNq0iWXLlrFs2TI2btyI3+9HozdhaNKR2MGT8dfjzT8upCL7EN6CE1i7jlI6ilAHhPabREXOEQqWv4cuIgF9fOvzPr4i5wgFP/wf7ozf0CckET5kKtrwhjWUtuZpwxtg73cLoX0mUn7kV8p2Lqd065LKlUBiW2BOGkRI676oDGKORE1wZ/5O3uJX8RbnENpvEtbu19XK4vgUY2JnDE06U7R+DiHtBtbqzW3EEIu/UFZWRk5OzukPh8PBsGHDCA29/MkfQu136NCh0wXxylWrKC0pQZJUGONbYGzcEVNiJ6So5uLW5UUoWPkhpdu+pcG9qajFi7JQDXzlpWR9/jCy103MzW+isYSf9Rh/hYvidV9QsvlrVAYz9oG3E9J2YL0cA+9zFlO2Zw2OXcvx5B5F0ugwtbiCkOTBGBKSanXBFqxkWaZ0yyIK13yK2mwnYsRjGBqc/81cbVGRd4zMj+/F0nEYYYOrPtQpQMQQi7/idrvJzc0lJyfn9OczP3Jzc8nOySE7O5vc3Fxc5eVnnSPEGsqzzzzNA/fdi15fv3c8q2+KiopYtWoVy5cv54dlyzhy+DAABns0usQraNCsM8S1Q220KJy0dpH9Psr2/YipaTdRHAvVRm20EHntU2TNfITchdOIGf8KkuZ/4yGdBzdSsPx9fCW5mJOHENr/FkW2qw4WapMNa9drsHQZSUXWQRy7VuDcu4ayvWtQ26Ixt0vBnDRI7NxXTXzlJeQvfYvyg5swNu9B+LAH6tRrhy4iAXOHYZRu+w5zx6vRRSQoHemS1NoOss/nk/Pz888qcv9c+Gbn5JCTk0tpSfE5z6NSa9GYQ1EZbUgmG9qQUDQhNrRme+WtAaMNWW/F76ugdP1snEe2ExnbgDdee4Xx48ehUol31nXR+YZN6BOSsTTrhDahPZItrl52nKpL+eGt5Mx9jsjRT9WJWc9CcHHuX0/u19MISRpM+LD78ZXmU7DyA8oPbEAbkUDY0HswNGirdMyg5Pe4Kf/9Fxy7VuA6uh0AQ6NkzMmDMTbviUormkSXwnViD3mLX8fnLMI+4HYsnYbXydcQn7OY9Ol3oY9vRfSYfyodBy6hg1xrC2SVSiWfM7ukQhtiQ2WyIRltaEJs6Mx2NCE21KZQJJMVWV9ZDKtNNiSdqUq/nOVHfqX4x09xZx+meZtk3nv7DVJSUqrxJxOUIoZN1Lzcb17HdXgrDe6Z+YcOnyBUl6KfUylePwdT636UH9oEfj+2XmOxdh0VbLPsg5a3OAfH7pU4dq3AV5yNpA8hpHVfzMlD0Mc2VzperSD7fZT8Mo+itbPQhEYTMfLv1b6pTbAp2bSAwtUfEzXmnxgTFd8xtv4UyE2GTJLL1SFoTKHIBiuysbLgVRnMAd+mVpb9lO1ZQ/HPM/GW5NJ7wCDe/c8bJCUlBfS6QvU6NWxi2bJlLFu+/I/DJhp1wNqsixg2EUB+t5MT70wkpN1Awofeo3QcoY6SZT+581+g/NBmDImdCRs8BW1ojNKxaiVZ9uM+thvHruU4969D9lZgaNwRW6/xdWb8bCD4HIXkLfkXrrQdmFr3I3zoPaj0JqVjBZzs9ZAxYyqSWkvsbf8NeG12AfWnQO772mr5WIFT0Qyyt4LSrUso/uUr/O4yxoydwL9fnUbDhnV3BnRtJoZNBBfH7pXkf/sm0RNew9CgjdJxhDpM9lZQkXMEXWwL8bddTfzuMhw7fqB44wL8ziJRKP+F8iPbyFvyb+SKcuyDJmNOHlyvfgedB9aTu3AaYUOmYul4lZJRRIGsBF95KaW/fEXJ1m9Qq9VMvfc+/vnMU2LFiyAgyzKbNm0iNTWVL7/8ktzc3D8Nm+iIFNVCDJtQQPaXz+AtzCBu8kf16gVDEOoSf4ULx/alFG+cj99ZjKFxR0J7j7/g8np1nez3UfRzKiW/zEMb3pCIa/5eL9eZlmWZ7NlP4Mk7Rvxd05VcPlAUyEryFmdTsjaV0t2rMVlCee6Zp3ngfrHihRJ+//13Zs2axaxZszh48CBqrQ5Ts27Y2vaFuCQxbEJh3tJ80t+7FVvPGwjtU6XnLEEQgpC/wkXptqWUbBKFsrckh7zFr+NO34c5eQj2QXeh0hqUjqWYiuxDZH76INZuo7EPuE2pGKJADgYV2Yco/vFTnEe2iRUvalBOTg5ffvkls2bNYuPGjSBJhDRujy1pAJrEHkj6EKUjCiedmrwRd+cHaMPilY4jCEI1OatQbtKJ0F7j6k2h7Px9I/lL30T2+wgfei8hbfopHSko5C19i7I9a4i74z209lglIogCOZiIFS8Cr6ysjEWLFpGamsqyZcvw+XyYYpoS0rY/xpZ9kCwRSkcUziHjk/sqJ27c/IbSUQRBCIDKQvlbSjbOx19ecrJQHo8+vpXS0QJC9nooXPMJpVsXo4tuSsQ1f0drj1M6VtDwOgrImH4XxiadiBz9pBIRxEYhwcTYpBOGxh0o27OGIz/PZNCgQWLFi2rg9XpZuXIlqampLFy4kLKyMgyhUVi7X4u17QAIq52LktcXFblH8eQcwT5ostJRBEEIEJXOgK37dVg6XlXZUd44n6zURzA06Xyyo1x3CmVPYQZ5i16lIvsQls4jsfe/VSxb+ScacxjWHtdT/HMqrmO7MCQEfw0kOsg1RKx4cXlkWWbr1q2kpqYyZ84csrOz0ZosGFv0IjR5IMS0Etuh1hKFaz6hZPPXNLjn88rNeARBqPP8FeUnO8oLTnaUO1eOUY5rqXS0y1K290fyf3gHSaUm/KoHMTXvoXSkoOX3uMn48G7UJisxE/9d05PjxRCLYOcrL6V041xKtiwWK15chMOHDzNr1ixSU1M5cOAAKo0WU9OuhLYfiKphZ/EuvZaRZT/p796KLjqRqOufUzqOIAg1zF9RTumv31Ky6WShnNi5cuhFLSuU/R4XhSum49i5DH18ayJGPorGKrbivpCy39aSt+gVrD1vxN53Yk1euvoLZEmSDMBPgJ7KIRnzZFl+TpKkT4F+wKk9nG+RZXn7ec7zNnCbLMvmP339OmAe0FWW5S0XG7y2FsinKLHihcvlIjMzk4yMjD98pKenk5GRQXFJKbEx0cTHxxMXF3f686mPiIiIGplomJeXx1dffUVqaiobNmwAIKRREtakgWia9USlV2yZGOEylaftIGfOU0SMfIyQ1n2VjiMIgkJqc6FckZtG3uJX8eQdx9rjekJ7TxBLhVZB3rdvUbZ7JdHjXsKQkFxTlw1IgSwBIbIsOyRJ0gJrgQeAu4ElsizPu+BFJKnLyWNGn1kgS5JkAb4FdMC99alAPqU6Vrzwer1kZ2f/odj9YwGcwYn0dIoKC846VqXWorGGowoJQ9Ia8JUV4SsrwFdWdNZj1RoNkVExNIiPp2GDeOLj4/5QQJ8qqG02W5XXtXU6nXzzzTekpqby/fff4/V6MUY3xtx2AMZWfZAs4p15XZC39C2c+9fR4N5UVFqx/KEg1Hd+t7Ny6MWmhfjLSzAmdsHWa1xQFsqyLOPYuZzCFR8g6YxEDH8YY5NOSseqdfwV5WR++gCyx03sbf9FbbTWxGUDO8RCkiQTlQXylJMfFyyQJUlSAyuA8cDvfyqQ3wKWA48Cj9THAvmUc614MWDAAPLy8s4qeM8shE+kZ5Cbk82f/x0llRqt2Y7KHIYqJAydNRydNQKNJRxMdmSTHbU5DJXBcs5iVvZ58JUV4istwF9WgOQsxFdWgLc0H3dJHt7SAvyOAnwux1nH6g1GomPOLKT/2Ik+9WEwGFi9ejWpqanMnz8fh8OB3haJqXVfrO0GQnj9W1S9LvN7XJx4ZyKmlr2IuOpBpeMIghBEThfKGxfgd5UGXaHsdzvJ/+H/cO77EUOj9kQMfwS12a50rFrLnXWQrJmPYGzahcjRT9XEZlGBKZBPFrlbgWbA/8my/PeTQyx6Am5gJfC4LMvucxz7AKCSZflNSZIcpwpkSZI6AU/JsnydJElrqGKB3PLp72S313+xD68VZNlP2Z41FP00E19pLpJKjez3nfU4lcmG2hyGxhyO2hyG2hyOxhKG6tR/m8NRmaw1su+53+PC5yjE58jH5yjAV1r52eso+N/XHPnInrN+NZDUWmSfB5XehKllb0La9EffsK3S+7ULAVK27yfyFr9G9NhpGBrV2G01QRBqEb/bSemvSyo7yq5SjE27VhbKsS0Uy+TOOkje4lfxFmUT2nsC1h7Xi9epalC8cQFFaz6uqW2oA7PMmyzLPqCDJEmhwEJJktoBTwBZVA6PmA78HXj+zOMkSYoDxgD9//R1FfAGcEtVwp7JYtDgL/dc6uFBSo2ufQq2tn0o/PV7fKX5qC3h/yuELWGoQ+xIai2SBBpVEGzPqzaCwQgR517vUZbB4/MjVzjxlRbgPV00F+BzFqGPa4WpWTc0Oj3B8OMIgePcuxq1JQJ9QjulowiCEKRUehO2njdg6TT8dKGc9fnDmJp2JazPeAxxNVcoy7JM8ZZvyFs1A7XRRvS4aRgaiuev6mLtNgrX0W0UrvqIkIS26KMaB+xaHp/8a1WPqfIqFpIkPQs4ZVn+1xlf609lB3i4JEk/ANHAFmAhMANwnXxoAnAY6AwcAk7dn48BCoCRVegi187lNwShHsrNzSU2NhZrt2ux9p2kdBxBEGoJv9uJ49clFG9agN/lQKvVQQ01U2RZxuvxYGnRnYhhD+A31MhY2XrF5ygk85N7sdgjyPh9F0ajMVCXqvJvzQU7yJIkRQIeWZaLJEkyAoOBVyVJipVlOfPkJL5RwG4AWZaH/ukUMWecyyHLcrOT/zPijK+voYpDLARBqD3mzJmDz+fD2m6A0lEEQahFVHoT1p43YO40nLJdy1G5ii98UDXSRzRE3bI//sCPka2X1GY74Vc9SM68fzLy5iksn/up0pFOu5ghFrHAZyfHIauAr2RZXiJJ0qqTxbMEbKdyVQtBEISzpKamYoptKnY5FAThkqj0JixdrlE6hhAAxqZdsXQeyYp5n/HBzKuYPPEGpSMBtXijEMQQC0GoFfbv30+rVq2IGnQHxs6jlI4jCIIgBBnZ6yFz5sPIjnz2791NYqNq32W4yrcAxN68giAE1KxZs5BUKgwt+ygdRRAEQQhCkkZL5IjH8FW4GThiDH6/8quUiQJZEISAkWW5cnhF4w5I5nCl4wiCIAhBShvREHvKnaTt2sjkR59VOo4okAVBCJz169dz5MgRbMkDlY4iCIIgBDlz+6GYWlzBR2+9wverf1Y0iyiQBUEImJkzZ6LRGVA36a50FEEQBCHISZJE2LD70ZjDuP6GcRQXlyiWRRTIgiAEhNvt5quvvsLYvAcqXcDWthQEQRDqELXBTPjwv1GWn8ngMTcrlkMUyIIgBMTSpUspLCwkNDlF6SiCIAhCLWJo2A5bzxvZvHwR096erkgGUSALghAQqamp6C1hSA2SlY4iCIIg1DK2XmPRx7fhmcceYte+AzV+fVEgC4JQ7QoLC1myZAnG1n2RVGql4wiCIAi1jKRSEzHiEUBi0Ihr8Xg8NXp9USALglDt5s6dS0VFBbYksbW0IAiCcGk0tijCht5LzqE9jJv8UI1eWxTIgiBUu5kzZ2KMSkAOT1Q6iiAIglCLhbTuQ0jSYOZ/8i6zFy6tseuKraYFQahWR44cITExkYj+kwjpPkbpOIIgCEIt569wkfXZA6i8bo4c2ENsdFRVTyG2mhYEQVmzZs0CwNSmv7JBBEEQhDpBpTMQPuJR3I4iBl4zlppo7ooCWRCEanNqa+mQRklIlkil4wiCEED+CpfSEYR6RB/TDHu/Sfy2cTWPPv96wK8nCmRBEKrNli1b2L9/P9YksbW0INRVfo+bvG/f4PjbY3FnHVQ6jlCPWLpeg6FJJ9548RnWbdoW0GuJAlkQ6gi/38/f/vY3Xn75ZdLT0xXJkJqailqrQ9OspyLXFwQhsLzFOWTPeoyy3auQJDXFa2cpHUmoRyRJRcTVD6HSmbh69PU4nc6AXUsUyIJQR0yfPp033niDJ598koYJCQwcfCXz5s3D7XbXyPU9Hg+zZ8/G2LQbKr25Rq4pCELNKU/bQeZnD+IpzCTyumexXXEj5Yc2487Yr3Q0oR5Rh9gJv/ohijMOM2Li5IBdRxTIglAHZGdn8/jjj2Nu0p64Oz8gtMcYft64hTFjxhAZHcs9993Pjh07Apph+fLl5ObmYk8WwysEoS6RZZmSTQvI+fIZ1KZQYie9ialZNyydhqMyWila+4XSEYV6xpjYGUuXa1i1IJV3P50TkGuIZd4EoQ6YOHEis+fMoeEd/4dsiwdA9vtwHd2Oa/cKSg9sQPZ5adWuPfdMvoMJEyZgt9urNcO4ceNY8M1SYqZ8hqTWVuu5BUFQhr/CRf73b+Pc9xOmFlcQftWDqPSm098v3jiPojWfEj3hdQwNWiuYVKhvZK+HrNRH8Jfm8Nue3TRtnHC+h1d5mTdRIAtCLbdq1SpSUlII7z0Wc6+bzvkYX3kJzr0/UrZrOe7sw2i0OoaPvIYpd91BSkoKavXlbQddUlJCdHQ0+jYphA6eclnnEgQhOHiKsshd8CKe3DRC+07E2mMMkvTHOsNf4SL9g9vRRTYheuyLCiUV6itP/gkyP3uAhi2TObx9w/ley8Q6yIJQn7jdbqZMmYIxPO68m3KojVYsnUcQc8vbxN7yH8wdrmTxt98xdOhQYhsk8NTTz3D48OFLzrFgwQJcLtu9O+UAACAASURBVBc2MbxCEOqE8sNbyfrsQXyleUSN+Qe2njecVRxD5fq0tu7X40rbjuv4bgWSCvWZNrwB9pTJHNu9mTsfebZazy0KZEGoxV577TUOHDhAxJApSBr9RR2ji26KbeBdNLjncyJG/h1nSBzTXnqJpk2b0r1XX2bOnFnlmcGpqakYw+MgqsWl/BiCIAQJWZYp3vAVOXP/gdoSQcyktzAmdj7vMeaOw1CH2CkSK1oICjAnD8bUsjef/OcVlq78qdrOK4ZYCEItdfDgQdq1a4e+aXfsIx67rHN5S3Ip37OK0l0r8BRmYjCZGTtuLJPvuJ3u3bufs3N0yokTJ0hISCCs9zjMV4y/rByCICjH73aSv/QtnAfWY2rdl/Ar70elM1zUsSVbFlO4cjrRY6dhaJQc4KSC8Ed+l4PMT+5Dp9Vw4uA+7KG2Pz9EDLEQhPpAlmXuuece/CoN4Sl3XPb5NNZILD1vJPbO6USPfwV9sx589vlMevbsSWLzVrz++utkZ2ef89jZs2cjyzIhbftfdg5BEJThKUgna+YjOH//BfuA24kY8ehFF8cAlg5XojaHUbQ2tUa2ARaEM6kMZsJHPIqzIJvB199cPeeslrMIglCj5s6dy7Jly7D3uQm/KazazitJEoaG7Qgd9iAN7plJ+JX3k+3W8NhjjxEXF8+Qq4azaNEiPB7P6WNmzpyJqUFrJFtcteUQBKHmOA9uIvOzh/A5i4i68QWs3Uaf967RuUgaHbaeN+I+sRfX0e0BSioIf83QoA22K8aydeViXnzr/cs+nxhiIQi1THFxMa1bt6ZEZSZ8/L+QVJe3AsXF8OQfp3zPSkp2rsRXVogtLIJbJk2kV8+e3HDDDcRcORV9+6sCnkMQhOojy36K182heN0X6KKbEjn6KTS2qEs/n9dD+vS7UFvCiLnpX1UusgXhcsl+H9mzn8CTc4Stv26lQ9vTSw+KZd4Eoa67//77eeedd0i49U2IbFaj15b9PsoPb8W1ZwWlBzaC34ekVtPwns+RjGeN+RIEIUj53WXkLfk35Qc3EdJuIGFD7kGlvbiJvudTuv17Cn54h6jr/4GxaZdqSCoIVeMtySHzk/sJj0vgxL5t6HQ6EAWyINRtW7dupVu3blg7DsM2SNn1hn1lRZTv+xGNwYSh3WBFswiCcPE8ecfJWfgi3qIs7APvwNJpeLV1e2Wfh/QP70ZttBJz8xuiiywoouy3teQteoVRk6ay8NP/A1EgC0Ld5fP56NGjB7sPHCb69vdAF6J0JEEQahnn/vXkLX0TSaMnctTjGBq2q/ZrOHYuI/+7t4m87hlMzbpX+/kF4WLkf/c2jp3LmbVgMeNHDxerWAhCXfX++++zZcsWwlLurNfFcS1+Uy8IipH9Pgp/+pzcr6ehDW9I7KS3AlIcA4S0HYgmNJain2eJv1dBMfaUu9CGx3PrLbfQ+PFvtVU9XhTIglALZGZm8uSTT2JO7IimeW+l4yjGnf4b6e9OovzQFqWjCEKt4XM5yJn3PCUbvsKcPISY8a+isUYE7HqSWoOt11g8OYcp/31DwK4jCOej0hmIGPEYHmcpQJU3CxAFsiDUAg8//DBl5S4ih06t12P6in7+HJ+jgNzFr+HJO650HEEIehU5R8j67EFcaTsIG3oPYVfeh6SpcjOtykLa9EcTFk/R2i+QZX/ArycI56KLTiTurg8BWl/osX8mCmRBCHLLly9nzpw5hPa4Hr81Vuk4inEd340rbSeWrqOQNDpy5j+Pr7xU6ViCELTK9v1EVuojyN4KYsa/jKXDsBp7gy2p1IT2Gocn9yjO/etr5JqCcC4aS/glHScKZEEIYi6Xi6lTp2KKiCek2/VKx1FU8brZqEJCCe1zE5Gjn8JbmkveoleQfV6lowlCUJH9PgpXf0ze4tfQRSUSM+kt9PFVbqBdNlOrPmjDG1K89gtkv6/Gry8Il0MUyIIQxF555RUOHjxI+NCpSBqd0nEU4zqxB1faDmzdrkOlNWBo0JrwoffiSttB4aoPlY4nCEHD5ywm56tnKdm0AHPHq4keNw2Nufp226wKSaXG1ms8nvxjOH9bq0gGQbhUGqUDCIJwbgcOHODll1/G2rY/qgbtlY6jqOK1s1GZQjF3HHb6a+akQXhy0yjZvBBtZGMsHYad5wyCUPe5sw6Su3AavrJCwoc9gDlZ+fXJTa16oV3fiKJ1X2Bq1btGdv4UhOogOsiCEIRkWWbq1Kmg0RGWcrvScRRV2T3ejq37tai0hj98L7T/LRgSO1Ow/H1cx3YqlFAQlCX7fZRuW0r2rMdA9hMz4dWgKI4BJElFaO8JeAvSKdv7o9JxBOGiiQJZEILQnDlzWLlyJaF9JyIb7UrHUdTp7nGHq876nqRSEznyMTShseR+/QqeoiwFEgqCclxpO8n87EEKlr2LPr4VsZPeQh/bQulYf2Bs0QNtVCLF62aLschCrSEKZEEIMkVFRTz00EOExLfAkHSl0nEU5TqxF1fadqzdrkWlM5zzMSp9CFHXPQOyn9z5z+N3O2s4pSDUPE9hBjkLXiR7zpP4XWVEjHyMqBtfQh0SqnS0s5zuIhdlUrZ7ldJxBOGiiAJZEILMU089RU5uLpFX3lvvx+sVr5uNymTD0vHs7vGZtGHxRFzzOJ78E+Qt+ZfoUgl1lt/loHDVDDI+moorbQehfW8m7o73CGndN6jXSDc264YuphlF6+eIlWeEWkEUyIIQRDZt2sR7772HrfNw5IhEpeMoynViH66j27B2u+4vu8dnMjbugD3lTsoPbqLo55k1kFAQas6pccbp0++iZPPXmNsNJP7O6dh63oBKq1c63gVJkkRo7wn4irNx7FqhdBxBuCCxioUgBAmv18vdd9+N3hpGaO+JyEoHUljxui8uqnt8Jkun4ZUrW/wyD21EI8xtBwQwoSDUjPLDWylcPQNP3jH0CUmEDbwDXXRTpWNVmSGxC7rYlhRv+BJzu5Qa2dFPEC6V6CALQpB499132bZtG+EpdyHrjErHUZQ7/VT3+K/HHp+LJEmEDZ6MvmE78r97G3fG/gCmFITA8uQfJ2fuP8iZ+xyy10Pk6KeIHjutVhbHcLKL3GcCvpJcHLuWKx1HEM5LFMiCEATS09N5+umnsTTtjLrZFUrHUVzRutmojFYsHa+u8rGSWkvkqCdQm8PIXfgS3tK8ACQUhMDxlZdQsOIDMmbcg+vEXuwDbiPu9ncxtegZ1OOML4ahcUf08W0oXv8lsrdC6TiC8JdEgSwIQeChhx7C6XJX7phXy18AL5c7/TdcR37F2r1q3eMzqU02oq57Bn9FObkLXsLvcVdzSkGofrLPS8mWRWRMv4vSX7/F3OFK4id/iLXbtXVmOIIkSdj6TMDnyKd0xw9KxxGEvyQKZEFQ2HfffcfcuXOxX3EjsiVa6TiKu5zu8Zl0kY2JGP4IFVkHyf/uP8hyfR/VLQQrWZZxHtxExsf3ULjyQ3QxzYm99W3Ch0xFbbIpHa/aGRKS0TdsR8mGr8SbVyFoiQJZEBRUXl7OvffeiymyISFdrlU6juLcGftxHdl6cuzx5Y/DNjXvTmjfiTj3/UTJL3OrIaEgVK+K3KPkfPkMufOfByQir3+OqBueRxfZWOloAXN6RYuyQhzbv1M6jiCck1jFQhAUNG3aNA4fPkzCTS9DHbmFejmK1n1R2T3udHnd4zNZe4yhIi+Nop8+RxveEFOLntV27urmryineMOXeAsyiBjxCJJGp3QkIUB8ZUUUrU3FsWMZKr0J+6DJWDoMQ1LXj5dlQ0IShkbtKf5lHub2V17ycCpBCBTRQRYEhfz222+8+uqrWJMGIsUnKR1Hce6M/bgOb8XabXS1dI9PkSSJ8CvvRxfbnLwl/6Yi50i1nbu6yLJM2f51ZHw0hZJf5uE8sJ7CHz9TOpYQALLXQ/HG+aRPvwvHzuVYOg0n7q4PsXYeUW+K41NsvSfgdxZRuu1bpaMIwllEgSwICpBlmSlTpiBpDYQNuE3pOEGheN1sVAbLZY89PheVVk/k6KdR6U3kzH8Bn7O42q9xqTwF6eTMfY68r19GZTATPeE1LJ2GU7plEeWHtyodT6gmsizj3L+ejBlTKFrzCYaGbYm77f8IG3QXaqNF6XiKMDRog6FJJ0o2zhdbxAtBRxTIgqCA1NRU1qxZg73fJGRjqNJxFOfO2E/54S2V3WO9KSDX0FjCibz2afzOInIXTkP2eQJynYvl97gp+nkWGR/fgzt9H/aUO4m95T8YGrQhtP+taCMakbf0zaAq5oVL4846SPbsJ8j9ehqSRk/UDS8Qdf1zaMMbKB1NcaG9J+AvL6H01yVKRxGEPxAFsiDUsIKCAv72t78R0rAV+qQhSscJCsXr51R2jzsND+h19LEtCB92P+4TeyhY9p5iK1s4D20mc8ZUitfPxtSyF3F3foC1yzVIKjVQ2fGOGPkoflcZ+UvfEitw1FJeRwF5S98i67OH8OQdI2zIVGJvfRtjk45KRwsa+riWGJt2pWTTAtFFFoKKKJAFoYY9+eST5OXnEzn0XiRJ/Am6Mw9QfmhzQLvHZwpp0x9rzxtw7FxG6dZvAn69M3mLc8hZ8CK58/4Jai1RY18icsSjaMxhZz1WF9kYe/9bKD+0Gce2pTWaU7g8suyn+Je5ZEy/i7I9a7B2G0385A+xdLzq9Jsg4X9svSfgdzko2bJI6Sh/4M48gPPgRqVjCAqpXzMCBEFhGzZs4IMPPsDefRRyeGOl4wSF02OPA9w9PlNon5vw5B2jcNVHaMMbBryjJ3s9lGxeSPH6L0GC0H63YO16DZL6/CuXWDqPpPzwrxSunoE+IQldREJAcwqXT5ZlCpa/j2PbUozNe2AfcDtae6zSsYKaPqYZxuY9KNn8NdbOI1AZzIrm8TmLKfrxMxw7lwGVf4f2gbeLNzf1TK1tX02fPp19+/aJW49CreH1ern77rsxhEZiu2KC0nGCgjvz98rucddRNdI9PkWSVERc/TDa8IbkLXoFT0F6wK5VfnQ7GZ/cS9FPn2NM7EzcHe9h63H9BYvjypwSEVc9iKQzkvfN68heZcdNC+cnyzKFK6fj2LYUa/friBz9lCiOL1Jor/HI7jJKNivXRZZlP6Xbvyfjw7tx7FqBtetoLJ1HULp1MTnz/onfXaZYNqHm1doCefLkybRp0wZ7eCQjRl7DG2+8webNm/F6vUpHE4Rzevvtt9m5cydhKXchV+MyZrVZ8frZqAxmLJ1H1Pi1VXoTkdc9Ayo1OfOfx+9yVOv5vaV55C56lZwvnwa/n6jr/0Hk6CfRWKOqdB612U74sAfw5Byh8MdPqzWjUH1kWaZo9ceUbv0GS5drCO13S73fNr4qdNGJmFpcQcmWr/GVl9b49d1ZB8ma+SgFP7yDNiKB2Fvfxj7wdsIGTSZs6L240naQNfMRPIWZNZ5NUIZUWzuwXR79XE7bsxVvxl4cabvxFmUBYDCa6NajByn9+9G3b1+6d++O0SiKEUFZx48fp3Xr1qji2mAf/ax44eTkC9JnD2LrcxOhV4xVLIfr+G6y5zyFoVF7oq5/7rJvo8o+L6Vbv6Fo3RfIPi+2HmMqO8aXuelHwfL3KP31W6JueB5jk06XdS6hesmyTNFPn1Pyy1wsna7GPuhu8Td+CSpyj5L58X1Ye47B3vfmGrmm3+Wg6OeZlG77DpXRin3AbYS0HXDWv5/r2E5yF74MQOToJzAkJNdIPqHazDr6ytU3VeWAWlsg931ttXys4H8zXr2l+VSc2IMvcx+OtN1U5B4FWUat0dK+YydS+velb9++9OrVC7vdrlxwoV667rrrWLzkWxre+R5+c9U6iHVVzvzncZ/YS/zdM1DpQxTNUrr9ewp+eAdLl2sIS7nzks/jOr6bgmXv4clLw5jYBfugydV2i93vcZP12UP4XaXE3vYOapOtWs4rXL6itbMoXjcbc/srCRs6VUy+vQy5i16l/NBm4u+eEdDfcVmWKduzmsLVH+MvL8HScRihfSaed/yzpzCDnHnP4y3KJGzwFCwdrgxYPqHa1d8C+c98Lgfu9H34M/ZSdmw37ozfkf1eJEmieas2pwvmPn36EB8fX4PJhfpmyZIljBgxgogBkwjpNkbpOEHhdPe49wRCe41TOg4ABSs+oHTrN4QPux9zctWW3/OVFVK45hPKdq9CbY0kLOUujM17VHsXsSLnCJmfP4SxSScir31GdCmDQPH6Lyn6eSYhSYMIH3a/KI4vkyfvOBkzpmLtfi32/rcG5BoVuUcpWP4+7uO70cW2IGzIVPQxzS7qWL+7jNxFr+I68quYvFe7iAL5r/g9bioy9+PN2Ivr+B6cx/che1wAxDdsxIB+fenfvx99+vShefPm4oVHqBZOp5M2bdqQWw4RN791UROz6oOc+S/gPr6b+CkfK949PkX2+8j56jlcx3cTPe4lDA3aXtQxju3fUfjTTGSPG2u30dh63ohKZwhYzpLNiyhc9SFhQ6Zi6XhVwK4jXFjxxvkUrfmEkLYDCL/qQVEoVZO8b/6F8/cNxE/+CHVI9d3x9budFK+bTcmWRaj0IYT2m4S5/ZAqv6mR/T4KV82gdOtiDE06EXnN34PmeUz4S6JAvliy30dF9mG8GXtwn9hLWdpu/OUlANjDI+jbty8D+lV2mNu3b49aLZ74hKp74okneOWVV0iY+CpS3IULrvqgIvsQmZ8+EFTd41N85aVkzXwYv9tJ7M1vorH99XAYd8Z+Cpa9S0X2IQyNkgkbPAVteMOAZ5RlPzlz/4H7+G5iJ/0HbUTgrymc7dQbFVOrPkSMeEQUx9XIU5BOxkdTsHQZSdjAOy77fLIs4/xtLYWrPsLnyMecPITQfpMuewhH6fbvKVj+Hlp7HJHXPStWLAluokC+VLIs4y04QcWJPXgz9uFI24W3OAcAY4iZ7j160K51KxISEmjUqNHpz9HR0ahU4pZafef3+8nMzCQtLY1jx46RlpZGWloaH374IaY2/bEPe1DpiEEjZ8GLuI/tCqru8Zk8+cfJnPkIGlsUMRNeQ/WnFUd85SUU/fg5jh0/oDbbsQ+4HVPrvjV618nnKCTj43tQW8KJnfgGkkbcmahJpb8uoWD5+5haXEHEyMeQ1GJLgeqW9+2bOH/7mbjJH51zI52L5SlIp2D5+7iObkMblUj4kCno41tXW04xea/WEAVydfKW5OI+sQdfxj7KTuzDW5R91jqIWq2O2Ph4mjRuTJPGjf5QPCckJNCwYUMMhsDdbhVqRnl5OceOHTtd/J75+ejRNNLTT+Dx/HGNWo3RjC4qkahRjyMbrAolDy7B3D0+U/nhreTM+yem5j2IGPU4kqRClv04dq6g6MdP8bscWDqPILT3hBpdv/lMzoObyJ3/PJauo6qlyyZcnFMTOo3NuhM56nExbCpAPIWZZHw4GUunqwkbNLnKx/s9Loo3zKVk03wktY7QvhMDtpOhpzCD3Pkv4CnMEJP3gleVC2Txtvc8NNZING36Q5v+nCpv/O4yvCW5eItzkMry8JfkUlScwy+/Z7Ju6068jgL405uO8MgoEhISSGzcmMbnKKLtdrsY86wgWZYpKCg43fX9cxF8NO0Yebk5fzxIUqGzhqOyRKKxJmDr1hWtLQqVJRJ/SDgaa9Tpwql2vgUNjKJ1s5H0IVgVWPe4KoyJnbH3v5XC1TMoXvsFphZXULDsXdwZv6Fv0IawwVPQRTVRNKOpWTfMHa+mdPPXGJt0DvhugAI4dq2g4If/w5DYmchrRHEcSFp7LOakQZRu/x5rt+vQWCMu+ljn7xspWPEBvpIcQtoOwN7/NtTmwK1epbXHETPxX+Queo2CH97Bk3dMTN6rA0QHuZrJPg/e0nx8JTnIjjzk0ly8xbm4i7LxFOfiLclB9lb84RhjSAgNGjQksUljGjf6XwHdvn172rZtK4rnauD3+9m1axe7du360zCIyq6w0/nHOwMqrf50wauzRaG3R6O1RSKHRCJZIlCbw8Vt1SqqyD5M5qf3Y+s1ntDe45WOc0GyLJO/9D+U7V4BkgqV0YK9/22EtBsYNH+TlUu/PYjfXUbsrf8VS78FkGPPavKXvIGhcQeirnvmste1Fi7MW5xN+vS7MLe/kvAhUy74eE9RFoUrPqD80Ga04QmEDZmCISGpBpJWkv0+Cld/TOmWRWLyXvARHWSlSWot2tAYtKEx5/y+LMv4y0vwFufgK8lFKsvDV5JLVlE2adsP4vtpAz5n8enH2yMiGTQwhaFDBpGSkkLjxo1r6Cep3WRZ5vDhw6xcubLyY9Uq8vPyTn9fGxKK2haJyhyJIakV1tBo1JYI/CERqK2RqIzWoCmC6oqi9Se7x11GKh3lokiSRPjQe5C9btQmG7Y+N6E+zxqpSlBp9USMfJTMzx8m/7u3ibz2afF7GwBl+34m/9s30SckEXntU6I4riEaWzTm5ME4dvyArcd1f7kLpez1ULxxHiW/zAVJRWj/27B2GVnjTQxJpSYs5U604Q0pWP4emZ//jajrn0Vrj6vRHEL1EB3kIOT3uPAV51KR+Rue4ztxHN6Or6wQgAaNmnDlkEEMHjSIAQMGEBkZqXDa4JGdnc2qVatYuXIly1es4FhaGgB6WwS6hPZYEzsiRzVFbYlCpdUrnLZ+qcg5TOYn92PrNY7Q3hOUjlPnlGz+msJVH4ml3wLAuX89uYteQR/fmqgx/wzoEn7C2bwlOZVd5HaDCL/y3rO+X37kVwqWv4+3MANTy17YB95ZpeEYgfKHyXujnsDQSEzeU5iYpFcXybKMJ/84FWk7qDi2g7K0nfjdlT97yzZJXDV0EIMHD6ZPnz6YzcHV4QqkkpISfvzxx9Nd4t27dwOgNZrRNUzG2rQj6oZJqELjRVdNYbkLp1F+dDvxUz4Oui5sXSDLfnK+eg73ib3ETnpLLP1WTZwHN5K7cBr6mOZE3fC8YhMy67uC5e9Ruv174u784PTdWW9JHoWrPsS5fx0aexxhg+8Oui3YPYWZ5M5/XkzeCw6iQK4PZL+PiqyDeI7toDxtB+XH9yD7vKjVGjp17cZVQweTkpJC9+7d0enqzq1At9vNhg0bThfEmzZtwufzodbq0Tdog7lJB/SN2iNFNBGTI4JIRc4RMj+5D9sV4wjtI7rHgeJ1FJD58b2oLRHETvy3WPrtMpUf2kLOwhfRRTUh+sYXxVhSBXlL80j/4E5C2vQnfOg9lGxZRPG62SD7sfa8AVu364L2971y573XcB3ZKnbeU5YokOsjv8eNO30f3uM7cR7Zjivrd5BlDEYTvXr3YdjJgjk5OblWrdns8/nYvn07K1euZMWKFaxdu5by8nIklRpjXAsMjZIJadIBKbqlGBMYxET3uOY4f99I7oIXsHYdjX3g7UrHqbXKj2wjZ/7z6CISiBr7kvi9DQIFK6ZT+usStGHxePKPY2zWDXvKXX853yeYiMl7QSFwk/QkSVIDW4B0WZaHS5L0KdAPODWj7BZZlref47jzPk6SpK7ABmCsLMvzqhJeqKTS6jE27gCNO2DpczM+lwP3sZ14T+zip1+3sXL5DwDY7GEMHDCAK4cOISUlhcTExKAaeiDLMgcOHDjdIV61ejVFhZVjr41RjdG3HUxEYkeIayOeXGqJipwjOA+sx3bFWFFk1ABT8+6YO15FyeaFGBI7Vz4vCFXiSttJ7oIX0IbFE3XjC+L3NkjYeozBsWs5fm8Fkdc9g6lZd6UjXTQxea92uugOsiRJDwNdAOsZBfKSCxW153vcyaJ7OeACPq5KgSw6yBfPW5qHO20HnuO7cBzZhq80H4CY+IYMHTyIIYMHMXDgQGJiav6deEZGxumCeMXKlaSfOAGAPjQaXUIy1qadkOLaBXQNSyFwcr9+mfIj24i/ewZqo0XpOPWC3+Mi67OHxNJvl8B1fDc5c59DY40mevzL4v+7IONzFKIyhNTqO4Zi8p5iAtNBliSpAXA18BLw8CUE+yv3AfOBrlU9MLvEVY0x6jaNJQJNuxRol4JNlvEWpONK20FJ2nZmzv6Kzz79BACDPRp1DY7j8ns9lBdmA6AyWjEkJBE+9Br0jdqjCY0Nqu62UHUVuUdx7l+HreeNojiuQSqtgYgRj5I582Hyv/8vkaOfEn9LF8Gdvo+cef9EbYkkeuxLojgOQnWhUWJISCbm5jfInf882V89IybvBbGLHWLxFvAY8OdXuZckSXoWWAk8Lsuy+y+OP+txkiTFA6OBAVxCgWzSqfH6/FU9TJAkNBENMEQ0gM5X4/P5cGcfxpW2g4rcI3/eBDCgVJJEaPurMTZujzaqCSpJhUq8jtcZJevnIOmMWLqOUjpKvaOLTsTedxKFq2dQtuN7bB2HKR0pqLkyD5D91XOoQ0Iri+M6UIgJwUtrj/3DznvevGOEp4jJe4Hkk9lf1WMuOMRCkqThwFWyLE+VJKk/8MjJIRaxQBagA6YDh2RZfv4cx5/zcZIkzQX+LcvyLxc7XONPaufsQkGoB3bv3k1SUhJhvW7E0nui0nHqpdNLv6XvZePGzXTtWHM7itUm27ZtY+DAgVSojUSPfwW/KVzpSEI9cebkvU5X9GfV0q+x2cSdiwCpcvvtYpY06AWMlCTpKDAHGChJUqosy5lyJTfwCdANQJKkHyRJ2i5J0kcAf/U4Ksczzzl53uuBdyVJEq0mQagDXnjhBbSGECxdxJ+0UiRJRfhVDyJp9AwbNQaXSwxL+7OdO3cyaNAg3JKe6HHTRHEs1KhTk/fCrryPX3/5mRZJnfj999+VjiWcVKVl3v7cQZZlOVOqHNz2JuCSZfnxcxxzwceJDrIg1B27d+8mOTkZe88bsPQR3WOlnVr6bcRNk1k8832l4wSNPXv20L9/f8q8EjHjX8FviVY6klCPuY7tJPfrl1HLPhIbN6rRa8fFxdGlcyc6dOhAx44dadGiBWp1nRvuUeUO8uVsVD5LkqTIkxfdDtx9mY8Tn6VKYAAAIABJREFUBKEOeOGFF9DoxdjjYGFq3h1zh2F8k/oBqaOGc9N1w5WOpLj9+/eTkpJCmQdixk8TxbGgOENCMjET38Dxy5ekV9Tk3R6ZI3uPsubHn5B9HgD0BgNt2ibRtXNHOnas/EhKSsJkql87SdbajUIQHWRBCDp79uwhKSlJdI+DTOXSbw+i8rg4+vteYqIilY6kmIMHD9KvXz8KHOXEjHsFOTRe6UiCoDjZ58WTfxxPzmH8eUcpzzqEO/swfpcDAJVKRZOmzenSuSOdO/2v2xwREaFw8otW5Q6yKJAFQag2Y8eOZcGib4ibPAMMYmm3YFKRfYjMz/9Gm+792L1ueb1c+u3IkSP07duXvCIHMeOnIdsTlI4kCEFLlmV8JTlUZB9CzjuKK/sQrqzDeEtyTz8mKiaWzp060blTZae5Q4cONGnSJBifX0SBLAiCMvbu3Uu7du2w9xyDpc/NSscRzqFk0wIKV3/M4y/+m5efqs4l7YPfsWPH6Nu3L1l5RcSOn4YcVrPjPAWhrvCVl1CRXdlp9uQcwpl5GE/+cZArl94NMVtIbt+ebl0606FDBzp06ECbNm3Q6RTd4EUUyIIgKGPcuHHMW7iI+LtngMGqdBzhHGTZT86Xz+LO2MfGTZvp2qHuL/0myzKbNm1i/PjxpGflEjvuJeSIRKVjCUKd4ve48eSl4cs5jC/vKM7Mg7hzjiB7KrfH0Gi0tGjVmm5dOtGvXz9uuukmNJrLmQZXZaJAFgSh5u3bt4+2bdsS2vN6rH0mKR1HOA9vaT6Zn9yHPSqO9P9n777Do6q2Po5/90wmM5PeSYBAIIReEmpApQtICQQVFQUFsfeCcrFcG4oNO2IDFbCLV0JREEGBSxOIdAhJ6IQ0SJ2UmTnvH0Rer6ISyOTMJOvzPDyGZM5Zv4PJzMqeffbem4rZbNY7kktkZWUxb9485syZw65du/D28SfqqqchooXe0YSoFzSnA/vJY2fmNZdlpVOWlY6jtIDmrdoxd/a79OrVq7biSIMshKh9Y8eO5asF/6Hhre+DRRa6d3elaevJWfAMSeNu4duP687SbxUVFSxevJg5c+awZMkSHA4HvtFtCeg4EFPcRSizr94RhajXNE2jdO9aTv34HvaiPK4YO463X5tRGzf7SYMshKhde/bsoW3btgQlXkFAbxk99hR5379Jcep3zF+Qwthkz176bdu2bcyZM4d58+aRm5uLOSAUn3b9Ceg4EGSVCiHcjrPCRuF/P6Vg07dYfXx5fvp07rjtFgyGc9m/7rxIgyyEqF3XXnstX3y9oGrusYweewpnRdXSb3bPXPotLy+PTz75hA8//JAtW7ZgMHrh0zKR4E6XoqLjUYY6t9GBEHVORc5BTv0wC9uh7bTqkMD8Oe/RpUsXV5SSBlkIUXv+f/T4cgJ636B3HFFNvy391i6xL9vXLHPHpZn+h91uZ9myZcyZM4eFCxdSUVGBT1QL/DsOxNy6N0puDhXC42iaRsmuVZxaORtH6SnGT7iJV1+aTnBwcE2WkQZZCFE7fv75Z2699VbSMjJl9NiDFWxYwKlVs/H1DyQ+/v+XZkpISKB169aYTCa9I7J3717mzJnD3LlzOXbsGN5+Qfi06UNgp0shNEbveEKIGuAsK6ZgzXwKtyzGLyCIV15+iRsn3lBTv7hLgyyEcK2srCwmT57MvHnzsIZEEjr4ToxN4vWOJc6Tpjkp2bkKZ9YeSo/vpyL7AJq9AgCTt5nWbdrSrUsCnat2z+rUqRN+fn4uz1VYWMjnn3/OnDlzWLduHcpgxDe2C0HxgzA07YIy6t+4CyFqXsWJdE4uf5uyo3vo0KUH8+e8R4cOF7wkpTTIQgjXcDgcvP322zzyyCMUl5YS1P1y/HteCV4WvaOJGqQ5HVTmH8WenYEzNxNbVgZlWek4bYUAKKVoEtOcbl070znh/3fPioyMvODaTqeTVatWMWfOHL7++mtsNhvWiCb4dbgUS5u+GHxr9C1XIYSb0jQnxdt+oOCnD3GWlzDp1tt5efo0/P3Pe4dWaZCFEDVv/fr13H777WzduhW/5gmED74NZ0BDvWOJWqJpGo6iPCqyM9ByMyk/kYEtaz/2UyfOPCY0PIKEhAS6del8ZopGbGzsOd2VnpmZyUcffcRHH33EgQMHMFn98GnTm6BOA9HC49x+brQ70JwOUAqlXLYKgBC1zmErpPDnjylM/Z7A0AjefH0G115zzfk8J0iDLISoOXl5eUyZMoX3338fS2AYoQNuwtiilzQsAjg9Z7AiOxNnbiaV2RmUHk+nIvcQOB0AWH18ad+xI906//8Ujfbt22M2myktLeXrr79mzpw5rFy5EpTCt1kCQfGXYojpjsFUNzcwcQXNYSf7y8dBGWlw1dN6xxGixpUf28vJ5TMpz0qna6/ezJv9Lq1atarOKaRBFkJcOKfTyezZs3n44Yc5daqAwG4jCex1DZq3Ve9ows1p9koq8w5RmZ2OM/cAtuPplJ/IwFlhA8Do5UVsi5YcO3qY4qIirKEN8W0/AJ92/VH+nrXUnLvI/+EdijanAIrGd3yM0U+mooi6R3M6KE5dyqmf54K9nDvvvY9nn/w3vr7ntAGQNMhCiAuzdetWbr/9dtavX49f0/aED74DZ3C03rGEB9M0J/ZTJ6jMTkfLPUDZiQywBBISfylEtZF3JC5A8c6V5C16GWtsN2zpmwgZfCf+8UP0jiWEyzhKTlLw04cUbV9BSIOGvDvzDUYnJ//T84g0yEKI83Pq1Ckee+wxZs6cibdvIMH9bsTUuo80L0K4qYrsDLLmTsY7Ko4GVz3DsfdvxRTSmIgrn9A7mhAuV3Z4B6eWz6I85wAX9buUj9+fRfPmzf/q4dV+IZPZ/ELUc5qmMXfuXFq3bs1bM2cS0HkoDSbNwrtNX2mOhXBTDlsROQumYbD4Ej7yYZTRC2tcIraDqTjLS/WOJ4TLWaLb0+D6VwnuN5H/rl1Dy9ZtmPLI45SVldXI+aVBFqIe27FjB3379mX8+PEUm4JpOuE1AgfcCt7nNKdLCKEDzekgN+Ul7EV5hI+airFq+TufuERw2LFlbtE5oRC1Qxm9COg+moaT3sbaogfPP/s0TVu0ZvHiJRd8bmmQhaiHiouLmTx5MgkJCWzYnErk0LsJHfsCWlgzvaMJIf5BwdpPKcvcTMjAmzE3an3m8+ZGbTBYAyhNW6djOiFqn5d/GKFJDxNx1TOcstkZPnwYA4cmcejQofM+pzTIQtQjmqbx5Zdf0rp1a1566SV82w8katIszB0GyfqpQniA0rQNFPz3M3w7DMQv/rL/+ZoyGLG26IEt/Rc0R6VOCYXQjzUmnsgJbxLUezw/Ll9Gi5atePLpZ8/rXPKKKEQ9sW/fPgYPHsyYMWM4pVlpOmEGQYPvRLME6B1NCHEOKvOPkrvoZbwjWxBy6W1nvUfAp2UiWnkJZYd26JBQCP0pLxOBPcfQcNJMvJvG88TjjxAzZfGA6p7HyxXhhBDuo7S0lGeffZYXX3wRjCYiBt+GpeMQMBj1jiaEOEfOChs530xDGb0IHzX1LzdSsTSNR5nMlKatx9osoZZTCuE+vAIbEJb8KL6n5+RPAFZU63iXpBJCuIWUlBTuvvtuDhw4QECH/oT0m4BmlU0EhPAkmqaRt/R1KvOOEDHmKbwCI/7ysQaTGWuzLtjS1qNdeotMnRL1nrVZ5/M6Tn5yhKiDMjMzSUpKIikpiWybRpPxzxM89H5pjoXwQEWbvqF0z2qCeo/HGhP/j4+3xiXiKM6jImt/LaQTom6SEWQh6pDy8nJefPFFpk2bhkNThA+4EWvCCJRRftSF8ERlB7dxctWH+LTsRUCPy8/pGGtsN1AGStPWY45q6eKEQtRN8qr5D5xOJ3PmzOH119/g5VdeZWD/vnpHEgI4/bbrkSNHSE1NZevWraSmprJu/Xqyjh8noO0lhPS/Cc03RO+YQojzZC/MIWfh83gFNyR06L3nvHGP0eqPObo9tn3rCe493sUphaibpEH+G6mpqdx+++2sW7cOZTQx4vIxHNy3i4jwML2jiXrGbrezd+9eUlNTzzTEW7emkp+fd/oBSmEJbYQxvAVN+t2Bio6XvdiF8GCavYKc/zyLZq8gYvQjGMw+1TreJy6RkyvepTL/KKaQRi5KKUTdJQ3yWRQUFPDYY4/x1ltv4e0bSFTSA2hBjcma9yADR1/Hrz8vlS14hcuUlJSwffv2M6PCW7duZdv27ZRXbZ9p8PLGHN4UU5OuRPWIxRDeDENI02q/gAoh3Ff+D+9QcTyN8OSpmEKjq338bw1yadp6As9xaoYQ4v9Jg/w7mqYxf/58HnzwQbJzcgjsPJTAS8ad2XY36JJxbP/pQ/790ps8NfkundOKuiA7O/t/R4VTU0nbtw+n0wmAl9UPU0RzfDpdRlhULITEYAxpLHOKhajDilK/o/jX7wlIvBKflr3O6xxegRF4N4jFJg2yEOdFXmWr7Ny5kzvuuIOffvoJ38ataTrh0T9tuxvQYzS2zC1Me/Qhki8bQEL7tjqlFZ7G6XSSmZn5P6PCW7emcvz4sTOPMQdFYAxvTsjF12CJjEULicEYEC7vVghRj5Qf20v+D7OwxCQQdMl1F3Qua1wiBWs+wVF8EqOfrGAjRHXU+wa5uLiYp556ildeeQWD2YfIoXfh3f5StLOsHamUgbBh93N8zp0MHnklR/ekYjKZdEgtPMGxY8d48cUX2bx5M1tTUykuKgJObwdrCYvGGN6KyPbD8IpoBqHNMFr9dU4shNCTo+QUOf95DqNvCGFJk1EXuJmPT1wiBWvmU7p/A/7xQ2oopRD1Q71tkDVN4+uvv+a+++7jyJEjBMYPJrjP9f+47a5XQBghQ+4i5z/Pcc2t9/PVB2/UUmLhSQ4fPky/fv04cPAQ3pEt8G7Zm4ZRLVBhzTCERP/lLlhCiPpJczrIWfgCTlshDa59AaP1wreAN4XH4BXYAFvaemmQhaimetkgp6Wlceedd7Js2TJ8o1rQ9IYZ0KDlOd/179vqIso6DuLr2W/x5ajhXDlisEvzCs9y8OBB+vXrx9GsHBpf9zw0kHVIhRB/79RPH1F+aBuhQ+/DHNmiRs6plMIal0jR1sU4y0vlRl4hqqFe7aRns9l47LHHaN++PatWryVi0C2EXvfyeTUwwQNuwhQcxfjx48jJzXNBWuGJMjMz6dOnD8dO5BJ1zTPSHAsh/lHJ7tUUblyAX8Iw/DoMqNFz+7TsCQ47tswtNXpeIeq6etMgp6Sk0LZtW5555hksLS+i4U2zTu8wdp5zvAzeVkJHPEhZYT4DR1+Hpsmqs/Vdeno6ffr0ISv35OnmOLxmRoGEEHVXRc5B8pa+hrlha0IGTKrx85sbtcFgDaA0bV2Nn1uIuqzON8gHDhxg5MiRJCUlkWPTaDLueYKHPYBmvfA7es1RLQm65Dq2rf6OJ19+qwbSCk+VlpZGnz59yD5ZSNQ1z6KFxeodSQjh5pzlJeR8Mw3lbSFs1L9Qxpq/6VsZjFhbdMeW/guao7LGzy9EXVVnG+Ty8nKmTZtG27ZtWfr9csIHTCR03Kuohu1qtE5A99GYo9vz9COTSd25u0bPLTzD3r176dOnD7kFJaeb49AYvSMJIdycpjnJXTQDe8EJwkdOwcs/1GW1fOJ6opWXUHZoh8tqCFHX1MkGefny5XTs2JFHH30UU0wXGt08C5+uo13223nY8AfA4MXgpCuprJTf0OuTXbt20adPH06WlBE19lm0kKZ6RxJCeICCdV9g27+B4P6TsES3d2ktS0w8ymSmNG29S+sIUZfUqQb56NGjXHXVVQwaNIgj+SVEj32G4KQpaD6u+80cwCsgnJDBd5KdsZOxtz3g0lrCfezYsYN+/fpRUGYncuxzaMFN9I4khPAAtvRfKFg9H9+2ffHvPNzl9QwmM5ZmnbGlrUfTnC6vJ0RdUCca5MrKSl5++WVat27Ngv98S2if6wi7/g0M0fG1lsG39cX4dhjIVx+8yVeLltVaXaGPbdu20a9fPwrLnUSNfQ4tsLHekYQQHqDyVBa5KS9iioghZMidtbZTpk9cIo7iPCqy9tdKPSE8ncc3yD///DMJCQk8+OCDqKi2NJ40E7/Eq1Fe3rWeJWTgLXgFRzFunCz9Vpdt3bqVfv36UWJXRF37HM6AhnpHEkJ4AGdlGTnfTAMgPPkRDCZLrdW2xnYDZZBpFkKcI49tkE+cOMH48ePp06cPGcfzaDzmcYKTH0Pzb6BbJoO3lbARD1JWmMell4+Tpd/qoM2bNzNgwABsmonIsdNx+kfpHUkI4QE0TSP/uzepzD5A2IjJmIIia7W+0RqAObo9NmmQhTgnHtsgt2rVik8+/ZSQXlcRMeFNjM2619pbVX/HHNWSoIuv5defl/LUjLf1jiNq0MaNGxkwYABlykzk2Odw6vjLmBDCsxRtWUTJrlUEXjwWa2xXXTL4xCVSmXuIyvyjutQXwpN4bINsjoojetJM/C8ZB1619zbVuQjocTnm6PY8NfVBWfqtjli/fj2XXnoplV4+p5tjvwi9IwkhPETZ4R2c/PF9rC26E9jrKt1y+MQlAlCatkG3DEJ4Co9tkFve8DxaoHvO/fz/pd+MDB45RpZ+83Br165l0KBB2L39aTB2Ok7fcL0jCSE8hL0oj5xvp+MV2ICw4Q+glH4vu16BEXg3iJVpFkKcA49tkN1hOsXfObP0W/oOrr19st5xxHn6+eefGTx4MA5LIA2ueQ6ni5cMFELUHZqjktxvp6NVlBGePBWD2VfvSFjjEik/uhtHyUm9owjh1jy2QfYEvq0vxrf9QL784A2+Wrxc7ziimlatWsVll10GvqE0uGY6Tp8QvSMJITzIyR/fp/zobkIvuwfv8Bi94wC/TbPQKN2/Ue8oQrg1aZBdLGTgzXgFNmDcuHHk5uXrHUecoxUrVjB06FCUfwQRVz+L0xqkdyQhhAcp3r6Coi2LCeiWjG+bS/SOc4YpPAavwAYyzUKIfyANsosZzD6nl347lcOlV8jSb55g2bJlDB8+HENgJOFXT5PmWAhRLfaiPPKXvYW5SQeC+t6gd5z/oZTCGpeI7UAqzvJSveMI4bakQa4F5oatCLr4WlJXLeGpV2bpHUf8jaVLl5KUlIQxuBERV09DswTqHUkI4WGKtixCs1cSOuRulMGod5w/8WnZExyV2DK36B1FCLclDXItCUi84vTSb/96gF937dE7jjiLRYsWMWrUKLxCo4m46hmc5gC9IwkhPIyzoozi1KX4tOyJKdg9NxIyN2qDwRog0yyE+BvSINeS00u/3Q/KIEu/uaFvv/2W0aNH4x3RjPAxz+A0++sdSQjhgUp2/ICzrBj/bsl6R/lLymDE2qI7pemb0Bx2veMI4ZakQa5FXgERhAy+gxP7t3PdHbL0m7tYsGABV1xxBeYGsYRd+RSa2U/vSEIID6Q5HRRu+hbvqFaYG7XWO87f8onriVZeQtnhHXpHEcItSYNcy3zb9Ma3/QC+eP8NFiz9Qe849d6XX37JmDFjsDRsebo59tZ/nVIhhGey7d+I/dRxAronu/1a/ZaYeJTJjC1tnd5RhHBL0iDrIGTgLXgFRnDddePIy5fF2vXy2Wefcc0112Bt3IawK55E8/bRO5IQwoMVbvoGY0DE6Zvg3JzBZMbSrDOl+9bL6kpCnIU0yDo4vfTbZGwns7n0ivHy5KSD+fPnc+2112KNbkvYFU+gmax6RxJCeLDyY3spP7KLgK4j3XLlirPxiUvEUZxHRdZ+vaMI4XakQdaJuWErAi8ey9aVi3jmtXf0jlOvfPTRR4wbNw7fph0IG/0EmpdF70hCAKDZKynd91+Kt6/QO4qopsJN/0F5++DX8VK9o5wza2w3UAZKZTULIf7ES+8A9Vlg4pWUZW7hiSkPMGpwfzq0aal3pDpv9uzZTJo0Cb9m8YQkP4LmZdY7kqjnNE2j/OhuSnb+SOmeNTjLik9/3unAv9MgndOJc2EvyKZ071oCuo3CYPacqVpGawDm6HbY0tYR3Huc3nGEcCsygqyj00u/PQgoLh15JXa7LLfjKvn5+Tz55JPceOON+MV2JiT5UZCRY6GjyvyjnFo9n2Pv3sSJ+Q9RsmMlluZdiLjiCSwxCeQvf5vy4/v0jinOQeHmhQD4dxmhc5Lq84lLpDL3EJX5R/WOIoRbkQZZZ16BEYQMup0TadsYJ0u/1bjNmzczceJEGjVqxBNPPEFAm4sJGfUIyMix0IGjtICiLYs4/vEDHHvvFgr++xlegZGEDruPxnfOJXzEZKyxXQlLmozRN5icb57DUVqgd2zxN5zlJRT/+j0+rS/BKyBc7zjV5hOXCEBp2gadkwjhXmSKhRvwbdsHW+ZmPnvvda5KHsGoIf31juTRysrK+OKLL3jrrbfYuHEjXt4WfNv1o0GXYRAao3c8Uc9o9gpK92+kZOeP2DI2g9OBKTyGoL4T8W3bGy//sD8dY7QGEJ48lRPzHyJ34fNEjHnaY278qm+Kf12GVmEjoNsovaOcF6/ABpgimmNLW09gj9F6xxHCbUiD7CZCBt5K+ZFdjL32Wo7s301IcJDekTxOZmYm77zzDh988AG5ublYw6NpMPhWLG36gVnWNxa1R9OclB/ZRcmOHynZuxatvASjXwgBXUfi264f3hHN/vEc5sgWhAy6g7wlr3Dqp48I7jexFpKL6tCcDgo3L8Qc3R5zVJzecc6bT1wiBWs/xVFyEqNvsN5xhHAL0iC7CYPZh7DhD5I1/yEuvXwcm39M0TuSR3A6nXz//ffMnDmTxYsXgzLg2zKRJkPuh4Yd3H6xflG3VOYdpnjnSkp2rsJRmI0yWfBp1Qvfdv2xNOlQ7VFgvw4DqMjaR+HGBXhHtcS39cUuSi7OR+netTgKcwgZeKveUS6IT8tECtZ+Qun+jfh3Gqx3HCHcgjTIbsTcqDWBF13DlpXzefb1d5l69816R3Jb+fn5zJkzh7fffpv09HTM/iEE97qKgPjL0PxC9Y4n6hFHySlKdv9Myc6VVGSlgTJgiUkgqPc4fOJ6YvC+sJtBg/tPouJEBnlLXsUUGo13eNMaSi4uhKZpFG76Bq/ghlhbdNM7zgUxhTfDGNgAW9p6aZCFqCINspsJ7DmGssytPPbQfXTv2JrGkRG1VtvHx4fo6Gi3HnXdvHkzb731Fp9++illZWX4NmlHo+SHMcYmoowmZMsVURucleXY0tZTsnMltswtoDnxbhBLcP9J+Lbpg9Gv5t6mVkYTYSOncPyje8j5z7NEjZ+BQaYM6a786C4qjqcRMuh2lPLs+92VUvjEJVK0dQnO8lKPWqpOCFeRBtnNKIORsBEPcHzOXVzar0+t1/f1D6Bjx45079qF+Ph4EhISaNOmDd7e3rWe5Td/uunObMW3bT8adB0OITKaJmqHpjkpP7SD4p0/Urp3LVqFDaN/OAE9RuPbtp9LR3a9/EMJHzmFE589Qu7iVwhPnurxTZmnK9z4DQaLP77t68ZN1T5xiRT98i22zC0ylUcIpEF2S16BDYi8/lUcJ/ZjqMXRXGd5CZU5B9h6IJ31G2ehVZafzmPyplXrNnTrkkDnzp2Jj4+nU6dOBAQEuDRPZmYms2bN4oMPPiAvLw+fiCZy052oVZqmUZlzgJJdP1GyaxWOolyUtxWfVhfh164/5ibta61RtUS3J7j/JE7+8A6F674ksNdVtVJX/FnlyWPY0jYQ0HMMBlPdWE/d3LgtBmsAtrT10iALgTTIbssU3BBTcMNar2sB/Dl9d7b95HEqs9Nx5h7gQFY6e774hg8//PDMY6ObNqNrl8506ZxAQkIC8fHxREVFXdAUjb+86e6yYXLTnagVmqOSskM7sKVvpHT/RhwFJ0AZsDbvgm+/iVhb9MBg0mcdbf/Ow6k4vo9Tq+fhHdkCa/MuuuSo74p++RaMRgI6D9c7So1RBiPW2O6Upq1Dc9hRRmkPRP12Tj8BSqkDQBHgAOyapnVVSj0B3ATkVD1sqqZpS/7i+LuAO6qOX6xp2kO/+1oTYBfwhKZpL53ndYgapgxGTKGNMYU2Bvrgx+nRNEdxPpXZGThzMyk4kUHKj//lmwVfnzkuODSchPhOdO3S+UzTHBcXh9H493fvn/Wmu4uuxr/TEJCb7oSLOWyF2NJ/wbZ/A7bMLWgVNpSXGUtMJ6w9x+DTogdGX/2XXlRKETL4DipyDpCb8iKR17+KKShS71j1isNWRPH2H/Bt07dG55q7A5+WiZTs+IGywzuwxsTrHUcIXVXnV8R+mqbl/uFzr/xTU6uU6geMBDppmlaulPrjXWczgKXVyCF0opTCyz8UL/9QiO2GLxAMOMtLqcjOwJlzgMqcDNbuSGflqlVojtNbZ5utVtq170D3qqY5ISGB9u3bY7Va/3zTXdP2/3PTnRCuoGka9vwjlO7fiG3/BsqP7gHNidEvBN82vbG26IGlaUe3fPvcYLIQnvwIWR/eQ84304i87kW3zFlXFacuRassJ6C7Z24M8ncsMfEoLzO2tHXSIIt6rzbeQ7kNmK5pWjmApmnZv31BKTUKyARKqnvSE4VlNRZQXBiD2QdLdHuIbg9AIKffpq7MO0zFiUwqs9PZmZXB1jlz0WbNqjrIgCUgjLJT2RhMFnza9aVhwjBM57CBghDnQ3PYKT+6i9K0DdjSN2I/eRwAU0RzAntehbVFd7wjYz3i5jdTUCRhIyaT/dWT5H//FqHD7pfpR7VAc1RStGURlpgEvMNj9I5T4wwmC5ZmCZTuW0/wwFvle0rUa+faIGvAMqWUBryjadq7VZ+/Uyk1HvgFeEDTtJNnObYlcIlSahpQBjyoadompZQf8DBwKfBgdYObvQyU253VPUzUEmU04R3RHO+I5sAAoGrUruAElScyqMjOoDLvCMFdk/Fr31+WrRIu4SwrxpaxmdL9GynL+AVneQkYvbA06URA11FYW3S91HMUAAAgAElEQVTDK6D2llKsSdbYrgReci0Fq+fhHdWSgC4j9I5U55Xs/hlHcT6hl92jdxSX8YnriS1tPRVZ+z16d0Ah/uBwdQ9QmvbPK8cqpRppmna0anrEcuAuYC+Qy+nm+WkgStO0P+2FqpTaAawE7ga6AZ8DzYEXgY2apn1RNZ+5uJpzkGXJWyHEn6Snp7Nw4UJSUlJYvXo1drsdb78gzM27Eti6J6pRRwzeVr1j1ghNc5KzYBq2jF/4dsn3JA0eoHekOkvTNOLj49l/opCw69+os6OrDlshR964ju6jJrJhwXt6xxGiplT7B/acGuT/OeAszaxSKgZYpGlae6XUHCABOKZp2lCl1HfA85qmrax6bDqQCCwAoqtOEQQ4gcc1TXvzHKNIgyyEwOFwsH79+jNN8e7duwGwNojBEtsN/7geEBFX7W2ePYWzvISsj+7D4Chjz/ZfiWnSWO9IddKKFSsYOHAgUSPuxbvtQL3juFTWp/8CWyGlWZkYDHXzFwFR79R8g6yU8gUMmqYVVX28HHgK+FXTtONVj7kP6KFp2tVnOf5WoKGmaY8rpVoCK4Am2u8KywiyEKI6ioqKWLZsGQsXLmTxkiXk5eZiMBqxNumAX8seeDfrhiGw/qzuUJFzgKy5D9KweWsytm3QdWOfumro0KH8uGY9DW7+AOVVt/99C3/5lpMr3uObVZsY1aer3nGEqAnVbpDPZQ5yA+CbqreTvIBPNE37Tik1VykVz+lG9QBwy18cPxuYXTXVogK4XqvusLUQQgDZ2dlMnDiR5cuXU1FRgcnHH0uzrjTuk4iKjq+3c9m9w2MIveweji58nqTrbua7Lz7UO1KdsmvXLpYuXUpo7+vqfHMMp3fVO7niPWZ99Lk0yKLeqvYUCzfiscGFEOfnlltu4YPZcwjoMgL/lj0gsnWdnTpxPk6unE3hxgVMe/Vtpt5zq95x6oybbrqJOR/NpfHtc8Di2h1E3cWxOXdjtlopOrBD7yhC1ATXz0F2Ix4bXAhRffv27aNt27b4JwwjcMDNesdxS5rTwYnPH6Pi2B5W/rSaPr266x3J42VnZ9OkSRMsbfsTNOgOvePUmlNrPqFg7aes35FOj3ay/KbweNVukN1/wU8hhAAeffRRDF7eBPYao3cUt6UMRsKTHsJoDWBo0iiyc/64t5OorpkzZ1JeXk5wj2S9o9Qqn5aJgMbrcz7VO4oQupAGWQjh9n755Re+/PJLArolg1X/LZ/dmdE3iLBR/8J2KoeLBo/C4XDoHclj2Ww2Zs6ciV9cD7TAhnrHqVWm8GYYAxuwbMkivaMIoQtpkIUQbm/KlCmY/YLw61b3tvd1BXPDVgRfehv7t67lutvu1zuOx5o3bx45OTmEJI7WO0qtU0rhE5dI3r5fyDgm70SI+kcaZCGEW/vhhx9YsWIFAT3HgLeP3nE8hn+nwfh1Gsxn773OrI/kbfLqcjqdvPLKK/g0bAFRbfWOowufuEQ0RyWvffSV3lGEqHXSIAsh3JbT6WTKlClYQyKxdrxM7zgeJ2TgrXhHteTOWyaxZftOveN4lO+++47du3cT1D25zu6a90/MjdtisAbwzTf/0TuKELVOGmQhhNv66quv2Lx5M0EXX4vyMukdx+MoLxPho/4FRhP9Bw+nsLBQ70geY8aMGViCwvFqcZHeUXSjDEassd05un0NeUWlesehtLQUD155S3gYaZCFEG6psrKSRx99FJ/IZpha9dY7jsfyCggnLOlhCrIO0WfEGGkwzkFqaiorVqzAr/NwlPFc9tOqu3xaJuIsK2Hmpym6ZXA6nbz11ltERETQ/7IRlJeX65ZF1B/SIAsh3NLs2bNJS0sjpM942QzkAlmadiS47w2k/vw9dzz8hN5x3N6MGTPwMlvx6ThY7yi6s8TEo7zMfPrF17rUT09Pp3///tx55504A6JY9f1ievQbjM1m0yWPqD9koxAhhNspLS2lRYsWFJpCCL16er2dA1qTNE0jd+ELlO5dy6cLFnL1qGF6R3JLR48eJSYmBr+EoQT2lw1pALIXPENl1n6K8o5jMdXOiPpvo8ZTpkzBrilCBtyEd9sBFG9bRv53b9KmSyKbflqOr2/93F5eVJtsFCKE8HyvvfYax48fJ6zfDdIc1xClFKGX3Y0pNJrx145l7/4MvSO5pTfffBOH00lQ1yS9o7gNn7hE7EW5fLRwZa3U279/P3379uXuu+/G2LAtDSe9jbndQJRS+HcaTOjw+9m9ZQOdEvvIvHrhMtIgCyHcSn5+Ps8//zz+LXtAZBu949QpBm8r4clTcTjsXDJouLxN/QfFxcXMmjULv5Y90QIi9Y7jNqyx3UAZmPPJFy6t43Q6ee211+jYsSMbNm8lcsT9BI/+N5pPyP88zq9dP8KSHiJ9VyodelzCyZMnXZpL1E/SIAsh3Mr06dMpLCwktO94vaPUSaaQRoQOe4CczN0MvvJ6uWnvdz788ENOnTpFSOLlekdxK0afQMyN25K65gecTtd8v6SlpdGnTx/uvfdevBq3p9GNMzG37f+X7yD5tr6Y8FFTOZy2i3Zde5Gdne2SXKL+kgZZCOE2jhw5whtvvIF/+/5owU31jlNn+cT1ILDX1axe/CWPTn9V7zhuweFw8Oqrr+Ib3QYatNQ7jtvxietJefYBUtZsqdHz/vbv3qlTJzZuSSVqxP0EJz+O8w+jxmfP1IPw0Y+RdSiD9l17cfz48RrNJuo3aZCFEG7jySefpNLuIKT3dXpHqfMCL7oGS/MuPPfYQyxd8bPecXS3cOFC0tPTCe6erHcUt2SN6wHArI8+r7Fz7tu3jz59+nDffffh1bgDjW6cifffjBqfNVfzLkRc8QS5WUdo37Unhw4drrF8on6TBlkI4Rb27NnD7Nmz8U8YiuYXrnecOk8ZjIQNfxCjfxjJl1/O98uW43A49I6lmxkzZmANicTQvIfeUdySKSgSU0Qz1qxYesHncjgczJgxg06dOrFp6zaikh4kOPmxcxo1PhtL045EjHmaU7nZdOjWk/SMzAvOqIfjx4/zwgsvkJ+fr3cUgTTIQgg38cgjj2D0thDU6yq9o9QbRqs/4clTsVdUMGTwICIbRfPg5Mls375d72i1auPGjaxZswb/riNlze2/4ROXSPHBnWzYef4N6N69e7nkkkt44IEHMDXpRKNJM/Fu0/eCV6uxNG5LxFXPUFxYQHz3nuzes/eCzlebNE3j448/pm3btjz88MN06HaRzKl2A9IgCyF0t2HDBhYsWEBAt2Q0S4DeceoV74jmNLxtDmFJD1MWEM3LM16hY8eOtGrbgZdeeqlezOucMWMG3lY/LO0G6B3FrfnE9QQ0Xp/zabWPdTgcvPTSS8THx7Nl206iRk4meNSjOK3BNZbP3LAVDa5+FpvNRpeeF/Pr9h01dm5XOXbsGElJSVx//fXYAxrRYNg9HK+aU33s2DG949VrslGIEEJXmqbRv39/1m3+lchJ74C3j96R6jVHaQG2PT9TsnMVZcf2ogwGLurdl5sn3kBycjJ+fn56R6xRBw8eJDY2loBuowjoM0HvOG5N0zSOzrqR4Eax5Oz67zkft2fPHiZMmMD69evxb9WT0MG3o9VgY/xHFTkHyf7iUbwUrF75A926dHZZrfP126jxvffeS3FpGSF9x2PpNAxlMFJ2aBvZXz1FUFgEW9etpmnTJnrHrQtkoxAhhGdZtmwZq1atIrDXVdIcuwGjTyB+nUfQYNzLNJw0i6CeY9iQuovx48cTGh7BmGuu5fvvv68z85Vff/11NBSBsjHIP1JK4ROXSN6+X8g4lvuPj3c4HLz44ovEx8ezdfsuGo56mOCRU13aHAN4hzelwTXTcWDkot59Wbt+g0vrVdfRo0cZPnw4N9xwA/bAxkTf+AbWhKQz03ssTU7PqS7Iz6Vjt57sT5dNffQgI8hCCN04nU66dOnC3kNZhE98G2U06R1JnIWmaZQf3UX5rlUU7l6Ns6yY4LAIxl03lgnXX0+nTp08csfDgoICoqOjoUkXQoY/qHccj1B2aBsnPp3K3c++zWv/uvUvH7d7924mTJjAhg0b8G/Vi9DBt7m8Mf6jylNZZH/2CJQX893SJQzo27tW6/+Rpml8+OGH3HfffZSWlRPc53os8cNQ6uxjleXH08j+4jGsPr5sXLOKtm1a13LiOkVGkIUQnuPzzz8nNTWV4EvGSXPsxpRSWBq3I3DQHTS+Yy7ho6ZiD43l9dffJCEhgbjW7Zg+fTpHjhzRO2q1vP/++xQVFRGaKEu7nStz43YYLP58881/zvp1u93O888/T0JCAqk799Aw+WGCR/6r1ptjOL3yRoOx01E+gQwePIQly1fUeobfHDlyhKFDhzJx4kQcwU1odONbWBNG/GVzDGCOiqPBNc9SVmaja8+L+XWb+8+prktkBFkIoYuKigratGlDVimEjX/1b18ohHty2Aqx7V1D6c5V2I7sQilF4sW9uXniDVx++eX4+/vrHfEv2e12mjdvTr4xmLCrntU7jkfJXfwKtv3ryc7OJtT//6dF7dq1ixtuuIFNmzbh3/oiQgfdhmYN0jHpafbifHI+fxR7wQm+/OprRicNq7XamqYxe/Zs7r//fkrLKwjpOwFLp8uq9XxXkXuI7M8fwQuNn1euoHtX95tT7QFkBFkI4Rnef/99MjIyCO17vTTHHspoDcAvfigR175Aw5vfI/jisfyyYx8TJkwgLDyC0VeOYcmSJdjtdr2j/slXX33F4cOHCekho8fV5ROXiLOshJmfpgCnf9mYPn06CQkJbNudRsPR/yI4aYpbNMcAXn4hRFzzHF7BDblidDKffPlNrdQ9dOgQQ4YMYdKkSThDmtH4xrew/s2Uir/iHdbk9Jxq5cXFffqy+r/rXZRY/J6MIAshal1xcTEtWrSgxBJOyFXPeeT8VXF2mqZRcWwvZbtXUrjrZ5y2IgJDwrh27DVMuH48Xbp00f3/t6ZpdO/enZ0HTxA+4S35Ba2anJVlHHn9Wlr3SeKLVx9nwoQJ/PLLLwS0vYSQS29FswTqHfGsHLYicr54nIrsDN7/aC4Tr7vGJXU0TeODDz7g/vvvp6zCTnC/CVg6Drng77PKU1nkfP4oWlkRS5csZmC/PjWUuF6o9pOONMhCiFo3bdo0Hn30UZpOmAERLfWOI1xEc1Riy9hM2e5VFO9bj+aw0zQ2jpsmXM/VV19NbGysLrlWr15N7969iRx6J+YOQ3TJ4OmyFzxD+cFf8cKBwexLyKW3YYrrpXesf+QsLyHnyycoO76XN9/5gDsm3VCj5z906BCTJk1i+fLl+DXrRPjQe3D6RdTY+e2FuWR/PhVn8Um+TVnIsEEDa+zcdZw0yEII95aXl0fz5s3RotoRMuoRveOIWuIsK6Z07xpsu1ZReuj0zUbN41pxRfJIRo4cSY8ePTAaa2cXu+TkZJb+sJIGN3+AMllqpWZdU7LrJ3JTXsSvzSWED7oNpwdt8OOssJHz9VOUHd7Bi6+9xYN33XbB59Q0jffee48HH3yQskoHIf0mYO4w2CXvTpyZU30qiy+++prLRw6v8Rp1kDTIQgj39sADD/DKq6/S9Ka30IKi9Y4jdGAvOEHZ/vWUpW+i5OB2cDoICA5hxLBhjE4exaBBg1y2IUlaWhqtWrUiuNdV+F98nUtq1AeapmEvOIEpKFLvKOfFWVlG7jfTsGVu5cnnZ/D4Q/ed97kOHjzIpEmT+OGHH/BrnkD4ZXfj9AuvwbR/5igtIPuLx6jMPczH8z/luqsud2m9OkAaZCGE+zp06BBxcXFYWvcm+LJ79Y4j3ICzvARbxmYqMzdRlLYJZ1kxXiZvLu7dmytHJzNixIjTaxXXkDvvvJNZ77xL49tmg0/tLz0m3IdmryTn2+ew7d/Iv558lmcf/1e1jnc6nbz77rtMnjyZcruTkH4Tq0aNa2eOvaOs+PSc6hPpvDv7IyZdf22t1PVQ0iALIdzXxIkT+XjuPKJveQ/NL0zvOMLNaE4H5Ud2nW6W962nMv8YAK3atufK0aNISkqiS5cuGAzn97Z1fn4+0dHReLW4iODL7qnJ6MJDaY5KclNeonTvWu55+DFenf7UOR2XmZnJpEmT+PHHH0+PGg+9G6eva0eNz8ZZXkrOV09QdnQPr7/9HnfdMrHWM3gIaZCFEO5p165ddOjQgYCuSQT2m6R3HOEBKvOOUJ6xkdL9G7Ed3gWak5CwCEaNTGLUyCQGDBiAj8+5b0/+3HPPMXXqVJreNBNCmrgwufAkmtNB3pJXKdm5kpvvmcysV57/y1Fgp9PJrFmzeOihh6hwQmi/G/Fuf6muK7OcnlP9NGWHt/PCq28x+e4Ln1NdB0mDLIRwT6NGjWLpsh+IuvldcNNloIT7ctgKKcvYTEXGRor3/4Kzwoa32ULf/gO4Inkkw4cPJyoq6i+Pr6ioICYmhiKfKEKvOLdRQlF/aE4H+d+/RfG2ZVx30518/M7rf2p6MzIyuPHGG1m1ahV+sV0Iv+wunL7u8U6Ys7Kc3P88iy1jM0889zL/nnK/3pHcjTTIQgj3s27dOnr16kVon3H4JV6ldxzh4TRHJWWHd56eirF3PfaCEwB0iO/MFckjSUpKolOnTv/T4Hz88cdcf/31RI99BkN0vF7RhRvTNCcnf3iHoi2LuWLcJD7/8B0MBgNOp5OZM2fy8MMPY9cUIf0n4d1uoO7ref/R6TnV07Ht38DD/57G9Cem6h3JnUiDLIRwL5qm0bdvXzam7qDBpHfAZNU7kqhDNE2jMvcg5ekbse3fiO3YXtA0IqIakVw1FaNv37706NGD/SeKCLv+zyODQvxG0zROrZxN4aZvGHbldbwy7XFuuukmfvrpJ/xbdCXssrtw+oTqHfMvaQ571ZzqNdw1+RFef+EZvSO5C2mQhRDuZcmSJQwbNowGQ27D0mmY3nFEHecoOUlZxi+Up2+iOGMzWmU53mYLFeVlRI24D++2A/SOKNycpmkUrJ5HwbrPUUphsvgQMuBmvNv294hfrn4/p3rSXQ/w7msvekTumnb06FEWLVpESkoKixYtkgZZCOE+nE4nCQkJpB3NPb2lr9GkdyRRj2j2CsoObqMicyOVxacIHT4Z5SXfg+LcFG76D5VZaYQNuBHNJ0TvONWiaU7yv3uT4m3LGHvj7cx778063yRrmsbWrVtJSUkhJSWFzZs3A2AJiaLBTe89fWD6sMercz4vl6QUQgjg008/Zdu2bTRMfliaY1HrlJc31tiuWGO76h1FeKCAbqMAzxyNU8pAyJA7UV7efPLBTMrKbHz58fvnvUSiuyorK+PHH3883RQvWsTRI0dAKXwatyG8/wQssd1QwdEAzat7bmmQhRAuUVFRwWOPPYZvVAu84i7SO44QQtQrShkIHngLysubBfPnMKK8nIWffVxrW7q7yokTJ1i8eDEpKSksW7aM0tJSvMxWLDEJNEwag7FpZww+QRdcRxpkIYRLvPPOO2RmZhJ9zdMoVbdGLYQQwhMopQjqOwHlZWbJV58waGQZ3//nc7y8PKf90zSNHTt2nJk6sWHDBjRNwxwUgaV1P6JbJaIatkN5eddoXc/5FxJCeIyioiKefvpp/GI6omRJLSGE0I1SiqBLrkV5mfhx8cf0HTqKHxctwNu7ZhvKmlRRUcFPP/1ESkoKC1NSOHjgAAA+jVoR2vs6fFp0h9AYl86rlgZZCFHjXnnlFXJycogZ/i+0On5jiBBCeILAnmNQXt6sXf4+Fw0cxuplKVgsFr1jnZGXl8eSJUtISUnhu+++o6ioCKPJjCUmnqjhI/Fq2hmDX+0tsScNshCiRuXk5PDiiy/i37oXWkRLveMIIYSoEtBtFMrLm1+WzaR730Gs//G7am3XXpM0TWPv3r1npk6sXbsWp9OJOSAEc2wvolslQqMOGEz6NPHSIAshatS0adMoKS2laZ/xHnn3txBC1GX+CUNRRi+2L32DLhcP4NvPPqrVOcmHDh060xSnpaUBYI1sTnCvq/CN6wHhzd3ivhVpkIUQNebAgQO8/fbbBHQciBbUWO84QgghzsKv4yCUlzd7Fs2gVatWtV7f4GXC2rQTUZfdgVdMFwwBEbWe4Z9IgyyEqDH//ve/cWgQdPFYvaMIIYT4G75t++IV0hjyD1Obt4oYLH4YGrbDYNZnase5kgZZCFEjtm/fzty5cwnqMRp8w/SOI4QQ4h+YI1tAZAu9Y7gl/Sd5CCHqhKlTp2Ky+hKQeKXeUYQQQogLIg2yEOKCrVmzhkWLFhHQ/XIw++kdRwghhLgg0iALIS6IpmlMmTIFS0AoPp1H6B1HCCGEuGDSIAshLsiiRYtYu3YtgRddg9JpvUohhBCiJkmDLIQ4bw6Hg6lTp2INa4S53UC94wghhBA1QhpkIcR5OXXqFE899RQ7duwgpPc4lFEWxRFCCFE3yCuaEOKcVVRU8N133zF37lxSUlIoLy/Hr3lnjC166R1NCCGEqDHSIAsh/pamaWzYsIF58+bx2WefkZeXh7dfENYOg2nQoT+Ex6Jqc5V5IYQQwsWkQRZCnFVGRgbz5s1j3rx5pKWlYTSZ8YnrQfTA/qjoeJlSIYQQos6SVzghxBn5+fl88cUXzJs3j7Vr1wLgG9ORqBH3YortiTL76pxQCCGEcD1pkIWo58rLy1myZAlz585l8eLFVFRUYI1oSni/CVjb9Eb5h+sdUQghhKhV0iALUQ9pmsZ///tf5s6dyxdffMHJkycx+4fgEz+UyA4DIDRG5hULIYSot6RBFqIeSUtLOzOvOCMjA6O3GZ+4nkQPGYBq3BFlMOodUQghhNCdNMhC1HG5ubl8/vnnzJ07lw0bNoBS+MbE03DkAxib9cBg9tE7ohBCCOFWpEEWog4qKysjJSWFuXPnsnTpUux2Oz6RzQkfeCPWVpeg/ML0jiiEEEK4LWmQRb2gaRp79+7FbrfTrl27Ojm/1m63s2bNGubPn8+XX35JQUEB5sAw/LuOJKB9fwhtqndEIYQQwiNIgyzqrMrKSlavXk1KSgoLFy4kIyMDgMhG0SSPTGLUyCT69OmD2WzWOen5Kygo4LvvviMlJYXFS5Zw6uRJvMxWfFr2oknHAdCwncwrFkIIIapJaZqmd4bz5bHBheucPHmSpUuXkpKSwpKlSyksKMBo8sbSpCMBrRKxa4qy9I0UZ6Si2cux+voxaNAgRo8aydChQwkLc/+pBxkZGaSkpJCSksJPP/2E3W7H2y8Ic7OuBLbugWqcgMHbondMIYQQwl3MPzB92HXVOUAaZOHx0tLSzowSr1mzBofDgbd/cFXDmIhq1BGDt/V/jnFWllF28FcqMzZRlLYRR3E+ymCgS7ceXDl6FElJSbRq1cotpmI4HA42btzIwoULSUlJYefOnQBYI5piie2OX8vuqIiWMlIshBBCnJ00yKLus9vtrFu37swo6p49ewCwNojBGtsd35aJqIgWKGU4p/NpmpOKrHQqMjZSkraB8hOnp2I0btqMy0eNZNSokVx00UWYTCaXXdMfFRcXs3z5chYuXMiixYvJzcnBYDRije6AX8vumJt3RwVG1loeIYQQwoNJgyzqpsLCQr7//ntSUlJYtHgxJ/PzMRi9sDbpgH+rHphiumKooYbRXphNWfomytM3UXIgFc1hx9c/kMsuG8LlyaMYMmQIQUFBNVLr9w4fPsyiRYtYuHAhK1eupLy8HJPVH0vzLgS2SkRFx2Ow+NV4XSGEEKKOkwZZ1B0HDhw4M0q8atUqKisrMfkGYGnWhcDWPVGN412+hq+zwkbZga1UZGyiOG0jjtICjEYvevTsxZWXJzNixAhiY2PP79xOJ1u2bDkzPSQ1NRUAS2gjLC264x+XiIpshTLKvbRCCCHEBdCnQVZKBQHvA+053bhOBAYDNwE5VQ+bqmnakgsu9v+kQa5jnE4nGzduPNMUb9++HQBreHTVXNseqAatdJtrqzkdlB/bR2XmRorTNlKRcxCAZi1acsXoUYxMSiIxMRGj8a/z2Ww2VqxYcbopTkkh6/hxlDJgjW6DX1wi5thuqKBGbjH3WQghhKgjdGuQPwJWa5r2vlLKG/AB7gWKNU176W+OewI4oGnah+dRVhrkOqCkpITly5efmTqRfeIEymDEGt0W/7geeDfvjiG4od4xz6ryVBbl6RsoS99EycHt4HQQEBzCiGHDSB41kkGDBuHv709WVhaLFi0iJSWF5cuXY7PZ8LL4YInpTGDrRAzRCRh8AvW+HCGEEKKuqnaDfMHv3SqlAoHewA0AmqZVABWuHgGLapfo0vML13NUVpCXuROnvQKD2RdLs86Edx+HuVkXjFZ/veP9I1NQJKYuI/HrMpKQ8hJsGZuxpW/k06++Yf68uSijCb/wRhRlHQDAKzACa5sBRMb1wDu6PcpYezf9CSGEEOLc1cTkxmacnkYxRynVCdgM3FP1tTuVUuOBX4AHNE07WQP1AMg/eaqmTiV0opTCt9MQrHE9sDRu59FzbQ1mX3zb9Ma3Te/TUzGO7saWtoGKnAMEXXIJ1rgemMKaytQJIYQQovblVveAC55ioZTqCqwHLtI0bYNS6jWgEHizKpAGPA1EaZo2USnVAZhbdXgkUAHkV/19gKZpeedSt8Lu1GyVjgvKLvRnMioM0jQKIYQQwkVaP/ad8cD0Yc7qHFMTDXIksF7TtJiqv18CTNE0bdjvHhMDLNI0rf0fjn0CmYMshBBCCCFcp9ojcee2k8Lf0DQtCzislGpV9akBwC6lVNTvHpYM7LjQWkIIIYQQQrhaTU36vAuYX7WCRQYwAXhdKRXP6ZHeA8AtNVRLCCGEEEIIl5GNQoQQQgghRF1W+1MshBBCCCGEqEs8tkFWSt3C6d8Iau1Pbdes6/XqwzXKv6nn15NrlHqeUrOu15NrlHoXUPNmqsljG2Sg2hfrgTXrej09atb1enrUrOv19Kgp1+j59fSoWdfr6VFTrrJe8AUAAAhuSURBVNHz651XTU9ukIUQQgghhKhx0iALIYQQQgjxO57cIL9bD2rW9Xp61Kzr9fSoWdfr6VFTrtHz6+lRs67X06OmXKPn1zuvmp68zJsQQgghhBA1zpNHkIUQQgghhKhxHtkgK6WGKKX2KqX2K6Wm1EK92UqpbKWUy7fLVkpFK6VWKqV2KaV2KqXuqYWaFqXURqXUr1U1n3R1zaq6RqXUVqXUolqqd0AptV0plaqU+qUW6gUppb5SSu1RSu1WSvV0Ya1WVdf1259CpdS9rqr3u7r3VX3P7FBKfaqUsri43j1VtXa66vrO9vOulApRSi1XSqVV/TfYxfWurLpGp1Kqa03V+pt6L1Z9n25TSn2jlAqqhZpPV9VLVUotU0o1dGW9333tAaWUppQKc2U9pdQTSqmjv/uZHFpT9f6qZtXn76r6f7lTKfWCK+sppT7/3fUdUEql1lS9v6kZr5Ra/9vzuFKqu4vrdVJKrat67UhRSgXUYL2zvt676vnmb+q58vnmr2q65Dnnb+pV//lG0zSP+gMYgXSgOeAN/Aq0dXHN3kBnYEctXF8U0LnqY39gXy1cnwL8qj42ARuAxFq41vuBT4BFtfS9cwAIq41aVfU+AiZVfewNBNVSXSOQBTR1cZ1GQCZgrfr7F8ANLqzXHtgB+ABewA9ACxfU+dPPO/ACMKXq4ynA8y6u1wZoBawCutbC9Q0CvKo+fr4mr+9vagb87uO7gVmurFf1+Wjge+BgTT4X/MX1PQE8WJP/judQs1/Vz4W56u//1965hVhVhmH4+cqCnEJK0qwpFNEIIjRJojyEVqiFllEUBoXdZAXpRYEZQkQgpNVdQVlBmp00s4tq7GTdZKZlaZpZmY7paOeD4PHt4v93rabZWyfWt6ap74HNXntmmGfWmr3f//tPe/fxvqaF788DZldwji3A+Hw8AXjb2bcKGJ2PpwL3lujrsL33ypsGPs+8qed0yZwGvk7nTXccQR4ObJb0paR9wDPAJE+hpHeA7z0dBdcOSWvy8S/ABlIh4umUpF/zw2PyzXVxupk1A5cBj3l6ugoz60UK2/kAkvZJ+rEi/VjgC0lfV+DqARxnZj1Ihes3jq6zgJWS9kg6AKwAJpctqfN6n0Tq8JDvr/D0Sdog6bOyHEfga8nXFOA9oLkC58+Fh02UmDkNMvtB4M4yXYfxuVHHOQ2YI2lv/pldzj4gfQoDcA2wqCxfA6eA2ihuL0rMnDq+wcA7+Xg5cFWJvnrtvUve1PM55009p0vmNPB1Om+6Y4F8GrCt8LgV5wKyqzCz/sBQ0oiut+voPD22C1guydv5EKmhOuTsKSKgxcxW2z/4VJ1OMgDYDTxhaRnJY2bW5OyscS0lN1QdIWk7MBfYCuwAfpLU4qhcB4w0s95m1pM0enS6o69IX0k78vFOoG9F3q5gKvBKFSIzu8/MtgFTgNnOrknAdklrPT3tuC1P6z5e5rKcBgwmvUZWmtkKMzuvAifASKBN0ucVuKYD9+fnzVxgprNvPX8Owl2NU+a0a+/d86bK+uIInC6Z097X2bzpjgXy/wIzOx5YDExv1/NxQdJBSUNIvbjhZna2l8vMLgd2SVrt5ajDCEnnAuOBW81slKOrB2mq7mFJQ4HfSFNlrpjZscBE4PkKXCeSGo4BwKlAk5ld7+WTtIE0FdcCvAp8BBz08jX4O4TzDEtXYWazgAPAwip8kmZJOj37bvPy5A7VXTgX4e14GBgIDCF1IOdV4OwBnAScD9wBPJdHd725jgo65ZlpwIz8vJlBnqVzZCpwi5mtJk3Z7ytb0Ki998ibquuLRk6vzOnI19m86Y4F8nb+2oNrzl/7z2Bmx5D+sQslLanSnZcBvAWMc9RcCEw0sy2kJTJjzGyBow/4Y8SzNu34Imm5jhetQGthJP4FUsHszXhgjaS2ClwXA19J2i1pP7AEuMBTKGm+pGGSRgE/kNaXVUGbmfUDyPelTV3/WzCzG4HLgSm5Ua6ShZQ4dd0BA0kdubU5d5qBNWZ2ipdQUlseeDgEPIpv3tRoBZbkZXPvk2boStuM2BF5edVk4FlPT4EbSFkDaSDA9bpK2ijpUknDSJ2AL8r8/XXae7e86Yr6op7TK3OO4ByPKG+6Y4G8ChhkZgPyaNm1wLIu/ptKI/f25wMbJD1QkfPk2g5SMzsOuATY6OWTNFNSs6T+pP/fm5LcRh4BzKzJzE6oHZM2CLi9K4mkncA2Mzszf2ks8KmXr0CVIzlbgfPNrGd+3o4lrfdyw8z65PszSI3y056+AstIDTP5/qWKvJVgZuNIS54mStpTkXNQ4eEkfDPnE0l9JPXPudNK2siz08tZK3AyV+KYNwWWkjbqYWaDSZuDv3V2XgxslNTq7KnxDTA6H48BXJd1FDLnKOBu4JESf3e99t4lb7qovujQ6ZU5DXydzxuVsGuw6htp7eEmUk9uVgW+RaQpsv2kYL3J0TWCNJ3yMWkK+SNggvP5nQN8mJ3rKHkn8mHcF1HBu1iQ3vVkbb6tr+h5MwT4IF/XpcCJzr4m4DugV4X/v3ty0KwDniLvnnf0vUvqaKwFxjo5/vZ6B3oDb5Aa49eBk5x9V+bjvUAb8JqzbzNpb0ctc0p7R4kGzsX5efMx8DJpI42br933t1Duu1h0dH5PAZ/k81sG9Kvgmh4LLMjXdQ0wxvuaAk8CN5d5boc5xxHA6pwBK4Fhzr7bSfXGJmAO+QPWSvJ12N575U0Dn2fe1HO6ZE4DX6fzJj5JLwiCIAiCIAgKdMclFkEQBEEQBEHgRhTIQRAEQRAEQVAgCuQgCIIgCIIgKBAFchAEQRAEQRAUiAI5CIIgCIIgCApEgRwEQRAEQRAEBaJADoIgCIIgCIICUSAHQRAEQRAEQYHfASc21mIDBRCFAAAAAElFTkSuQmCC" /></div>
</div>
<div class="nb-cell nb-markdown-cell">
<p>Much better in my opinion.</p>
<p>So, what does this joy plot tell us?</p>
<ul>
<li>Most transactions are made between 8 AM and 10 PM, almost no one buys between 2 AM and 6 AM.</li>
<li>Older (65+) people don&#8217;t buy after 11 PM while the youngest bracket (18-24) continues buying until 3 AM.</li>
</ul>
<p>While I agree that this plot didn&#8217;t teach us something extremely interesting or new, it is a good example of what&#8217;s possible with a few lines of code and Jupyter Notebook (or any other similar tool).</p>
<h2>Working with raw hit-level Google Analytics data</h2>
<p>While connecting Jupyter Notebooks directly to your Google Analytics view is enough for many use cases, having access to raw hit-level Google Analytics data opens completely new opportunities for more advanced analysis.</p>
<p>To gain access to raw hit-level Google Analytics, one can use a tool like <a href="http://reflectivedata.com/analytics-data-pipeline/">Marketing Data Pipeline</a> to send data into BigQuery. Python has a library for connecting to BigQuery which makes it easy to explore and visualize based on raw data and metrics calculated based on your own criteria.</p>
<p>Besides other use cases, having access to raw hit-level data enables you to get a complete overview of the user journey, calculate metrics like LTV and use your own models for marketing channel attribution (Markov, ML-based, FPA etc.).</p>
<p><a href="http://reflectivedata.com/why-every-business-needs-a-marketing-data-warehouse-and-how-to-set-one-up/">Learn more about the benefits of having a marketing data warehouse.</a></p>
<h2 id="conclusion">Conclusion</h2>
<p>Combining powerful tools like Google Analytics, Python and Jupyter Notebooks gives you the flexibility and options you probably didn&#8217;t even dream about. The first time I got to play around with these three together made me feel like a little child, like I had discovered something really-really cool (and it is).</p>
<p>I hope this was enough to get you excited and that you will now go and try doing it on your own. And as always, your comments, questions and suggestions are welcome in the comments below.</p>
</div>
</div>
</div>
</div>
<p>The post <a href="https://reflectivedata.com/working-with-google-analytics-data-using-python-and-jupyter-notebooks">Working with Google Analytics Data Using Python and Jupyter Notebooks</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://reflectivedata.com/working-with-google-analytics-data-using-python-and-jupyter-notebooks/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
		<item>
		<title>Jupyter Notebooks in WordPress</title>
		<link>https://reflectivedata.com/jupyter-notebooks-in-wordpress/</link>
					<comments>https://reflectivedata.com/jupyter-notebooks-in-wordpress/#comments</comments>
		
		<dc:creator><![CDATA[Silver Ringvee]]></dc:creator>
		<pubDate>Sat, 12 Oct 2019 20:48:25 +0000</pubDate>
				<category><![CDATA[Jupyter Notebook]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[notebook]]></category>
		<guid isPermaLink="false">http://reflectivedata.com/?p=3562</guid>

					<description><![CDATA[<p>While it might look like a normal WordPress blog post (like all the previous posts on our blog), you are actually looking at a Jupyter Notebook.</p>
<p>In this first proof-of-concept blog post/Notebook, we are showing you how Notebooks work and a few cool things you can accomplish with them.</p>
<p>The post <a href="https://reflectivedata.com/jupyter-notebooks-in-wordpress/">Jupyter Notebooks in WordPress</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="notebook-container show-input-blocks">
<div class="nb-notebook">
<div class="nb-worksheet">
<div class="nb-cell nb-markdown-cell">
<p>While it might look like a normal WordPress blog post (like all the previous posts on our blog), you are actually looking at a Jupyter Notebook.</p>
<p>If you are not familiar with <a href="https://jupyter.org/">Jupyter Notebooks</a> then here&#8217;s what you need to know about them:</p>
<blockquote>
<p>The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text. Uses include: data cleaning and transformation, numerical simulation, statistical modelling, data visualization, machine learning, and much more.</p>
</blockquote>
<p>In this first proof-of-concept blog post/Notebook, we are showing you how Notebooks work and a few cool things you can accomplish with them.</p>
<h2 id="why-are-we-doing-this">Why are we doing this?</h2>
<p>The reason we are testing with &#8220;blogging using a Jupyter Notebook&#8221; is that it allows us to share our code example and analysis done in Python more easily and in a more repeatable way.</p>
<p>At Reflective Data, we are using a lot of Python in all steps of data analysis. Jupyter Notebooks is a tool we use to run and share our code both internally and with our clients. Why not leverage the same workflow in our blogging efforts as well, we thought.</p>
<p>Our plan is to create a series of useful tutorial-type blog posts where we show you how to use Python (and Notebooks) in your everyday work as a digital analyst. We are going to pull data from Google Analytics, testing tools and databases, then run all sorts of analysis and visualizations using this data (and Notebooks).</p>
<h2 id="how-are-we-doing-this">How are we doing this?</h2>
<p>Since sharing Notebooks is all about repeatability, we thought it will be wise to also share how we managed to turn Notebooks into a WordPress blog post.</p>
<p>While you can host and run <a href="https://jupyter.org/">Jupyter Notebooks</a> both locally or on the cloud, we&#8217;ve found <a href="https://colab.research.google.com/">Colaboratory</a> by Google to be the best solution when it comes to (as the name suggests) collaborative coding. That&#8217;s why we are mostly using Colab when working with Notebooks.</p>
<h3 id="turning-a-notebook-into-html">Turning a Notebook into HTML</h3>
<p>The first step in the process of sharing your Notebook on WordPress would be turning your Notebook from <code>ipynb</code> format into HTML.</p>
<p>The hosted version of Jupyter Notebooks comes with a handy &#8220;Download as HTML&#8221; option built-in. Colab, unfortunately, doesn&#8217;t have this feature. So, we found a workaround which also allowed us to semi-automate the whole process.</p>
<p>We are using <a href="https://developers.google.com/drive/api/v3/reference">Google Drive&#8217;s API</a> to load the <code>ipynb</code> file from Drive (Colab hosts Notebooks on your Drive) and then using <a href="https://github.com/jsvine/nbpreview">nbpreview</a> to turn it to HTML. We haven&#8217;t yet done so, but the plan is to build a WordPress plugin that would take a Colab Notebook&#8217;s ID and then automatically turn it into HTML.</p>
<h3 id="teaching-wordpress-how-to-render-a-notebook">Teaching WordPress how to render a Notebook</h3>
<p>Currently, we simply paste the HTML version of the Notebook into WordPress blog post using a text-edit-mode. This will soon be handled by the plugin we mentioned in the previous step.</p>
<p>Everey blog post that contains a Notebook will receive a tag &#8220;notebook&#8221;. Using this tag we can then tell WordPress to load some extra CSS to properly render the Notebook.</p>
<p>We are currently doing this in a few lines of code in our <code>functions.php</code> file.</p>
<pre><code>add_action('wp_head', 'load_notebook_styles');
function load_notebook_styles() {
    if ( has_tag( 'notebook' ) ) {
        wp_enqueue_style( 'notebook-css', get_template_directory_uri() . '/notebooks/notebook.css' );
        wp_enqueue_style( 'notebook-prism-css', get_template_directory_uri() . '/notebooks/prism.css' );
    }
}</code></pre>
<p>Here are the CSS files we load:</p>
<ul>
<li><a href="http://reflectivedata.com/wp-content/themes/reflective-data/notebooks/notebook.css">notebooks.css</a></li>
<li><a href="http://reflectivedata.com/wp-content/themes/reflective-data/notebooks/prism.css">prism.css</a></li>
</ul>
<h2 id="whats-possible-with-notebooks">What&#8217;s possible with Notebooks?</h2>
<p>So, now that you have at least a basic knowledge of what a Notebook is and how we managed to turn them into WordPress blog posts, let&#8217;s see what you could actually accomplish with them.</p>
<p>Them main thing, of course, is that you can run Python code and immediately see the output.</p>
<p>Here&#8217;s a very basic example:</p>
</div>
<div class="nb-cell nb-code-cell">
<div class="nb-input" data-prompt-number="1">
<pre class=" language-python"><code class=" language-python" data-language="python">x <span class="token operator">=</span> <span class="token number">5</span>
<span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span>x<span class="token punctuation">)</span><span class="token punctuation">:</span>
  <span class="token keyword">print</span><span class="token punctuation">(</span>i <span class="token operator">*</span> <span class="token string">'*'</span><span class="token punctuation">)</span></code></pre>
</div>
<div class="nb-output" data-prompt-number="1">
<pre class="nb-stdout">*
**
***
****
</pre>
</div>
</div>
<div class="nb-cell nb-markdown-cell">
<p>Awesome, right?</p>
<p>Now, the only limits you really have are your creativity and Python skills. In the upcoming blog posts, our goal is to get you better at both by showing some cool and useful things we are doing using Python and Jupyter Notebooks.</p>
<p>While the first Python script was quite useless, let&#8217;s try and load in some real data from Google Analytics.</p>
<p>First, let&#8217;s import our required dependencies.</p>
</div>
<div class="nb-cell nb-code-cell">
<div class="nb-input" data-prompt-number="0">
<pre class=" language-python"><code class=" language-python" data-language="python"><span class="token keyword">import</span> pandas <span class="token keyword">as</span> pd
<span class="token keyword">import</span> json
<span class="token keyword">import</span> requests</code></pre>
</div>
</div>
<div class="nb-cell nb-markdown-cell">
<p>There are many ways you can pull data from Google Analytics but one of the simplest is by using the API Query URI that you can grab from the <a href="https://ga-dev-tools.appspot.com/query-explorer/">Query Explorer</a>.</p>
<p>In this example, we are loading the number of Sessions and Users per day for the last 30 days.</p>
</div>
<div class="nb-cell nb-code-cell">
<div class="nb-input" data-prompt-number="3">
<pre class=" language-python"><code class=" language-python" data-language="python"><span class="token keyword">from</span> getpass <span class="token keyword">import</span> getpass <span class="token comment"># required only for hiding your variables</span>

api_query_uri <span class="token operator">=</span> getpass<span class="token punctuation">(</span><span class="token string">'Enter API Query URI here'</span><span class="token punctuation">)</span> <span class="token comment"># get the URI</span>
r <span class="token operator">=</span> requests<span class="token punctuation">.</span>get<span class="token punctuation">(</span>api_query_uri<span class="token punctuation">)</span> <span class="token comment"># make the request</span>
data<span class="token operator">=</span> r<span class="token punctuation">.</span>json<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># read data from a JSON format</span>
df <span class="token operator">=</span> pd<span class="token punctuation">.</span>DataFrame<span class="token punctuation">(</span>data<span class="token punctuation">[</span><span class="token string">'rows'</span><span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token comment"># turn data into a Pandas data frame</span>
df <span class="token operator">=</span> df<span class="token punctuation">.</span>rename<span class="token punctuation">(</span>columns<span class="token operator">=</span><span class="token punctuation">{</span><span class="token number">0</span><span class="token punctuation">:</span> <span class="token string">'Date'</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">:</span> <span class="token string">'Sessions'</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">:</span> <span class="token string">'Users'</span><span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token comment"># giving the columns some proper titles</span>
df<span class="token punctuation">[</span><span class="token string">'Sessions'</span><span class="token punctuation">]</span> <span class="token operator">=</span> df<span class="token punctuation">[</span><span class="token string">'Sessions'</span><span class="token punctuation">]</span><span class="token punctuation">.</span>astype<span class="token punctuation">(</span><span class="token builtin">int</span><span class="token punctuation">)</span> <span class="token comment"># formatting sessions as ints</span>
df<span class="token punctuation">[</span><span class="token string">'Users'</span><span class="token punctuation">]</span> <span class="token operator">=</span> df<span class="token punctuation">[</span><span class="token string">'Users'</span><span class="token punctuation">]</span><span class="token punctuation">.</span>astype<span class="token punctuation">(</span><span class="token builtin">int</span><span class="token punctuation">)</span> <span class="token comment"># formatting users as ints</span>
df<span class="token punctuation">[</span><span class="token string">'Date'</span><span class="token punctuation">]</span> <span class="token operator">=</span> pd<span class="token punctuation">.</span>to_datetime<span class="token punctuation">(</span>df<span class="token punctuation">[</span><span class="token string">'Date'</span><span class="token punctuation">]</span><span class="token punctuation">)</span>

df<span class="token punctuation">.</span>head<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment"># printing the first five rows</span></code></pre>
</div>
<div class="nb-output" data-prompt-number="3">
<pre class="nb-stdout">Enter API Query URI here··········
</pre>
</div>
<div class="nb-output" data-prompt-number="3">
<div class="nb-html-output">
<div>
<style scoped="">
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }</p>
<p>    .dataframe tbody tr th {
        vertical-align: top;
    }</p>
<p>    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>Date</th>
<th>Sessions</th>
<th>Users</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>2019-09-12</td>
<td>50526</td>
<td>58667</td>
</tr>
<tr>
<th>1</th>
<td>2019-09-13</td>
<td>53919</td>
<td>63156</td>
</tr>
<tr>
<th>2</th>
<td>2019-09-14</td>
<td>58735</td>
<td>68200</td>
</tr>
<tr>
<th>3</th>
<td>2019-09-15</td>
<td>67371</td>
<td>77597</td>
</tr>
<tr>
<th>4</th>
<td>2019-09-16</td>
<td>65780</td>
<td>77305</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="nb-cell nb-markdown-cell">
<p>Great, so our data is now loaded and formatted for our needs.</p>
<p>Let&#8217;s go ahead and try visualizing it. For timeseries data, a line chart should work well.</p>
</div>
<div class="nb-cell nb-code-cell">
<div class="nb-input" data-prompt-number="4">
<pre class=" language-python"><code class=" language-python" data-language="python">df<span class="token punctuation">.</span>plot<span class="token punctuation">.</span>line<span class="token punctuation">(</span>x<span class="token operator">=</span><span class="token string">'Date'</span><span class="token punctuation">,</span> y<span class="token operator">=</span><span class="token punctuation">[</span><span class="token string">'Sessions'</span><span class="token punctuation">,</span> <span class="token string">'Users'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> ylim<span class="token operator">=</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token boolean">None</span><span class="token punctuation">]</span><span class="token punctuation">,</span> figsize<span class="token operator">=</span><span class="token punctuation">[</span><span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">6</span><span class="token punctuation">]</span><span class="token punctuation">)</span></code></pre>
</div>
<div class="nb-output" data-prompt-number="4">
<pre class="nb-text-output">&lt;matplotlib.axes._subplots.AxesSubplot at 0x7fc6a53c3278&gt;</pre>
</div>
<div class="nb-output" data-prompt-number="4"><img decoding="async" class="nb-image-output" src="data:image/png;base64,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AJYApcB1zrkyADMbC0wGIoFnnXOLa3wFIiIiIgFlZrRPjK35/rVdXDMosrOzXU5OTri7ISIiIlItM5vjnMuubj/N/C8iIiISEApmIiIiIgGhYCYiIiISEApmIiIiIgGhYCYiIiISEApmIiIiIgGhYCYiIiISEApmIiIiIgGhYCYiIiISEApmIiIiIgGhYCYiIiISEApmIiIiIgGhYCYiIiISEApmIiIiIgGhYCYiIiISEApmIiIiIgGhYCYiIiISEApmIiIiIgGhYCYiIiISEApmIiIiIgGhYCYiIiISEApmIiIiIgGhYCYiIiISEApmIiIiIgGhYCYiIiISEApmIiIiIgGhYCYiIiISEApmIiIiIgGhYCYiIiISEApmIiIiIgGhYCYiIiISEApmIiIiIgFRbTAzs85mNs3MlpjZYjO70W9PNrMpZrbC/97GbzczG29muWa2wMwGVzrXGH//FWY2plL7EDNb6B8z3sysIS5WREREJMhqcsesFLjFOdcPGAZcZ2b9gDuAqc65XsBU/z3AmUAv/+ta4HHwghxwN3AsMBS4uyLM+ftcU+m4M+p/aSIiIiJNS7XBzDm3wTn3lf96B7AU6AicC7zg7/YCcJ7/+lzgReeZCSSZWTpwOjDFOZfvnNsGTAHO8Le1ds7NdM454MVK5xIRERE5YtSqxszMugFZwCygnXNug79pI9DOf90RWFPpsLV+2+Ha11bRXtXnX2tmOWaWs2XLltp0XURERCTwahzMzKwV8BZwk3Nue+Vt/p0uF+K+HcQ596RzLts5l52WltbQHyciIiLSqGoUzMysBV4oe9k597bfvMl/DIn/fbPfvg7oXOnwTn7b4do7VdEuIiIickSpyahMA54BljrnHqi0aSJQMbJyDPBupfYr/dGZw4BC/5HnZOA0M2vjF/2fBkz2t203s2H+Z11Z6VwiIiIiR4yoGuxzPPBjYKGZzfPb7gLuBd4ws6uBb4GL/W0fACOBXKAI+CmAcy7fzP4EzPb3+1/nXL7/+pfA80AcMMn/EhERETmimFce1vRkZ2e7nJyccHdDREREpFpmNsc5l13dfpr5X0RERCQgFMxEREREAkLBTERERCQgFMxEREREAkLBTERERCQgFMxEREREAkLBTERERCQgFMxEREREAkLBTERERCQgFMxEREREAkLBTERERCQgFMxEREREAkLBTERERCQgFMxEREREAkLBTERERCQgFMxEREREAkLBTERERCQgFMxEREREAkLBTERERCQgFMxEREREAkLBTERERCQgFMxEREREAkLBTERERCQgFMxEREREAkLBTERERCQgFMxEREREAkLBTERERCQgFMxEREREAkLBTERERCQgFMxEREREAkLBTERERCQgFMxEREREAqLaYGZmz5rZZjNbVKkt2cymmNkK/3sbv93MbLyZ5ZrZAjMbXOmYMf7+K8xsTKX2IWa20D9mvJlZqC9SREREpCmoyR2z54EzDmi7A5jqnOsFTPXfA5wJ9PK/rgUeBy/IAXcDxwJDgbsrwpy/zzWVjjvws0RERESOCNUGM+fcp0D+Ac3nAi/4r18AzqvU/qLzzASSzCwdOB2Y4pzLd85tA6YAZ/jbWjvnZjrnHPBipXOJiIiIHFHqWmPWzjm3wX+9EWjnv+4IrKm031q/7XDta6tor5KZXWtmOWaWs2XLljp2XURERCSY6l3879/pciHoS00+60nnXLZzLjstLa0xPlJERESk0dQ1mG3yH0Pif9/st68DOlfar5Pfdrj2TlW0i4iIiBxx6hrMJgIVIyvHAO9War/SH505DCj0H3lOBk4zszZ+0f9pwGR/23YzG+aPxryy0rlEREREjihR1e1gZq8CJwOpZrYWb3TlvcAbZnY18C1wsb/7B8BIIBcoAn4K4JzLN7M/AbP9/f7XOVcxoOCXeCM/44BJ/peIiIjIEce8ErGmJzs72+Xk5IS7GyIiIiLVMrM5zrns6vbTzP8iIiIiAaFgJiIiIhIQCmYiIiIiAaFgJiIiIhIQCmYiIiIiAaFgJiIiIhIQCmYiIiIiAaFgJiIiIhIQCmYiIiIiAaFgJiIiIhIQCmYiIiIiAaFgJiIiIhIQCmYiIiIiAaFgJiIiIhIQCmYiIiIiAaFgJiIiIhIQCmYiIiIiAaFgJiIiIhIQCmYiIiIiAaFgJiIiIhIQCmYiIiIiAaFgJiIiIhIQCmYiIiIiAaFgJiIiIhIQCmYiIiIiAaFgJiIiIhIQCmYiIiIiAaFgJiIiIhIQCmYiIiIiAaFgJiIiIhIQCmYiIiIiARGYYGZmZ5jZMjPLNbM7wt0fERERkcYWiGBmZpHAo8CZQD/gUjPrF95eiYiIiDSuQAQzYCiQ65xb6ZzbA7wGnBvmPomIiIg0qqAEs47Amkrv1/ptIiIiIkeMqHB3oDbM7FrgWv/tXjNbEILTJgKFIThPKM8VxD6F8lzqU+OfS31q/HM19z51Ab4L0bmCeH3NuU+hPJf6VHP9a7SXcy7sX8BwYHKl93cCd1ZzzJYQffaTIbyOkJwriH1q7tcXxD419+sLYp+a+/WFuE8h+Rkc4Otrtn1q7tcXxD7556rR35mgPMqcDfQys+5mFg2MBiZWc0xBiD773yE6TyjPFcQ+hfJc6lPjn0t9avxzNfc+hepnMATz+ppzn0J5LvWp5mr0d8b8FBd2ZjYSeAiIBJ51zv25mv1znHPZjdI5ERHZj34Gi9ROTf/OBKbGzDn3AfBBLQ55sqH6IiIi1dLPYJHaqdHfmcDcMRMRERE50gWlxkxCwMyeNbPNZrbogPbrzexrM1tsZn8NV/+kcZhZZzObZmZL/P/nN/rtfzKzBWY2z8z+Y2Ydwt1XaThmFmtmX5rZfP/PwR/99u5mNstfZeV1v65XmrGqVtYxs+n+z4J5ZrbezN4Jdz/FoztmzYiZnQTsBF50zg3w20YAvwF+5JzbbWZtnXObw9lPaVhmlg6kO+e+MrMEYA5wHrDWObfd3+cGoJ9z7udh7Ko0IDMzoKVzbqeZtQA+A24Ebgbeds69ZmZPAPOdc4+Hs6/ScPyVdZYDP8SbI3Q2cKlzbkmlfd4C3nXOvRieXkplumPWjDjnPgXyD2j+BXCvc263v49CWTPnnNvgnPvKf70DWAp0rAhlvpaAfitrxpxnp/+2hf/lgFOACX77C3ihXZqvw66sY2at8f5M6I5ZQCiYNX+9gRP9Rxf/NbNjwt0haTxm1g3IAmb57/9sZmuAy4Hfh69n0hjMLNLM5gGbgSnAN0CBc67U30WrrDR/1a2scx4w9YBf3CSMFMyavyggGRgG3Aa84T/ikGbOzFoBbwE3VfzQdc79xjnXGXgZGBvO/knDc86VOecygU54d076hrlLEjyXAq+GuxPyPQWz5m8tXj2Jc859CZQDqWHukzQwv6boLeBl59zbVezyMjCqcXsl4eKcKwCm4a2ykmRmFVMldQLWha1j0hjWAZ0rvd/3/9zMUvEC+/th6JccgoJZ8/cOMALAzHoD0cDWsPZIGpR/R/QZYKlz7oFK7b0q7XYu8HVj900aj5mlmVmS/zoOr/h7KV5Au9DfbQzwbnh6KI3kcCvrXAi855wrCVvv5CCBmWBW6s/MXgVOBlLNbC1wN/As8Kw/hcYeYIzTUNzm7njgx8BCv74I4C7gajPrg3fX9FtAIzKbt3TgBX9UXgTwhnPuPTNbArxmZvcAc/FCvDRTzrlSMxsLTOb7lXUW+5tHA/eGrXNSJU2XISIiIhIQepQpIiIiEhAKZiIiIiIBoWAmIiIiEhAKZiIiIiIBoWAmIiIiEhAKZiIiIiIBoWAmIiIiEhAKZiIiIiIBoWAmIiIiEhAKZiIiIiIBoWAmIiIiEhAKZiIiIiIBoWAmIiIiEhAKZiIiIiIBoWAmIiIiEhAKZiIiIiIBoWAmIiJVMrNOZvauma0ws2/MbJyZRR9m/5vMLL4x+yjS3CiYiYjIQczMgLeBd5xzvYDeQCvgz4c57CZAwUykHsw5F+4+iIhIwJjZqcDdzrmTKrW1BlYBXYA/AmcA5cBTgAH3A8uArc65EY3eaZFmICrcHRARkUDqD8yp3OCc225m3wE/A7oBmc65UjNLds7lm9nNwAjn3NbG765I86BHmSIiUlsnA/9wzpUCOOfyw9sdkeZDwUxERKqyBBhSucF/lNklPN0ROTIomImISFWmAvFmdiWAmUUCfweeByYD/2NmUf62ZP+YHUBC43dVpPlQMBMRkYM4b2TY+cBFZrYCWA6UAHcBTwPfAQvMbD5wmX/Yk8CHZjYtDF0WaRY0KlNEREQkIHTHTERERCQgFMxEREREAkLBTEREMLPOZjbNzJaY2WIzu9FvTzazKf6yTFPMrI3f3tfMvjCz3WZ26wHnutHMFvnnuSkc1yPSVCmYiYgIQClwi3OuHzAMuM7M+gF3AFP9ZZmm+u8B8oEb8Gb738fMBgDXAEOBQcBZZtazcS5BpOlTMBMREZxzG5xzX/mvdwBLgY7AucAL/m4vAOf5+2x2zs0G9h5wqqOAWc65In8C2v8CFzTCJYg0CwpmIiKyHzPrBmQBs4B2zrkN/qaNQLtqDl8EnGhmKWYWD4wEOjdQV0WaHa2VKSIi+5hZK+At4CZ/bcx925xzzswOO8eSc26pmd0H/AfYBcwDyhqwyyLNiu6YiYgIAGbWAi+Uveyce9tv3mRm6f72dGBzdedxzj3jnBvinDsJ2IY3Oa2I1ICCmYiIYN6tsWeApc65ByptmgiM8V+PAd6twbna+t+74NWXvRLa3oo0X5r5X0REMLMTgOnAQqDcb74Lr87sDbzFy78FLnbO5ZtZeyAHaO3vvxPo5z/+nA6k4A0MuNk5N7VRL0akCVMwExEREQkIPcoUERERCQgFMxEREZGAUDATERERCQgFMxEREZGAUDATERERCQgFMxFp9syszMzmmdliM5tvZreY2WF//plZNzO7rLH6KCICCmYicmQods5lOuf6Az8EzgTuruaYboCCmYg0Ks1jJiLNnpntdM61qvQ+A5gNpAJdgZeAlv7msc65GWY2EzgKWAW8AIwH7gVOBmKAR51z/2i0ixCRI4KCmYg0ewcGM7+tAOgD7ADKnXMlZtYLeNU5l21mJwO3OufO8ve/FmjrnLvHzGKAz4GLnHOrGvViRKRZiwp3B0REwqwF8IiZZQJlQO9D7HcacLSZXei/TwR64d1RExEJCQUzETni+I8yy4DNeLVmm4BBeHW3JYc6DLjeOTe5UTopIkckFf+LyBHFzNKAJ4BHnFfLkQhscM6VAz8GIv1ddwAJlQ6dDPzCzFr45+ltZi0REQkh3TETkSNBnJnNw3tsWYpX7P+Av+0x4C0zuxL4ENjlty8AysxsPvA8MA5vpOZXZmbAFuC8xroAETkyqPhfREREJCD0KFNEREQkIBTMRERERAJCwUxEREQkIBTMRERERAJCwUxEREQkIBTMRERERAJCwUxEREQkIBTMRERERALi/wP+gX9RAv/krQAAAABJRU5ErkJggg=="></div>
</div>
<div class="nb-cell nb-markdown-cell">
<p>That was simple, right?</p>
<p>There is so much more you can do with Python and Jupyter Notebooks and we are going to cover more advanced stuff in our upcoming blog posts.</p>
<p>I&#8217;d like to end this post with a few thoughts I got while writing this one.</p>
<ol>
<li>Writing a blog post using <a href="https://en.wikipedia.org/wiki/Markdown">Markdown</a> is fun (and effective). I know some people are doing it but this is the first time for me. Markdown is the way you write text in Notebooks.</li>
<li>While I thought so before, now I know for sure that Notebooks + WordPress is a really good solution for sharing Python code examples and data visualizations online.</li>
<li>I&#8217;d love to hear your thoughts, ideas, questions and topic suggestions in the comments below! We are happy to respond/help.</li>
</ol>
<p><strong>PS! More Notebooks-related content is coming soon! Consider subscribing to our newsletter.</strong></p>
</div>
</div>
</div>
</div>
<p>The post <a href="https://reflectivedata.com/jupyter-notebooks-in-wordpress/">Jupyter Notebooks in WordPress</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://reflectivedata.com/jupyter-notebooks-in-wordpress/feed/</wfw:commentRss>
			<slash:comments>23</slash:comments>
		
		
			</item>
		<item>
		<title>Data You Should Be Tracking Using Google Analytics Custom Events</title>
		<link>https://reflectivedata.com/data-you-should-be-tracking-using-google-analytics-custom-events/</link>
					<comments>https://reflectivedata.com/data-you-should-be-tracking-using-google-analytics-custom-events/#comments</comments>
		
		<dc:creator><![CDATA[Silver Ringvee]]></dc:creator>
		<pubDate>Thu, 26 Sep 2019 09:59:41 +0000</pubDate>
				<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[Google Optimize]]></category>
		<category><![CDATA[Google Tag Manager]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[Tools]]></category>
		<guid isPermaLink="false">http://reflectivedata.com/?p=3487</guid>

					<description><![CDATA[<p>Out of the box, Google Analytics already tracks a bunch of really useful data points. What the default setup lacks, though, is context and events that are specific to your website and business.</p>
<p>Custom Events provide a perfect solution for adding context and tracking more specific user actions. In this article, we are giving you a good amount of ideas for custom events you should implement on your own and/or your clients' websites.</p>
<p>The post <a href="https://reflectivedata.com/data-you-should-be-tracking-using-google-analytics-custom-events/">Data You Should Be Tracking Using Google Analytics Custom Events</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Out of the box, Google Analytics already tracks a bunch of really useful data points. What the default setup lacks, though, is context and events that are specific to your website and business.</p>
<p>Custom Events provide a perfect solution for adding context and tracking more specific user actions. In this article, we are giving you a good amount of ideas for custom events you should implement on your own and/or your clients&#8217; websites.</p>
<p>This post is divided into sections by different event categories so you could skip the ones that are not relevant for you.</p>
<h2>Clicks</h2>
<p>For almost all websites, the most common user interaction is a click. By default, Google Analytics isn&#8217;t very good at tracking them. Let&#8217;s see how we could improve this situation.</p>
<h4>Navigation clicks</h4>
<p>Tracking usage of the main menu, sidebar and other navigation elements is critical. This is how your visitors explore your business and move in the funnel.</p>
<p>Detecting navigation interactions is <a href="https://dcarlbom.com/google-tag-manager/track-main-menu-usage-site-gtm/" target="_blank" rel="noopener noreferrer">easy with Google Tag Manager</a> and sending data to Google Analytics works as with any other event.</p>
<p>Since there may be several navigation elements containing links to the same page, it is important to also pass the information about which navigation was used. For example, you might a have link to your blog both in the header and in the footer.</p>
<p>Recommended event parameters:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">category: click
action: top-navigation, sidebar etc.
label: link text
non-interaction: false</pre>
<h4>CTA clicks</h4>
<p>Tracking clicks on all of your CTAs (call to actions) is extremely important if you have more than one CTA on a single page pointing to the same location (i.e. long-form sales pages).</p>
<p>Don&#8217;t forget that buttons like &#8220;Get a Quote&#8221;, &#8220;Add to Cart&#8221; and &#8220;Checkout&#8221; are also CTAs.</p>
<p>Setup is the same as with <a href="https://www.lovesdata.com/blog/google-tag-manager-button-click-tracking" target="_blank" rel="noopener noreferrer">generic click tracking using GTM</a>.</p>
<p>Recommended event parameters:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">category: click
action: CTA
label: text (and index the same CTA appears multiple times)
non-interaction: false</pre>
<h4>Outbound link clicks</h4>
<p>Also known as tracking website exits, this custom event tells you exactly to which external pages people navigate from your site.</p>
<p>Again, <a href="https://netvantagemarketing.com/blog/tracking-website-exits-using-google-tag-manager/" target="_blank" rel="noopener noreferrer">setting this up</a> is quite easy with GTM.</p>
<p>Recommended event parameters:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">category: click
action: outbound link
label: link URL - link text
non-interaction: false</pre>
<h4>File download clicks</h4>
<p>Doesn&#8217;t matter if you provide whitepapers, ebooks, PDFs, or other types of downloadable files, you should be tracking how often they get downloaded.</p>
<p>There are some <a href="https://www.jeffalytics.com/track-downloads-google-analytics/">really good tutorials</a> online but we recommend setting it up using Google Tag Manager. A simple &#8220;just links&#8221; click trigger with a regex that matches desired filetypes should work just fine.</p>
<p>Regex Example:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">\.(pdf|docx)$</pre>
<p>Recommended event parameters:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">category: click
action: download
label: filename / link text
non-interaction: false</pre>
<h4>Rage clicks</h4>
<p>Visitors rage clicking on certain elements on your website is a good indicator of a UX error. For example, people may click on a blue text that is not a link or on an image that has no click functionality.</p>
<p>We have a <a href="http://reflectivedata.com/tracking-rage-clicks-using-google-tag-manager-and-google-analytics/" target="_blank" rel="noopener noreferrer">separate blog post</a> about tracking rage clicks using Google Tag Manager and Google Analytics.</p>
<p>Recommended event parameters:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">category: click
action: rage click
label: element selector
non-interaction: false</pre>
<h4>Button clicks</h4>
<p>Your website is likely to have all sorts of clickable buttons. There might be some other ways for you to get an overview of the usage of the features related to those buttons but knowing how many clicks each button received definitely helps.</p>
<p>Some ideas for which buttons should be tracked:</p>
<ul>
<li>Add to wishlist/favorites</li>
<li>Add/remove item from cart</li>
<li>Update cart</li>
<li>Continue shopping</li>
<li>Log in/out</li>
<li>Register</li>
<li>etc.</li>
</ul>
<p>Recommended event parameters:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">category: click
action: button
label: button text/description
non-interaction: false</pre>
<h2>Form Interactions</h2>
<p>When it comes to tracking forms, I would like to recommend a few good articles by Simo Ahava that cover everything you need for getting started.</p>
<ul>
<li><a href="https://www.simoahava.com/analytics/track-form-engagement-with-google-tag-manager/" target="_blank" rel="noopener noreferrer">Track Form Engagement With Google Tag Manager</a></li>
<li><a href="https://www.simoahava.com/analytics/track-form-abandonment-with-google-tag-manager/" target="_blank" rel="noopener noreferrer">Track Form Abandonment With Google Tag Manager</a></li>
<li><a href="https://www.simoahava.com/analytics/form-field-timing-with-google-tag-manager/" target="_blank" rel="noopener noreferrer">Form Field Timing With Google Tag Manager</a></li>
</ul>
<p>Since forms are the most important part of many websites (i.e checkout, lead form etc.) you should really nail tracking them correctly.</p>
<h2>A/B Testing</h2>
<h4>Experiment and Variation</h4>
<p>Most A/B testing tools provide some sort of integration with Google Analytics. Most of them, though, are using custom dimensions. A problem with custom dimension based integration is that you need to make sure that the dimensions aren&#8217;t overlapping between experiments because otherwise, you might end up overwriting the dimension value for some experiments.</p>
<p>What we recommend having, besides the default integration, is a secondary event-based integration. That is, sending a custom event for every running experiment in a following format:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">category: ab testing
action: experiment ID
label: variation number
non-interaction: true</pre>
<p>PS! One event per experiment-variation combination.</p>
<p>This gives you raw information about each experiment and variation that the visitor saw. You can easily use this information in your custom segments or reports.</p>
<p>Every testing has a bit different solution for exposing experiment data to the front-end but here are a few links that should be helpful.</p>
<ul>
<li><a href="https://help.vwo.com/hc/en-us/articles/360021117934-How-to-Integrate-VWO-with-UA-via-Google-Tag-Manager-Custom-Dimensions-" target="_blank" rel="noopener noreferrer">VWO</a> &#8211; instead of custom dimension, send this data using custom event action and label.</li>
<li><a href="https://support.google.com/optimize/answer/9059383?hl=en" target="_blank" rel="noopener noreferrer">Google Optimize</a> &#8211; this allows you to get experiment data to the datalayer, now send it using a custom event.</li>
<li><a href="https://developers.optimizely.com/x/solutions/javascript/reference/index.html#reading-data" target="_blank" rel="noopener noreferrer">Optimizely X</a> &#8211; access data about live experiments using Javascript.</li>
</ul>
<h4>Google Optimize Anti-Flicker Snippet timeout</h4>
<p>If you have any experience with JavaScript-based A/B testing and/or personalization tools you know that flicker can be a real headache.</p>
<p>In case your tool of choice is Google Optimize, you should be using their official anti-flicker snippet to minimize the flicker effect.</p>
<p>We wrote a full separate article on <a href="http://reflectivedata.com/tracking-optimize-anti-flicker-snippet-timeout-in-google-analytics/" target="_blank" rel="noopener noreferrer">Tracking Optimize Anti-Flicker Snippet Timeout in Google Analytics</a>.</p>
<p>Recommended event parameters:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">category: optimize
action: snippet timeout
label: true/false
non-interaction: true</pre>
<h2>Scroll depth</h2>
<p>Whether you are working with a blog, some landing pages or any other page that is longer than a fold, you want to know how far down do the visitors scroll.</p>
<p>It used to required some custom Javascript but now, tracking scroll depth is a <a href="https://www.lovesdata.com/blog/tracking-scroll-depth" target="_blank" rel="noopener noreferrer">built-in feature of Google Tag Manager</a>.</p>
<p>Recommended event parameters:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">category: scroll
action: scroll depth threshold
non-interaction: false</pre>
<h2>Social interactions</h2>
<p>While Google Analytics has a <a href="https://www.optimizesmart.com/guide-to-social-interactions-tracking-in-google-analytics/" target="_blank" rel="noopener noreferrer">dedicated feature for tracking social interactions</a>, having this data in custom events gives you more flexibility in reporting.</p>
<p>There is a really thorough blog post about <a href="https://www.analyticsmania.com/post/track-social-interactions-with-google-tag-manager/" target="_blank" rel="noopener noreferrer">tracking social interactions using Google Tag Manager</a> &#8211; although, if you want something simpler, tracking clicks on your social icons is a good starting point.</p>
<p>Recommended event parameters:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">category: social
action: share/like/follow
label: social platform
non-interaction: false</pre>
<h2>Video events</h2>
<p>Doesn&#8217;t matter if it&#8217;s a sales video, a video that explains how your product works or a tutorial &#8211; you do care about how many people start the video and how far through will they make.</p>
<p>Google Tag Manager provides a really easy solution for <a href="https://www.getelevar.com/how-to/implement-video-tracking-with-google-tag-manager/" target="_blank" rel="noopener noreferrer">tracking YouTube videos</a> but tracking others such as <a href="https://www.cardinalpath.com/vimeo-tracking-with-google-tag-manager/" target="_blank" rel="noopener noreferrer">Vimeo</a> is completely doable as well.</p>
<p>Recommended event parameters:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">category: videos
action: start/pause/percentage
label: video id
non-interaction: false</pre>
<h2>Errors</h2>
<p>No matter how good your site is, there will always be errors. Since errors are directly related to bad user experience, tracking them is absolutely crucial.</p>
<p>The first step here should be sending your <a href="https://www.tatvic.com/blog/javascript-error-tracking-google-analytics-via-google-tag-manager-unsung-hero-2/" target="_blank" rel="noopener noreferrer">Javascript errors to Google Analytics</a>. Next, consider sending other errors like popup alerts and system errors as well.</p>
<p>Recommended event parameters:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">category: error
action: error message
label: feature or other relevant information
non-interaction: true</pre>
<h2>reCAPTCHA bot score</h2>
<p>Google Analytics does have a simple bot-filtering system in place but it comes nowhere near catching all the bots that visit your site. Even tools like reCAPTCHA by Google can’t usually say for sure whether a visitor is a bot or a human but they can give you a score (from 0.1 to 1). Simo Ahava has put together <a href="https://www.simoahava.com/amp/analytics/improve-google-analytics-bot-detection-with-recaptcha/">a great tutorial</a> for tracking the reCAPTCHA both score using Google Analytics custom dimensions.</p>
<p>Recommended event parameters:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">category: reCAPTCHA
action: reCAPTCHA answer
label: reCAPTCHA score
non-interaction: true</pre>
<hr />
<p>Don&#8217;t forget to test whatever new custom event you add to your setup.</p>
<p>Should you have any questions related to custom events in Google Analytics, shoot them in the comments below.</p>
<p>PS! If you need help with implementing custom events, <a href="http://reflectivedata.com/services/analytics-services/">you can hire us</a> to help you out!</p>
<p><span style="font-size: 10pt;">Photo by <a href="https://unsplash.com/@anniespratt?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Annie Spratt</a> on <a href="https://unsplash.com/s/photos/click?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></span></p>
<p>The post <a href="https://reflectivedata.com/data-you-should-be-tracking-using-google-analytics-custom-events/">Data You Should Be Tracking Using Google Analytics Custom Events</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://reflectivedata.com/data-you-should-be-tracking-using-google-analytics-custom-events/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>Tracking Rage Clicks Using Google Tag Manager and Google Analytics</title>
		<link>https://reflectivedata.com/tracking-rage-clicks-using-google-tag-manager-and-google-analytics/</link>
					<comments>https://reflectivedata.com/tracking-rage-clicks-using-google-tag-manager-and-google-analytics/#comments</comments>
		
		<dc:creator><![CDATA[Silver Ringvee]]></dc:creator>
		<pubDate>Tue, 17 Sep 2019 13:27:10 +0000</pubDate>
				<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[Google Tag Manager]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[Tools]]></category>
		<guid isPermaLink="false">http://reflectivedata.com/?p=3491</guid>

					<description><![CDATA[<p>Visitors rage clicking on certain elements on your website is a good indicator of a UX error. For example, people may click on a blue text that is not a link or on an image that has no click functionality.</p>
<p>The post <a href="https://reflectivedata.com/tracking-rage-clicks-using-google-tag-manager-and-google-analytics/">Tracking Rage Clicks Using Google Tag Manager and Google Analytics</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Visitors rage clicking on certain elements on your website is a good indicator of a UX error. For example, people may click on a blue text that is not a link or on an image that has no click functionality.</p>
<p>Detecting and fixing such usability issues is crucial, and luckily the detection part is doable using Google Tag Manager and Google Analytics.</p>
<blockquote><p>Rage click is a situation where, in a short period of time, a website user clicks multiple times on a specific element. I.e. in two seconds, a visitor clicks three times on an image.</p></blockquote>
<p>Without further ado, let&#8217;s see how tracking rage clicks works in Google Tag Manager.</p>
<h3>Step 1 &#8211; Create a new Tag that detects rage clicks</h3>
<figure id="attachment_3493" aria-describedby="caption-attachment-3493" style="width: 953px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.17-16_05_21.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="wp-image-3493 size-full" src="http://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.17-16_05_21-e1568726110732.png" alt="Google Tag Manager - detect rage click" width="953" height="719" srcset="https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.17-16_05_21-e1568726110732.png 953w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.17-16_05_21-e1568726110732-700x528.png 700w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.17-16_05_21-e1568726110732-768x579.png 768w" sizes="(max-width: 953px) 100vw, 953px" /></a><figcaption id="caption-attachment-3493" class="wp-caption-text">Google Tag Manager &#8211; detect rage click</figcaption></figure>
<p>This tag is responsible for detecting rage clicks and pushing a custom event <code>rage_click</code> into the data layer.</p>
<p>There are a few variables that you can play with to make it best fit your use case:</p>
<p><code>no_of_clicks</code> &#8211; after how many clicks do we consider it a rage click. Default is 3.</p>
<p><code>time</code> &#8211; in what time period should the clicks happen. Default is 2 seconds.</p>
<p><code>radius</code> &#8211; in what radius should the clicks happen. Default is 100px.</p>
<p>The following variables are pushed into the data layer when a rage click is detected:</p>
<p><code>event</code> &#8211; <code>rage_click</code></p>
<p><code>rc_element</code> &#8211; selector of the element on which the clicks happened</p>
<p><code>rc_count</code> &#8211; the number of clicks</p>
<p><code>rc_max_distance</code> &#8211; maximum distance between the clicks</p>
<p><code>rc_time_diff</code> &#8211; period from first to last click</p>
<p>PS! You don&#8217;t have to send all of them to GA, pick the ones you think make the most sense.</p>
<p><a href="https://gist.github.com/silversillu/52ad72eaee5450ace862f39e52f6b953" target="_blank" rel="noopener noreferrer">Full code snippet</a>. &#8211; Requires jQuery to be loaded on the page.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">if ( typeof(jQuery) === 'function' ) {
    jQuery(document).ready(function($) {
        jQuery.fn.extend({
            getPath: function() {
                var path, node = this;
                while (node.length) {
                    var realNode = node[0],
                        name = realNode.localName;
                    if (!name) break;
                    name = name.toLowerCase();
                    var parent = node.parent();
                    var sameTagSiblings = parent.children(name);
                    if (sameTagSiblings.length &gt; 1) {
                        var allSiblings = parent.children();
                        var index = allSiblings.index(realNode) + 1;
                        if (index &gt; 1) {
                            name += ':nth-child(' + index + ')';
                        }
                    }
                    path = name + (path ? '&gt;' + path : '');
                    node = parent;
                }
                return path;
            }
        });
        // Number of rage clicks
        var no_of_clicks = 3;
        //Time interval - 3 for 3 secs, 4 for secs and likewise
        var time = 2;
        var click_events = [];
        //internal variables
        var possible_click = 3;
        var radius = 100;
        function detectXClicks(count, interval) {
            var last = click_events.length - 1;
            var time_diff = (click_events[last].time.getTime() - click_events[last - count + 1].time.getTime()) / 1000;
            //returns false if it event period is longer than 5 sec
            if (time_diff &gt; interval) return null;
            //check click distance
            var max_distance = 0;
            for (i = last - count + 1; i &lt; last; i++) {
                for (j = i + 1; j &lt;= last; j++) {
                    var distance = Math.round(Math.sqrt(Math.pow(click_events[i].event.clientX - click_events[j].event.clientX, 2) + Math.pow(click_events[i].event.clientY - click_events[j].event.clientY, 2)));
                    if (distance &gt; max_distance) max_distance = distance;
                    if (distance &gt; radius) return null;
                }
            }
            var result = {
                count: count,
                max_distance: max_distance,
                time_diff: time_diff
            }
            return result;
        }
        function removeUsedClickPoints(count) {
            click_events.splice(click_events.length - count, count);
        }
        $("body").click(function(event) {
            click_events.push({
                event: event,
                time: new Date()
            });
            //remain only required number of click events and remove left of them.
            if (click_events.length &gt; possible_click) {
                click_events.splice(0, click_events.length - possible_click);
            }
            //detect 3 click in 5 sec
            if (click_events.length &gt;= 3) {
                var result = detectXClicks(no_of_clicks, time);
                if (result != null) {
                    var path = $(event.target).getPath();
                    //console.log('Rage Click: ' + JSON.stringify(result));
                    dataLayer.push({
                        'event': 'rage_click',
                        'rc_element': path,
                        'rc_count': result.count,
                        'rc_max_distance': result.max_distance,
                        'rc_time_diff': result.time_diff
                    });
                    removeUsedClickPoints(3);
                }
            }
        });
    });
}</pre>
<h3>Step 2 &#8211; Create a new Trigger</h3>
<p>The snippet from the previous step is pushing the <code>rage_click</code> event into the data layer every time a rage click is detected. Now we need to create a trigger that listens to that event.</p>
<figure id="attachment_3494" aria-describedby="caption-attachment-3494" style="width: 930px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.17-16_15_22.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-3494" src="http://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.17-16_15_22.png" alt="Google Tag Manager - rage click trigger" width="930" height="463" srcset="https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.17-16_15_22.png 930w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.17-16_15_22-700x348.png 700w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.17-16_15_22-768x382.png 768w" sizes="(max-width: 930px) 100vw, 930px" /></a><figcaption id="caption-attachment-3494" class="wp-caption-text">Google Tag Manager &#8211; rage click trigger</figcaption></figure>
<h3>Step 3 &#8211; Send an event to Google Analytics</h3>
<p>Awesome, now let&#8217;s create a new tag that is responsible for sending the custom event to Google Analytics.</p>
<figure id="attachment_3495" aria-describedby="caption-attachment-3495" style="width: 927px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.17-16_19_20.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-3495" src="http://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.17-16_19_20.png" alt="Send rage click to Google Analytics" width="927" height="732" srcset="https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.17-16_19_20.png 927w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.17-16_19_20-700x553.png 700w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.17-16_19_20-768x606.png 768w" sizes="(max-width: 927px) 100vw, 927px" /></a><figcaption id="caption-attachment-3495" class="wp-caption-text">Send rage click to Google Analytics</figcaption></figure>
<p>You can play around with the event parameters, especially with the event label to best match your needs but the recommended values are as seen in the screenshot above.</p>
<p>Before publishing your changes, don&#8217;t forget to enter the preview mode in Google Tag Manager and test the setup yourself. Go ahead and do a few rage clicks and see if an event is getting sent to Google Analytics. Also, check the event parameters and see if they match your expectations.</p>
<h3>Step 4 &#8211; Using this data</h3>
<p>Okay, so you have configured everything correctly, tested it and it works fine. Now, how do you put this data into use?</p>
<p>First, go into Google Analytics and find your rage click events. If you did as described in this post, you find them by clicking on Overview under Behavior &#8211;&gt; Events, then find the &#8220;Rage Click&#8221; event category.</p>
<figure id="attachment_3525" aria-describedby="caption-attachment-3525" style="width: 1452px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2019/09/screenshot-analytics.google.com-2019.09.18-13_42_27.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-3525" src="http://reflectivedata.com/wp-content/uploads/2019/09/screenshot-analytics.google.com-2019.09.18-13_42_27.png" alt="Rage click report in Google Analytics" width="1452" height="1022" srcset="https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-analytics.google.com-2019.09.18-13_42_27.png 1452w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-analytics.google.com-2019.09.18-13_42_27-700x493.png 700w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-analytics.google.com-2019.09.18-13_42_27-768x541.png 768w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-analytics.google.com-2019.09.18-13_42_27-1024x721.png 1024w" sizes="(max-width: 1452px) 100vw, 1452px" /></a><figcaption id="caption-attachment-3525" class="wp-caption-text">Rage click report in Google Analytics</figcaption></figure>
<p>Click on the &#8220;Rage Click&#8221; event category and choose Event Action to see the elements on which the rage clicks happened.</p>
<p><a  href="http://reflectivedata.com/wp-content/uploads/2019/09/screenshot-analytics.google.com-2019.09.18-13_45_55.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3526" src="http://reflectivedata.com/wp-content/uploads/2019/09/screenshot-analytics.google.com-2019.09.18-13_45_55.png" alt="Rage click event in Google Analytics" width="1171" height="199" srcset="https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-analytics.google.com-2019.09.18-13_45_55.png 1171w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-analytics.google.com-2019.09.18-13_45_55-700x119.png 700w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-analytics.google.com-2019.09.18-13_45_55-768x131.png 768w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-analytics.google.com-2019.09.18-13_45_55-1024x174.png 1024w" sizes="(max-width: 1171px) 100vw, 1171px" /></a></p>
<p>Since elements with the same selectors might be on different pages, it might be helpful to apply a secondary dimension &#8220;Page&#8221;.</p>
<p>Now, all you need to do is to pick one element, copy its selector and go to the page seen in the secondary dimension.</p>
<p>Next, open the Javascript console of your browser (press F12) and paste your selector in the following format:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">jQuery('YOUR&gt;SELECTOR&gt;HERE');</pre>
<p>Hover over the line that was returned in the console and it should highlight the element in the DOM.</p>
<figure id="attachment_3527" aria-describedby="caption-attachment-3527" style="width: 1915px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2019/09/Untitled-2.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-3527" src="http://reflectivedata.com/wp-content/uploads/2019/09/Untitled-2.png" alt="Seeing the Rage Click element" width="1915" height="957" srcset="https://reflectivedata.com/wp-content/uploads/2019/09/Untitled-2.png 1915w, https://reflectivedata.com/wp-content/uploads/2019/09/Untitled-2-700x350.png 700w, https://reflectivedata.com/wp-content/uploads/2019/09/Untitled-2-768x384.png 768w, https://reflectivedata.com/wp-content/uploads/2019/09/Untitled-2-1024x512.png 1024w" sizes="(max-width: 1915px) 100vw, 1915px" /></a><figcaption id="caption-attachment-3527" class="wp-caption-text">Seeing the Rage Click element</figcaption></figure>
<p>If you prefer element class over the selector, you can change the event action in GTM from the <code>rc_element</code> to GTM&#8217;s built-in Click Class variable.</p>
<hr />
<p>Great! That&#8217;s it, should you need any help with tracking rage clicks using Google Tag Manager and Google Analytics, post your questions in the comments below.</p>
<p>Should you need further help with your analytics setup, <a href="http://reflectivedata.com/services/analytics-services/" target="_blank" rel="noopener noreferrer">take a look at our services</a>.</p>
<p><span style="font-size: 10pt;">Cover photo by <a href="https://unsplash.com/@axville?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Emmanuel</a> on <a href="https://unsplash.com/search/photos/click?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></span></p>
<p>The post <a href="https://reflectivedata.com/tracking-rage-clicks-using-google-tag-manager-and-google-analytics/">Tracking Rage Clicks Using Google Tag Manager and Google Analytics</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://reflectivedata.com/tracking-rage-clicks-using-google-tag-manager-and-google-analytics/feed/</wfw:commentRss>
			<slash:comments>33</slash:comments>
		
		
			</item>
		<item>
		<title>Tracking Optimize Anti-Flicker Snippet Timeout in Google Analytics</title>
		<link>https://reflectivedata.com/tracking-optimize-anti-flicker-snippet-timeout-in-google-analytics/</link>
					<comments>https://reflectivedata.com/tracking-optimize-anti-flicker-snippet-timeout-in-google-analytics/#comments</comments>
		
		<dc:creator><![CDATA[Silver Ringvee]]></dc:creator>
		<pubDate>Wed, 04 Sep 2019 13:15:40 +0000</pubDate>
				<category><![CDATA[A/B testing]]></category>
		<category><![CDATA[Google Analytics]]></category>
		<category><![CDATA[Google Optimize]]></category>
		<category><![CDATA[Google Tag Manager]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[Tools]]></category>
		<guid isPermaLink="false">http://reflectivedata.com/?p=3451</guid>

					<description><![CDATA[<p>If you have any experience with JavaScript-based A/B testing and/or personalization tools you know that flicker can be a real headache.</p>
<p>In case your tool of choice is Google Optimize, you should be using their official anti-flicker snippet to minimize the flicker effect.</p>
<p>The post <a href="https://reflectivedata.com/tracking-optimize-anti-flicker-snippet-timeout-in-google-analytics/">Tracking Optimize Anti-Flicker Snippet Timeout in Google Analytics</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>If you have any experience with JavaScript-based A/B testing and/or personalization tools you know that <a href="http://reflectivedata.com/fooc-get-rid/">flicker</a> can be a real headache.</p>
<p>In case your tool of choice is <a href="http://reflectivedata.com/dictionary/google-optimize/">Google Optimize</a>, you should be using their official <a href="https://support.google.com/optimize/answer/7100284?hl=en">anti-flicker snippet</a> to minimize the flicker effect.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="html">&lt;!-- Anti-flicker snippet (recommended) --&gt;
&lt;style&gt;.async-hide { opacity: 0 !important} &lt;/style&gt;
&lt;script&gt;(function(a,s,y,n,c,h,i,d,e){s.className+=' '+y;h.start=1*new Date; h.end=i=function(){s.className=s.className.replace(RegExp(' ?'+y),'')}; (a[n]=a[n]||[]).hide=h;setTimeout(function(){i();h.end=null},c);h.timeout=c; })(window,document.documentElement,'async-hide','dataLayer',4000, {'OPT_CONTAINER_ID':true});&lt;/script&gt;</pre>
<p>Looking at the anti-flicker snippet (previously known as page-hiding snippet), you see that the default timeout is set to 4000ms. That means that, potentially, some of your visitors may see a blank white page for 4 seconds.</p>
<p>Since four seconds is a long time, many companies reduce it. A common timeout I&#8217;ve seen is 2 seconds. Changing the maximum timeout to a shorter period, although, means that there can be a good amount of people to whom the snippet occasionally times out.</p>
<p>When the anti-flicker snippet times out, no experiments will be loaded on that page load (people will see the control for all experiments and personalizations) which can lead to a user experience where a single user is seeing different variations in single session.</p>
<p>What you probably want to know is the optimal timeout period for your website. To figure that out, you&#8217;d need to know how many timeouts occur with your current setup. Let&#8217;s take a look how to set that up using Google Tag Manager and Google Analytics.</p>
<p>Before moving forward, you should read about <a href="https://developers.google.com/optimize/devguides/antiflicker">how the anti-flicker snippet works</a>.</p>
<h3>Catching the timeout</h3>
<p>To make this a little bit easier for us, Google has added a variable in the data layer that indicates whether the snipped has timed out or not.</p>
<p>You can access this variable like so:</p>
<p><code>window.dataLayer.hide["GTM-xxxxxx"]</code> where <code>GTM-xxxxxx</code> stands for your Optimize container ID.</p>
<p>To make sure it&#8217;s not too easy, though, they don&#8217;t push this variable into the data layer as you normally would. This means you can&#8217;t access it using GTM Data Layer variable nor the Custom Javascript variable.</p>
<p>What you need is a Custom Javascript function variable in GTM to check the value.</p>
<p>Here&#8217;s the function you can use</p>
<pre class="EnlighterJSRAW" data-enlighter-language="null">function () { 
    if ( window.dataLayer.hide ) { 
        return window.dataLayer.hide["GTM-xxxxxxx"]; 
    } 
}</pre>
<p>And here is the same function implemented in Google Tag Manager.</p>
<figure id="attachment_3452" aria-describedby="caption-attachment-3452" style="width: 1296px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.04-15_44_18.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-3452" src="http://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.04-15_44_18.png" alt="Tracking Optimize anti-flicker snippet timeout using Google Analytics" width="1296" height="676" srcset="https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.04-15_44_18.png 1296w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.04-15_44_18-700x365.png 700w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.04-15_44_18-768x401.png 768w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.04-15_44_18-1024x534.png 1024w" sizes="(max-width: 1296px) 100vw, 1296px" /></a><figcaption id="caption-attachment-3452" class="wp-caption-text">Tracking Optimize anti-flicker snippet timeout</figcaption></figure>
<p>PS! In the beginning, the value is always <code>true</code>, it turns to <code>false</code> if the timeout period is over and it managed to load Optimize before this happened (the snippet did not time out).</p>
<p>Our recommendation is to check the value on GTM&#8217;s default <code>DOM Ready</code> event.</p>
<h3>Sending data to Google Analytics</h3>
<p>This part is quite straightforward for anyone that has used GTM to send custom events to Google Analytics so let&#8217;s get right to it.</p>
<h4>1. Create the DOM Ready trigger</h4>
<p>In case you haven&#8217;t configured this default trigger in GTM, go ahead do it now.</p>
<figure id="attachment_3456" aria-describedby="caption-attachment-3456" style="width: 1299px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.04-16_03_31.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="wp-image-3456 size-full" src="http://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.04-16_03_31.png" alt="Google Tag Manager DOM Ready Event" width="1299" height="375" srcset="https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.04-16_03_31.png 1299w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.04-16_03_31-700x202.png 700w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.04-16_03_31-768x222.png 768w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.04-16_03_31-1024x296.png 1024w" sizes="(max-width: 1299px) 100vw, 1299px" /></a><figcaption id="caption-attachment-3456" class="wp-caption-text">Google Tag Manager DOM Ready Event</figcaption></figure>
<h4>2. Create a new Tag for sending the event to Google Analytics</h4>
<p>Create a new Tag with a tag type of <strong>Google Analytics: Universal Analytics</strong> and choose track type of <strong>Event</strong>.</p>
<p>These are the recommended event parameters but you can use whatever works for you.</p>
<p><strong>Category:</strong> optimize</p>
<p><strong>Action:</strong> timeout</p>
<p><strong>Label:</strong> true/false (using the Custom Javascript function variable you created before)</p>
<p><strong>Non-Interaction Hit:</strong> True (because it&#8217;s not related to a user action)</p>
<figure id="attachment_3457" aria-describedby="caption-attachment-3457" style="width: 1287px" class="wp-caption aligncenter"><a  href="http://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.04-16_07_34.png" data-rel="lightbox-gallery-0" data-rl_title="" data-rl_caption="" title=""><img loading="lazy" decoding="async" class="size-full wp-image-3457" src="http://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.04-16_07_34.png" alt="Tracking Optimize anti-flicker snippet timeout using Google Analytics" width="1287" height="757" srcset="https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.04-16_07_34.png 1287w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.04-16_07_34-700x412.png 700w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.04-16_07_34-768x452.png 768w, https://reflectivedata.com/wp-content/uploads/2019/09/screenshot-tagmanager.google.com-2019.09.04-16_07_34-1024x602.png 1024w" sizes="(max-width: 1287px) 100vw, 1287px" /></a><figcaption id="caption-attachment-3457" class="wp-caption-text">Tracking Optimize anti-flicker snippet timeout using Google Analytics</figcaption></figure>
<p>That&#8217;s it. This is all you need to start tracking Optimize anti-flicker snippet timeouts using Google Tag Manager and Google Analytics.</p>
<h3>How to use this data?</h3>
<p>Your goal should be to find the optimal timeout duration for your website and audience. The percentage of users who experience the timeout should be kept under 10% and you might consider excluding those with timeouts from your post-analysis process using a custom segment in Google Analytics.</p>
<hr />
<p>Any questions or ideas? As always, feel free to post them in the comments below.</p>
<p>The post <a href="https://reflectivedata.com/tracking-optimize-anti-flicker-snippet-timeout-in-google-analytics/">Tracking Optimize Anti-Flicker Snippet Timeout in Google Analytics</a> appeared first on <a href="https://reflectivedata.com">Reflective Data</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://reflectivedata.com/tracking-optimize-anti-flicker-snippet-timeout-in-google-analytics/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
	</channel>
</rss>
