Combining Silverlight and Google Chart API

It's already almost a year ago when I found out about Google Chart API. I used it for my year ending post of 2007. I haven't done anything useful with Google Chart API after this post. But I'd like to experiment, so I thought what about an integration between Silverlight and the Google Chart API.


The integration is a very slim line. Just a HTTP Get to an Uri that follows the specs in the Google Chart API. The documentation consists of the following parts:

But all I used was basically the example on the API front page:,40&chs=250x100&chl=Hello|World

This example contains the following parts: Chart Type, Chart Data, Chart Size and Chart Labels.

How I want it to work?

I want to be able to do a very simple thing in the Silverlight application. No logic about how the integration is done, is a very important idea. I also have the meaning that we should not have to use a special control to view a chart, just because we already have an Image control for viewing an image. A chart is not that much more than an image, isn't it?

1 var chartData = new GoogleChartData 2 { 3 Size = new Size(400, 200), 4 Type = ChartType.Pie3d, 5 Labels = {"Silverlight", "Flex"}, 6 Data = {"20", "80"}, 7 Title = string.Format("RIA's{0}Compared", Environment.NewLine) 8 }; 9 10 chartImage.SetValue(HeightProperty, chartData.Size.Height); 11 chartImage.SetValue(WidthProperty, chartData.Size.Width); 12 13 chartImage.Source = googleChartBuilder.ConvertFrom(chartData);

Set up the chart data in lines 1 to 8. After this I want to make sure the target image control has the same dimensions as set in the chart data. Then run the GoogleChartBuilder to convert the data to an image.

The inner workings

The GoogleChartData class is just a data structure class.

1 public class GoogleChartData 2 { 3 public GoogleChartData() 4 { 5 Data = new List<string>(); 6 Labels = new List<string>(); 7 } 8 9 public IList<string> Data { get; set; } 10 public IList<string> Labels { get; set; } 11 public Size Size { get; set; } 12 public ChartType Type { get; set; } 13 14 public string Title { get; set; } 15 }

The logic is divided in two classes, one for constructing any uri you can think of, the other one for transforming the GoogleChartData into a querystring dictionary. The UriBuilder is very simple just ensures that the first part is preceded by a ?-character and the next parts are preceded by the &-character.

1 public class UriBuilder : IUriBuilder 2 { 3 public Uri Build(string baseUri, string page, IDictionary<string, string> queryString) 4 { 5 if(string.IsNullOrEmpty(baseUri) && string.IsNullOrEmpty(page)) 6 throw new Exception("baseUri and/or page should be provided."); 7 8 UriKind kind; 9 if (string.IsNullOrEmpty(baseUri)) 10 kind = UriKind.Relative; 11 kind = UriKind.Absolute; 12 13 var uriBuilder = new StringBuilder(string.Concat(baseUri,page)); 14 if(queryString!=null && queryString.Count >0) 15 { 16 char separatorCharacter = '?'; 17 foreach (var queryPart in queryString) 18 { 19 uriBuilder.Append(separatorCharacter); 20 uriBuilder.Append(queryPart.Key); 21 uriBuilder.Append('='); 22 uriBuilder.Append(HttpUtility.UrlEncode(queryPart.Value)); 23 24 separatorCharacter = '&'; 25 } 26 } 27 return new Uri(uriBuilder.ToString(), kind); 28 } 29 }

Now for the part that's responsible for the translation of the GoogleChartData into an uri.

1 public class GoogleChartBuilder : IGoogleChartBuilder 2 { 3 private readonly IUriBuilder uriBuilder; 4 5 public GoogleChartBuilder(IUriBuilder uriBuilder) 6 { 7 this.uriBuilder = uriBuilder; 8 } 9 10 public BitmapImage ConvertFrom(GoogleChartData googleChartData) 11 { 12 IDictionary<string,string> queryString = new Dictionary<string, string>(); 13 14 //ChartSize 15 queryString.Add("chs",string.Format("{0}x{1}",googleChartData.Size.Width,googleChartData.Size.Height)); 16 17 //ChartType 18 if(googleChartData.Type == ChartType.Pie3d) 19 queryString.Add("cht","p3"); 20 21 //Labels 22 if (googleChartData.Labels != null && googleChartData.Labels.Count > 0) 23 queryString.Add("chl",string.Join("|", googleChartData.Labels.ToArray())); 24 25 //Data 26 if (googleChartData.Data != null && googleChartData.Data.Count > 0) 27 queryString.Add("chd", string.Concat("t:",string.Join(",", googleChartData.Data.ToArray()))); 28 //Title 29 if(!string.IsNullOrEmpty(googleChartData.Title)) 30 queryString.Add("chtt",googleChartData.Title.Replace(" ","+").Replace(Environment.NewLine,"|")); 31 return new BitmapImage(uriBuilder.Build("", "chart", queryString)); 32 } 33 }

This isn't that difficult and translates into something like the following.

Google Chart API and Silverlight combined

This solution is not done at all, it's just a proof-of-concept of the integration of Silverlight and the Google Chart API. You can download the sources here.

  • Gravatar Nathan December 8th, 2008 at 18:03
    Just wondering how google handles the maximum url length though? Doesn't this limit you in charting?
  • Gravatar Mark Monster December 9th, 2008 at 22:26
    The maximum url length is more of a trouble for the software that's been used to make or serve the request.

    The following site has some information about the maximum url length:

    I gues Silverlight has the same limitations as the browser used by the end user. This is because Silverlight makes use of the browser to do the connecting to resources like urls.

    Even though the url lengths that are supported are very long, it's past the 2000 characters, I know it's possible to have a chart with more data than this, but I think this won't be in 80 percent of the chart situations.
  • Gravatar August 12th, 2014 at 03:21
    Steps to finding a proper fitting shoe:
  • Gravatar leather collar hamilton October 25th, 2014 at 04:52
    For hottest news you have to pay a quick visit web and on web I found this website as a best web site for most up-to-date updates.
  • Gravatar optimus smartphone standard December 5th, 2014 at 19:21
    Hi, i feel that i noticed you visited my web site so i came to return the favor?.I am attempting to
    to find issues to improve my web site!I suppose its good enough to use some of your ideas!!
  • Gravatar Anne December 7th, 2014 at 06:52
    Undeniably believe that which you said. Your favorite reason seemed to be at the
    internet the simplest factor to take into accout of.
    I say to you, I certainly get irked even as people consider issues that they plainly
    do not understand about. You managed to hit the nail upon the highest and defined out
    the whole thing without having side-effects , folks can take a signal.

    Will probably be again to get more. Thanks

    web page [Anne]
  • Gravatar Nicolas December 14th, 2014 at 08:15
    Yes! Finally someone writes about soporiferous.

    webpage (Nicolas)
  • Gravatar Selena January 12th, 2015 at 03:08
    Quality posts is the main to interest the users to pay a visit the site, that's
    what this web site is providing.

    web site; Selena,
  • Gravatar dinero urgente February 22nd, 2015 at 18:39
    It's a shame you don't have a donate button! I'd most certainly donate to this superb blog!
    I guess for now i'll settle for bookmarking and adding your RSS feed to
    my Google account. I look forward to fresh updates and will
    talk about this website with my Facebook group. Talk soon!
    dinero urgente
  • Gravatar Cecila March 14th, 2015 at 22:58
    When some one searches for his essential thing, so he/she wants to be available that in detail, thus that thing is maintained over here.

    site (Cecila)
  • Gravatar Valeria March 28th, 2015 at 18:18
    Simply want to say your article is as surprising. The clarity on your put up is simply
    great and i can suppose you are a professional in this subject.
    Fine along with your permission let me to grasp your RSS feed to stay up to date with drawing close
    post. Thanks a million and please continue the rewarding work.

    webpage (Valeria)
  • Gravatar Darrell April 4th, 2015 at 19:46
    It is not my first time to visit this web site, i am browsing this site dailly and obtain fastidious information from here daily.

    web page (Darrell)
  • Gravatar Consuelo April 8th, 2015 at 21:47
    Pretty part of content. I simply stumbled upon your site and in accession capital to say that I get in fact enjoyed account your blog posts.
    Anyway I'll be subscribing for your feeds or even I achievement you
    get entry to consistently fast.
    homepage (Consuelo)
  • Gravatar Jacquie May 19th, 2015 at 02:36
    I am really enjoying the theme/design of your website. Do
    you ever run into any web browser compatibility problems?
    A handful of my blog audience have complained about my blog not working correctly in Explorer but
    looks great in Chrome. Do you have any solutions
    to help fix this problem?
    web site (Jacquie)
  • Gravatar Cathryn May 22nd, 2015 at 23:00
    I know this website offers quality based articles or reviews and other stuff, is there any other
    site which provides these kinds of things in quality?

    homepage (Cathryn)
  • Gravatar Rosalyn May 24th, 2015 at 08:20
    Useful info. Fortunate me I found your web site by chance, and I'm shocked why this accident did not came about
    earlier! I bookmarked it.
    site (Rosalyn)
  • Gravatar Garfield June 3rd, 2015 at 21:24
    Excellent site you have here but I was curious if you
    knew of any community forums that cover the same topics talked about here?
    I'd really love to be a part of community where I
    can get suggestions from other experienced people that share the same interest.
    If you have any recommendations, please let me know.
    web page (Garfield)
  • Gravatar jeu gratuit de voitures en ligne July 4th, 2015 at 06:06
    PagesJaunes: retrouvez aisement et vite les coordonnées de spécialistes et via
  • Gravatar Kasey October 29th, 2015 at 00:23
    Nice post. I learn something new and challenging on blogs I stumbleupon every day.
    It's always helpful to read content from other writers and use a little something from their sites.
  • Gravatar why do guys always play video games November 4th, 2015 at 00:25
    The one thing is normally that you have got to make
    certain that the emulator you download can assist the Xbox
    video game you would like to perform in your Mac pc OSX.
  • Gravatar investments with high returns November 12th, 2015 at 17:05
    Many online job opportunities don't require you to make any
    investment at all. Universal trustee is one of the best reputed companies investing in all the
    real projects and getting high returns. Most business owners understand the importance of
    an online presence.
  • Gravatar clash of clans mac December 6th, 2015 at 04:32
    Computer games are also well-known in China.
  • Gravatar comment hacker clash of clans February 21st, 2016 at 22:41
    How is playing video games with your children better than taking
    a short hiking journey, or playing catch with your children?
  • Gravatar gemme illimité February 28th, 2016 at 22:59
    ) Moms and dads also use gaming to talk about
    the dangers of communicating with strangers on the internet.
  • Gravatar Serena February 29th, 2016 at 07:41
    With women the amounts are not perhaps secondary - almost 50% of women between 25 and
    44's ages get acne.
  • Gravatar BethanyKJahn July 25th, 2016 at 07:13
    What's up friends, its impressive paragraph regarding teachingand fully defined, keep
    it up all the time.
  • Gravatar free MovieStarPlanet vip September 1st, 2016 at 19:20
    There are several big-name applications that use Touch ID, including 1Password, Dashlane, Dropbox
    and evernote.
  • Gravatar Virgilio September 16th, 2016 at 02:31
    Plase let me know if you're looking for a writer for your
    weblog. You have some really good articles and I beleve I would be a good asset.
    If youu ever want too take some of the load off, I'd absolutely love to write some content for your blog in exchange for a link bacfk to mine.
    Please shoot me an e-mail if interested. Regards!
  • Gravatar February 20th, 2017 at 10:56
    It's enormous that you are getting thoughts from this
    post as well as from our dialogue made here.
  • Gravatar Dedra March 9th, 2017 at 14:48
    I believe other website proprietors should take
    this site as an example, very clean and fantastic user friendly design.
  • Gravatar マッチブック March 15th, 2017 at 16:00







  • Gravatar Lottery Date Result May 19th, 2017 at 12:14
    You can put things from across the various social networks into this as well as
    post articles. The prominent phrase, "Winning is not everything" is better demonstrated
    by the individuals noted below. Keywords are words and phrases that filters (and every
    email reader in the world) have come to associate with spam.

    A lot of poker blogs have sprung up in the name of the now-so-widespread online poker and internet gambling trends that the problem is you don.
  • Gravatar suba lube August 15th, 2018 at 14:56
    zOvjVR This excellent website certainly has all the information and facts I needed about this subject and didn at know who to ask.
  • Gravatar nyc company offering free quotes August 17th, 2018 at 16:01
    Wow, great article.Really looking forward to read more. Great.
  • Gravatar my pham xach tay Han Quoc August 18th, 2018 at 17:51
    I truly appreciate this article post.Really looking forward to read more. Awesome.
  • Gravatar dich vu hoa tang August 18th, 2018 at 18:08
    You produced some decent points there. I looked on the net to the issue and found many people go together with together together with your internet web site.
  • Gravatar walmart one August 21st, 2018 at 10:22
    Thank you ever so for you post.Much thanks again. Fantastic.
  • Gravatar luggage storage london euston August 21st, 2018 at 17:57
    Major thanks for the blog article.Really looking forward to read more. Will read on
  • Gravatar Course August 23rd, 2018 at 06:32
    slot machine gratis gallina dalle uova d aoro
  • Gravatar Prediksi Togel Singapura August 23rd, 2018 at 06:41
    Thanks a lot for the article post.Really thank you! Great.
  • Gravatar redmond oregon locksmith August 24th, 2018 at 11:33
    Thanks, I have been hunting for details about this subject for ages and yours is the best I ave found so far.
  • Gravatar August 24th, 2018 at 15:04
    long time now and finally got the courage to go ahead and give you a shout out
  • Gravatar this website August 24th, 2018 at 16:27
    It is a pity, that now I can not express I hurry up on job. I will be released I will necessarily express the opinion on this question.
  • Gravatar Lois August 26th, 2018 at 07:21
    The basis causes of the problems in our life.
  • Gravatar rock paper scissors hoop hop showdown August 27th, 2018 at 15:53
    There is certainly a lot to find out about this issue. I like all of the points you have made.
  • Gravatar click here August 28th, 2018 at 09:25
    Wow, amazing blog layout! How long have you been blogging for?
  • Gravatar click here August 28th, 2018 at 23:08
    This is one awesome article.Thanks Again. Really Great.
  • Gravatar cap quang fpt August 29th, 2018 at 16:21
    You made some first rate points there. I appeared on the internet for the problem and found most individuals will associate with along with your website.
  • Gravatar ban binh shisha tai tphcm August 29th, 2018 at 17:48
    Say, you got a nice article.Really thank you! Will read on
  • Gravatar Rolex Replica watch August 30th, 2018 at 21:52
    I would like to uslysht just a little more on this topic
  • Gravatar apps download for windows 10 September 2nd, 2018 at 08:03
    This is a very good tip especially to those new to the blogosphere. Simple but very accurate info Thank you for sharing this one. A must read article!
  • Gravatar download games for windows 7 September 2nd, 2018 at 09:29
    This web site is known as a stroll-through for all of the info you wanted about this and didn?t know who to ask. Glimpse right here, and also you?ll definitely uncover it.
  • Gravatar apps for windows pc download September 2nd, 2018 at 10:54
    With thanks for sharing this excellent web-site.|
  • Gravatar free apps download for windows 10 September 2nd, 2018 at 12:18
    Wohh exactly what I was looking for, regards for putting up.
  • Gravatar September 2nd, 2018 at 19:07
    There is obviously a lot to know about this. I think you made various good points in features also.
  • Gravatar bitcoin server hosting September 2nd, 2018 at 20:31
    I really liked your blog article.Really looking forward to read more. Really Cool.
  • Gravatar hampton bay September 4th, 2018 at 10:57
    you could have an remarkable weblog below! would you like to make a number of invite posts on my own blog?
  • Gravatar luxury brands September 4th, 2018 at 15:34
    Really appreciate you sharing this blog article. Cool.
  • Gravatar khach san nha trang gia re September 5th, 2018 at 10:19
    I'а†ve recently started a website, the information you provide on this web site has helped me greatly. Thank you for all of your time & work.
  • Gravatar the party never stops in Spain September 10th, 2018 at 15:25
    Thanks, However I am having difficulties with
  • Gravatar barcelona strip club September 11th, 2018 at 17:04
    Muchos Gracias for your blog. Much obliged.
  • Gravatar calories in fruit September 13th, 2018 at 03:45
    This blog is obviously awesome as well as informative. I have picked a bunch of handy advices out of this source. I ad love to return over and over again. Thanks a lot!
  • Gravatar visit website September 13th, 2018 at 09:39
    Im grateful for the blog post.Really thank you! Awesome.
  • Gravatar Marijuana SEO September 17th, 2018 at 22:03
    There is certainly a great deal to learn about this topic. I like all the points you made.
  • Gravatar September 18th, 2018 at 13:25
    Thank you for all of the effort on this blog
  • Gravatar Situs Poker Online September 21st, 2018 at 18:34
    There is apparently a lot to realize about this. I think you made some nice points in features also.
  • Gravatar learn more September 24th, 2018 at 14:23
    Just Browsing While I was surfing yesterday I saw a great article concerning
  • Gravatar reddit cryptocurrency September 26th, 2018 at 10:58
    Would you be interested by exchanging hyperlinks?
  • Gravatar bachelor party strippers September 27th, 2018 at 15:48
    I went over this web site and I believe you have a lot of good info, saved to fav (:.
  • Gravatar barcelona clubs September 27th, 2018 at 20:20
    who had been conducting a little homework on this. And he in
  • Gravatar free download for windows 7 October 2nd, 2018 at 08:23
    Would love to incessantly get updated great web site!.
  • Gravatar online pharmacy Europe October 3rd, 2018 at 20:24
    I value the blog article.Really looking forward to read more. Fantastic.
  • Gravatar Androzene October 4th, 2018 at 09:24
    Simply wanna comment that you have a very decent site, I enjoy the layout it actually stands out.
  • Gravatar ro server October 5th, 2018 at 11:15
    Thanks For This Blog, was added to my bookmarks.
  • Gravatar iHerb HK October 5th, 2018 at 12:23
    I really liked your blog article.Really looking forward to read more. Will read on...
  • Gravatar the fappening October 6th, 2018 at 00:08
    This is one awesome article post.Much thanks again.
  • Gravatar ro server October 6th, 2018 at 12:56
    I went over this website and I believe you have a lot of good info, saved to fav (:.
  • Gravatar pc software full download October 6th, 2018 at 20:09
    Major thanks for the blog article. Great.
  • Gravatar free download for windows October 7th, 2018 at 00:49
    This site truly has all the info I needed concerning this subject and didn at know who to ask.
  • Gravatar games for windows pc download October 7th, 2018 at 03:24
    I really liked your blog post.Much thanks again. Want more.
  • Gravatar free app for pc download October 7th, 2018 at 06:03
    This awesome blog is without a doubt entertaining as well as diverting. I have picked a lot of useful things out of this blog. I ad love to go back every once in a while. Thanks a lot!
  • Gravatar app download for windows 8 October 7th, 2018 at 14:13
    Im thankful for the blog post.Much thanks again. Awesome.
  • Gravatar matka result October 9th, 2018 at 04:34
    Merely wanna comment that you have a very decent site, I like the style and design it really stands out.
  • Gravatar Night Watch Nigeria October 9th, 2018 at 06:12
    Im obliged for the blog article.Much thanks again. Cool.
  • Gravatar Chaos magick forum October 9th, 2018 at 17:26
    Really appreciate you sharing this blog.Really looking forward to read more. Want more.
  • Gravatar Bandar Togel October 9th, 2018 at 22:00
    Right now it seems like WordPress is the best blogging platform available right now. (from what I ave read) Is that what you are using on your blog?
  • Gravatar Android Games October 10th, 2018 at 17:12
    it for him lol. So let me reword this. Thanks for the meal!!
  • Gravatar 2758068 October 11th, 2018 at 07:29
    will be checking back soon. Please check out
  • Gravatar October 11th, 2018 at 22:32
    What as up, I read your blog regularly. Your writing style is awesome, keep up the good work!
  • Gravatar thesurveyhelper weebly October 13th, 2018 at 17:18
    It'а†s really a great and useful piece of info. I'а†m glad that you just shared this helpful info with us. Please stay us up to date like this. Thanks for sharing.
  • Gravatar gist me blog October 14th, 2018 at 08:38
    This website has lots of extremely useful info on it. Thanks for sharing it with me!
  • Gravatar visit website October 15th, 2018 at 23:03
    Very Fascinating Weblog! Thank You For This Weblog!
  • Gravatar Mau thiet ke biet thu dep October 16th, 2018 at 00:26
    story. I was surprised you aren at more popular given that you definitely possess the gift.
  • Gravatar Villa Concierge Bali October 16th, 2018 at 04:23
    sure, analysis is paying off. Seriously handy perspective, many thanks for sharing.. Truly handy point of view, many thanks for expression.. Fantastic beliefs you have here..
  • Gravatar cho thue may photo tai binh duong October 18th, 2018 at 01:18
    Wohh exactly what I was looking for, regards for putting up.
  • Gravatar click here October 18th, 2018 at 10:13
    Thanks for sharing, this is a fantastic blog.Really thank you! Cool.
  • Gravatar see the website October 19th, 2018 at 00:30
    you might have a terrific weblog right here! would you wish to make some invite posts on my weblog?
  • Gravatar Daftar Bandar Togel Terpercaya October 25th, 2018 at 13:49
    I truly appreciate this post.Thanks Again.
  • Gravatar bobsweep robot vacuum October 25th, 2018 at 18:08
    There is noticeably a bundle to learn about this. I assume you made certain good factors in options also.
  • Gravatar youtube promotion October 26th, 2018 at 22:54
    It is really a nice and helpful piece of information. I am satisfied that you just shared this helpful tidbit with us. Please stay us up to date like this. Thank you for sharing.
  • Gravatar to learn more October 27th, 2018 at 08:42
    Oh my goodness! an amazing article. Thank you!
  • Gravatar click here October 27th, 2018 at 14:19
    It as in reality a great and helpful piece of info. I am happy that you just shared this useful tidbit with us. Please keep us up to date like this. Thanks for sharing.
  • Gravatar video downloader October 27th, 2018 at 18:21
    I was very pleased to find this website. I wanted to thank you for your time for this wonderful post!! I definitely enjoy reading it and I have you bookmarked to check out new stuff you blog post.
  • Gravatar apps download for windows 10 October 28th, 2018 at 04:26
    This awesome blog is without a doubt cool additionally informative. I have picked up a bunch of handy advices out of it. I ad love to go back again soon. Thanks a bunch!
  • Gravatar tri benh tieu duong October 30th, 2018 at 09:56
    Major thankies for the article post.Really looking forward to read more. Want more.
  • Gravatar zamena batarey otopleniya v Nizjnem Novgorode October 30th, 2018 at 13:16
    Major thankies for the blog article.Thanks Again. Great.
  • Gravatar zamena batarey otopleniya v Yaroslavle October 30th, 2018 at 13:45
    your RSS. I don at know why I am unable to subscribe to it. Is there anyone else having similar RSS issues? Anyone that knows the answer can you kindly respond? Thanks!!
  • Gravatar to read more October 31st, 2018 at 15:31
    Im no pro, but I suppose you just made an excellent point. You naturally understand what youre talking about, and I can truly get behind that. Thanks for being so upfront and so honest.
  • Gravatar go November 3rd, 2018 at 06:27
    This awesome blog is really awesome and informative. I have chosen a lot of handy advices out of this amazing blog. I ad love to go back again and again. Thanks!
  • Gravatar link November 3rd, 2018 at 08:14
    Muchos Gracias for your post.Really looking forward to read more. Awesome.
  • Gravatar to learn more November 4th, 2018 at 01:36
    Say, you got a nice blog.Thanks Again. Fantastic.
  • Gravatar motor club or America scam November 5th, 2018 at 17:14
    si ca c est pas de l infos qui tue sa race
  • It as nearly impossible to find well-informed people in this particular subject, however, you sound like you know what you are talking about! Thanks|
  • Gravatar visit website November 6th, 2018 at 12:53
    Thanks for the article post.Really looking forward to read more. Much obliged.
  • Gravatar cbd oil November 6th, 2018 at 16:52
    Valuable info. Lucky me I found your site by accident, and I am shocked why this accident did not happened earlier! I bookmarked it.
  • Gravatar posicionar mi web November 7th, 2018 at 00:34
    Really informative post.Really looking forward to read more. Really Great.
  • Gravatar Puzzle Games Free Download For PC November 7th, 2018 at 10:46
    Thank you for your blog post.Really thank you! Great.
  • Gravatar gta san andreas free download for pc November 7th, 2018 at 22:41
    I really liked your article.Much thanks again. Cool.
  • Gravatar site November 8th, 2018 at 00:47
    Thanks a lot for sharing this with all people you actually recognize what you are talking about! Bookmarked. Please also consult with my site =). We could have a link exchange contract among us!
  • Gravatar click here November 8th, 2018 at 13:08
    Thanks foor a marfelous posting! I really enjoyed reading it,
  • Gravatar Bobsweep Pethair plus reviews November 8th, 2018 at 14:30
    You made some clear points there. I looked on the internet for the issue and found most individuals will go along with with your site.
  • Gravatar Bobsweep pro reviews November 8th, 2018 at 15:43
    I want to start a fashion blog but have no idea where to start?
  • Gravatar gta vice city game download windows 7 November 8th, 2018 at 17:58
    Major thanks for the article post.Thanks Again. Much obliged.
  • Gravatar November 12th, 2018 at 13:40
    we came across a cool internet site which you may possibly love. Take a look if you want
  • Gravatar free crypto currency November 13th, 2018 at 04:51
    ItaаАа’б‚Т€ТšаЂаŒаАа’б‚Т€ТžаБТžs tremendous weblog, I desire to be like you