# Tasks to be done inside GetImageCore

**URL:** <https://community.thinkgeo.com/t/tasks-to-be-done-inside-getimagecore/948>\
**Category:** WinForms\
**Created:** [January 6, 2010, 12:38pm UTC](https://community.thinkgeo.com/t/tasks-to-be-done-inside-getimagecore/948 "2010-01-06T12:38:55Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![arsenico](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/a/3da27b/32.png) [@arsenico](https://community.thinkgeo.com/u/arsenico)\
**Post date:** [January 6, 2010, 12:38pm UTC](https://community.thinkgeo.com/t/tasks-to-be-done-inside-getimagecore/948/1 "2010-01-06T12:38:55Z")

</div>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

Hi&nbsp;everyone!  
  
  
  
Here's&nbsp;my&nbsp;story.  
  
  
  
I'm&nbsp;writing&nbsp;my&nbsp;own&nbsp;RasterLayer&nbsp;and&nbsp;RasterSource&nbsp;to&nbsp;add&nbsp;native&nbsp;.NET&nbsp;support&nbsp;to&nbsp;Map&nbsp;Suite&nbsp;3.0&nbsp;to&nbsp;work&nbsp;with&nbsp;BSB&nbsp;Charts&nbsp;(.KAP&nbsp;and&nbsp;Geo).  
  
  
  
So&nbsp;far&nbsp;I’m&nbsp;able&nbsp;to&nbsp;decode&nbsp;correctly&nbsp;the&nbsp;image&nbsp;and&nbsp;extract&nbsp;all&nbsp;the&nbsp;georeference&nbsp;data.  
  
  
  
In&nbsp;my&nbsp;very&nbsp;first&nbsp;approach&nbsp;I&nbsp;converted&nbsp;the&nbsp;BSB&nbsp;Image&nbsp;into&nbsp;a&nbsp;Gif&nbsp;and&nbsp;then&nbsp;I&nbsp;passed&nbsp;that&nbsp;gif&nbsp;to&nbsp;the&nbsp;GdiPlusRasterLayer,&nbsp;but  
  
these&nbsp;files&nbsp;are&nbsp;really&nbsp;big&nbsp;so&nbsp;the&nbsp;GdiPlusRasterLayer&nbsp;failed&nbsp;on&nbsp;the&nbsp;drawing&nbsp;stage&nbsp;&nbsp;because&nbsp;of&nbsp;a&nbsp;lack&nbsp;of&nbsp;memory&nbsp;(My&nbsp;laptop&nbsp;has&nbsp;3&nbsp;GB&nbsp;I&nbsp;think&nbsp;that's&nbsp;enough&nbsp;isn't&nbsp;it?)  
  
  
  
So&nbsp;that's&nbsp;why&nbsp;I&nbsp;came&nbsp;up&nbsp;with&nbsp;the&nbsp;idea&nbsp;of&nbsp;implementing&nbsp;my&nbsp;on&nbsp;RasterLayer&nbsp;and&nbsp;RasterSource.&nbsp;So&nbsp;now&nbsp;everything&nbsp;is&nbsp;implemented&nbsp;but&nbsp;GetImageCore&nbsp;Method&nbsp;in&nbsp;the&nbsp;RasterSource&nbsp;derived&nbsp;class(Well&nbsp;as&nbsp;a&nbsp;matter&nbsp;of&nbsp;fact&nbsp;it&nbsp;is&nbsp;but&nbsp;I’m&nbsp;not&nbsp;so&nbsp;sure&nbsp;of&nbsp;what&nbsp;to&nbsp;do).  
  
  
  
I've&nbsp;been&nbsp;doing&nbsp;some&nbsp;tests&nbsp;and&nbsp;I&nbsp;think&nbsp;I'm&nbsp;close,&nbsp;I&nbsp;can&nbsp;draw&nbsp;an&nbsp;almost&nbsp;well&nbsp;scaled&nbsp;and&nbsp;positioned&nbsp;image&nbsp;using&nbsp;the&nbsp;chart's&nbsp;extent,but&nbsp;I’m&nbsp;having&nbsp;problems&nbsp;to&nbsp;scale&nbsp;it&nbsp;while&nbsp;I&nbsp;zoom&nbsp;in.(Zooming&nbsp;out&nbsp;seems&nbsp;not&nbsp;a&nbsp;problem,&nbsp;because&nbsp;I'm&nbsp;already&nbsp;able&nbsp;to&nbsp;downscale&nbsp;the&nbsp;image).

 ![](https://community.thinkgeo.com/uploads/default/original/1X/c83ba4ca53d7dc1b917675e87c1672954e5ca36f.jpg)  
  
So&nbsp;finally,&nbsp;my&nbsp;question&nbsp;is:  
  
  
  
What&nbsp;are&nbsp;the&nbsp;tasks&nbsp;that&nbsp;have&nbsp;to&nbsp;be&nbsp;done&nbsp;inside&nbsp;GetImageCore&nbsp;method;&nbsp;do&nbsp;I&nbsp;have&nbsp;to&nbsp;clip&nbsp;the&nbsp;Image&nbsp;for&nbsp;panning&nbsp;and&nbsp;zooming?&nbsp;How&nbsp;do&nbsp;I&nbsp;compute&nbsp;the&nbsp;right&nbsp;source&nbsp;rectangle&nbsp;for&nbsp;any&nbsp;part&nbsp;of&nbsp;the&nbsp;image&nbsp;if&nbsp;I’m&nbsp;clipping&nbsp;the&nbsp;image?&nbsp;If&nbsp;just&nbsp;a&nbsp;little&nbsp;part&nbsp;of&nbsp;the&nbsp;image&nbsp;is&nbsp;visible&nbsp;do&nbsp;I&nbsp;have&nbsp;to&nbsp;build&nbsp;and&nbsp;return&nbsp;the&nbsp;whole&nbsp;Image&nbsp;for&nbsp;that&nbsp;extent?

So&nbsp;far&nbsp;this&nbsp;is&nbsp;what&nbsp;I&nbsp;have&nbsp;coded:

` Protected Overrides Function GetImageCore(ByVal worldExtent As ThinkGeo.MapSuite.Core.RectangleShape, ByVal canvasWidth As Integer, ByVal canvasHeight As Integer) As ThinkGeo.MapSuite.Core.GeoImage         Dim canvas As GdiPlusGeoCanvas         Dim imagenGeo As GeoImage         Dim imagenNativa As Bitmap         Dim imagenBSB As Bitmap         Dim gr As Graphics         Dim escalaY As Double         Dim regionOrigen As Rectangle         Dim regionDestino As Rectangle         Dim punto(3) As ScreenPointF #If DEBUG Then         Dim tiempo As System.Diagnostics.Stopwatch         tiempo = System.Diagnostics.Stopwatch.StartNew() #End If                   If worldExtent.Contains(_coverturaReal) Then                         punto(0) = New ScreenPointF(0, 0)             punto(1) = New ScreenPointF(_encabezado.Medidas.Width, _encabezado.Medidas.Height)              punto(2) = ExtentHelper.ToScreenCoordinate(worldExtent, _coverturaReal.UpperLeftPoint.X, _coverturaReal.UpperLeftPoint.Y, canvasWidth, canvasHeight)             punto(3) = ExtentHelper.ToScreenCoordinate(worldExtent, _coverturaReal.LowerRightPoint.X, _coverturaReal.LowerRightPoint.Y, canvasWidth, canvasHeight)         Else             punto(0) = ExtentHelper.ToScreenCoordinate(_coverturaReal, worldExtent.UpperLeftPoint.X, worldExtent.UpperLeftPoint.Y, _encabezado.Medidas.Width, _encabezado.Medidas.Height)             punto(1) = ExtentHelper.ToScreenCoordinate(_coverturaReal, worldExtent.LowerRightPoint.X, worldExtent.LowerRightPoint.Y, _encabezado.Medidas.Width, _encabezado.Medidas.Height)              punto(2) = New ScreenPointF(0, 0)             punto(3) = New ScreenPointF(canvasWidth, canvasHeight)         End If                   'Obtenemos el area que tenemos destinada para trabajar         regionOrigen = New Rectangle(CInt(punto(0).X), CInt(punto(0).Y), CInt(punto(1).X - punto(0).X), CInt(punto(1).Y - punto(0).Y))         regionDestino = New Rectangle(0, 0, CInt(punto(3).X - punto(2).X), CInt(punto(3).Y - punto(2).Y))          escalaY = CDbl(regionDestino.Height) / CDbl(regionOrigen.Height)         Debug.Print(escalaY)         If escalaY <= 1 Then             'achicamos la imagen             imagenNativa = CreaImagenEscalada(escalaY, regionOrigen, regionDestino.Width, regionDestino.Height)         Else             'tenemos que agrandar la imagen, creo que eso es mas facil             imagenBSB = CreaImagenEscalada(1, regionOrigen, regionOrigen.Width, regionOrigen.Height)             imagenNativa = New Bitmap(canvasWidth, canvasHeight)             gr = Graphics.FromImage(imagenNativa)             gr.DrawImage(imagenBSB, regionDestino, regionOrigen, GraphicsUnit.Pixel)         End If          canvas = New GdiPlusGeoCanvas()         imagenGeo = canvas.ToGeoImage(imagenNativa) #If DEBUG Then         tiempo.Stop()         Debug.Print(tiempo.ElapsedMilliseconds) #End If         Return imagenGeo     End Function `

Well&nbsp;I&nbsp;Know&nbsp;those&nbsp;are&nbsp;many&nbsp;questions,&nbsp;but&nbsp;they&nbsp;all&nbsp;fall&nbsp;inside&nbsp;the&nbsp;main&nbsp;question.What&nbsp;are&nbsp;the&nbsp;tasks&nbsp;that&nbsp;have&nbsp;to&nbsp;be&nbsp;done&nbsp;inside&nbsp;GetImageCore&nbsp;method?  
  
  
  
I&nbsp;hope&nbsp;I&nbsp;didn’t&nbsp;got&nbsp;you&nbsp;bored&nbsp;with&nbsp;all&nbsp;this,&nbsp;and&nbsp;also&nbsp;I&nbsp;hope&nbsp;I&nbsp;got&nbsp;myself&nbsp;understood,&nbsp;and&nbsp;last&nbsp;and&nbsp;most&nbsp;importantly&nbsp;I&nbsp;hope&nbsp;someone&nbsp;can&nbsp;help&nbsp;me&nbsp;out&nbsp;with&nbsp;this.  
  
  
  
Thank&nbsp;you.

&nbsp;

---

<div class="post-metadata">

**Author:** ![ThinkGeo](https://community.thinkgeo.com/user_avatar/community.thinkgeo.com/thinkgeo/32/25029_2.png) [@ThinkGeo](https://community.thinkgeo.com/u/ThinkGeo)\
**Post date:** [January 6, 2010, 7:32pm UTC](https://community.thinkgeo.com/t/tasks-to-be-done-inside-getimagecore/948/2 "2010-01-06T19:32:14Z")

</div>

Ingemar,

Thanks&nbsp;for&nbsp;your&nbsp;post&nbsp;and&nbsp;question,&nbsp;it&nbsp;sounds&nbsp;interesting.&nbsp;Hope&nbsp;my&nbsp;following&nbsp;can&nbsp;give&nbsp;you&nbsp;some&nbsp;hints.  
&nbsp;  
Basicly&nbsp;the&nbsp;funciton&nbsp;GetImageCore&nbsp;is&nbsp;very&nbsp;critical&nbsp;for&nbsp;RasterLayer&nbsp;&&nbsp;RasterSource,&nbsp;it&nbsp;is&nbsp;the&nbsp;core&nbsp;place&nbsp;we&nbsp;implement&nbsp;our&nbsp;logic&nbsp;to&nbsp;get&nbsp;image&nbsp;back&nbsp;from&nbsp;the&nbsp;data&nbsp;source,&nbsp;then&nbsp;the&nbsp;rest&nbsp;of&nbsp;work&nbsp;is&nbsp;just&nbsp;put&nbsp;the&nbsp;image&nbsp;into&nbsp;proper&nbsp;place&nbsp;in&nbsp;the&nbsp;MapControl.  
&nbsp;  
As&nbsp;you&nbsp;can&nbsp;see&nbsp;,&nbsp;following&nbsp;is&nbsp;the&nbsp;API&nbsp;for&nbsp;GetImageCore,&nbsp;I&nbsp;will&nbsp;explain&nbsp;it&nbsp;in&nbsp;detail.  
`protected override GeoImage GetImageCore(RectangleShape worldExtent, int canvasWidth, int canvasHeight)`  
&nbsp;  
worldExtent&nbsp;is&nbsp;the&nbsp;extent&nbsp;we&nbsp;want&nbsp;to&nbsp;view&nbsp;on&nbsp;the&nbsp;Map,&nbsp;that&nbsp;is&nbsp;the&nbsp;extent&nbsp;we&nbsp;panned&nbsp;or&nbsp;zoom&nbsp;in&nbsp;or&nbsp;zoom&nbsp;out,&nbsp;it&nbsp;also&nbsp;can&nbsp;be&nbsp;considered&nbsp;the&nbsp;canvas&nbsp;extent&nbsp;or&nbsp;map&nbsp;extent(in&nbsp;Desktop&nbsp;Edition),&nbsp;the&nbsp;canvasWidth&nbsp;and&nbsp;canvasHeight&nbsp;is&nbsp;the&nbsp;screen&nbsp;width&nbsp;&&nbsp;screen&nbsp;height&nbsp;for&nbsp;the&nbsp;worldExtent,&nbsp;it&nbsp;may&nbsp;be&nbsp;or&nbsp;may&nbsp;not&nbsp;be&nbsp;the&nbsp;final&nbsp;returned&nbsp;image&nbsp;widht&nbsp;and&nbsp;height.  
&nbsp;  
1)If&nbsp;the&nbsp;worldExtent(viewExtent)&nbsp;is&nbsp;completely&nbsp;within&nbsp;the&nbsp;image&nbsp;extent.&nbsp;Then&nbsp;we&nbsp;do&nbsp;2&nbsp;steps:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Step1:&nbsp;Fetch&nbsp;image&nbsp;accroding&nbsp;to&nbsp;the&nbsp;worldExtent&nbsp;and&nbsp;image&nbsp;extent,&nbsp;this&nbsp;image&nbsp;widht&nbsp;&&nbsp;height&nbsp;may&nbsp;not&nbsp;be&nbsp;identical&nbsp;with&nbsp;canvasWidth&nbsp;and&nbsp;canvasHeight.  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Step2:&nbsp;Scale&nbsp;up&nbsp;or&nbsp;Scale&nbsp;down&nbsp;the&nbsp;step1&nbsp;image&nbsp;to&nbsp;match&nbsp;up&nbsp;the&nbsp;canvasWidth&nbsp;and&nbsp;canvasHeight.  
&nbsp;  
2)&nbsp;If&nbsp;the&nbsp;worldExtent(viewExtent)&nbsp;is&nbsp;only&nbsp;patitional&nbsp;within&nbsp;the&nbsp;image&nbsp;extent.&nbsp;Then&nbsp;it&nbsp;will&nbsp;much&nbsp;more&nbsp;complex.  
&nbsp;&nbsp;&nbsp;&nbsp;Step1:&nbsp;Caculate&nbsp;the&nbsp;intersection&nbsp;extent&nbsp;between&nbsp;worldExtent&nbsp;and&nbsp;image&nbsp;extent,&nbsp;let&nbsp;us&nbsp;call&nbsp;intersectionExtent.  
&nbsp;&nbsp;&nbsp;&nbsp;Step2:&nbsp;Get&nbsp;the&nbsp;width&nbsp;and&nbsp;height&nbsp;for&nbsp;the&nbsp;intersectionExtent&nbsp;in&nbsp;the&nbsp;Canvas&nbsp;according&nbsp;to&nbsp;the&nbsp;worldExtent,&nbsp;canvasWidth&nbsp;and&nbsp;canvasHeight.&nbsp;Because&nbsp;when&nbsp;we&nbsp;do&nbsp;scaling&nbsp;up&nbsp;or&nbsp;scaling&nbsp;down,&nbsp;we&nbsp;will&nbsp;just&nbsp;math&nbsp;it&nbsp;to&nbsp;the&nbsp;intersectionCanvasWidth&nbsp;and&nbsp;canvasHeight.  
&nbsp;&nbsp;&nbsp;Step3:&nbsp;Fetch&nbsp;image&nbsp;from&nbsp;the&nbsp;accroding&nbsp;to&nbsp;the&nbsp;intersection&nbsp;extent&nbsp;and&nbsp;image&nbsp;extent.  
&nbsp;&nbsp;&nbsp;Step4:&nbsp;Scaling&nbsp;up&nbsp;and&nbsp;Scaling&nbsp;down&nbsp;the&nbsp;step3&nbsp;image&nbsp;to&nbsp;match&nbsp;up&nbsp;the&nbsp;intersection&nbsp;extent&nbsp;canvas&nbsp;widht&nbsp;and&nbsp;intersection&nbsp;extent&nbsp;canvas&nbsp;height.  
&nbsp;  
&nbsp;  
Following&nbsp;step&nbsp;is&nbsp;done&nbsp;in&nbsp;RasterLayer,&nbsp;if&nbsp;you&nbsp;also&nbsp;override&nbsp;the&nbsp;API&nbsp;in&nbsp;RasterLayer&nbsp;,&nbsp;you&nbsp;have&nbsp;to&nbsp;pay&nbsp;some&nbsp;attention&nbsp;to&nbsp;it:  
`protected override void DrawCore(GeoCanvas canvas, Collection<SimpleCandidate> labelsInAllLayers)`  
&nbsp;&nbsp;&nbsp;Step5:&nbsp;Draw&nbsp;the&nbsp;scaled&nbsp;image&nbsp;in&nbsp;step4&nbsp;into&nbsp;a&nbsp;proper&nbsp;place,&nbsp;so&nbsp;we&nbsp;we&nbsp;return&nbsp;the&nbsp;image,&nbsp;its&nbsp;widht&nbsp;and&nbsp;height&nbsp;is&nbsp;still&nbsp;canvasWidth&nbsp;and&nbsp;canvasHeight&nbsp;while&nbsp;only&nbsp;the&nbsp;intersection&nbsp;part&nbsp;have&nbsp;image&nbsp;on&nbsp;it.  
&nbsp;  
If&nbsp;I&nbsp;am&nbsp;not&nbsp;clear,&nbsp;please&nbsp;feel&nbsp;free&nbsp;to&nbsp;let&nbsp;me&nbsp;know.  
&nbsp;  
Thanks  
&nbsp;  
Yale

---

<div class="post-metadata">

**Author:** ![arsenico](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/a/3da27b/32.png) [@arsenico](https://community.thinkgeo.com/u/arsenico)\
**Post date:** [January 7, 2010, 7:22pm UTC](https://community.thinkgeo.com/t/tasks-to-be-done-inside-getimagecore/948/3 "2010-01-07T19:22:02Z")

</div>

Thanks&nbsp;a&nbsp;lot!!&nbsp;Yale.&nbsp;  
&nbsp;&nbsp;  
&nbsp;It&nbsp;works!!!&nbsp;…well&nbsp;almost,&nbsp;I&nbsp;still&nbsp;have&nbsp;to&nbsp;deal&nbsp;with&nbsp;the&nbsp;coverage,&nbsp;as&nbsp;you&nbsp;can&nbsp;see&nbsp;on&nbsp;the&nbsp;image&nbsp;attached,&nbsp;&nbsp;  
&nbsp;anyway&nbsp;the&nbsp;zoom&nbsp;it’s&nbsp;working.&nbsp;I&nbsp;hope&nbsp;I&nbsp;can&nbsp;finish&nbsp;this&nbsp;soon&nbsp;so&nbsp;I&nbsp;can&nbsp;use&nbsp;it&nbsp;and&nbsp;post&nbsp;it&nbsp;in&nbsp;the&nbsp;code&nbsp;community&nbsp;  
&nbsp;&nbsp;  
&nbsp;Thanks&nbsp;a&nbsp;lot&nbsp;again!!!

---

<div class="post-metadata">

**Author:** ![ThinkGeo](https://community.thinkgeo.com/user_avatar/community.thinkgeo.com/thinkgeo/32/25029_2.png) [@ThinkGeo](https://community.thinkgeo.com/u/ThinkGeo)\
**Post date:** [January 7, 2010, 8:29pm UTC](https://community.thinkgeo.com/t/tasks-to-be-done-inside-getimagecore/948/4 "2010-01-07T20:29:50Z")

</div>

Ingemar,&nbsp;  
&nbsp;&nbsp;  
&nbsp;You&nbsp;are&nbsp;welcome,&nbsp;very&nbsp;glad&nbsp;to&nbsp;work&nbsp;with&nbsp;you.&nbsp;  
&nbsp;&nbsp;  
&nbsp;Thanks&nbsp;for&nbsp;your&nbsp;post&nbsp;and&nbsp;sharing&nbsp;on&nbsp;this.&nbsp;Now,&nbsp;I&nbsp;am&nbsp;not&nbsp;very&nbsp;clear&nbsp;about&nbsp;your&nbsp;problem,&nbsp;also&nbsp;I&nbsp;did&nbsp;not&nbsp;see&nbsp;your&nbsp;image&nbsp;in&nbsp;attachment.&nbsp;  
&nbsp;&nbsp;  
&nbsp;Any&nbsp;more&nbsp;information&nbsp;would&nbsp;be&nbsp;appricated.&nbsp;  
&nbsp;&nbsp;  
&nbsp;Thanks.&nbsp;  
&nbsp;&nbsp;  
&nbsp;Yale&nbsp;

---

<div class="post-metadata">

**Author:** ![arsenico](https://community.thinkgeo.com/letter_avatar_proxy/v4/letter/a/3da27b/32.png) [@arsenico](https://community.thinkgeo.com/u/arsenico)\
**Post date:** [January 8, 2010, 9:54am UTC](https://community.thinkgeo.com/t/tasks-to-be-done-inside-getimagecore/948/5 "2010-01-08T09:54:44Z")

</div>

Yale,&nbsp;  
&nbsp;&nbsp;  
&nbsp;Sorry&nbsp;about&nbsp;that,&nbsp;the&nbsp;Image&nbsp;I&nbsp;was&nbsp;writing&nbsp;about&nbsp;was&nbsp;the&nbsp;first&nbsp;Image&nbsp;I&nbsp;attached&nbsp;to&nbsp;the&nbsp;post.&nbsp;In&nbsp;the&nbsp;image&nbsp;you&nbsp;can&nbsp;see&nbsp;the&nbsp;BSB&nbsp;chart&nbsp;and&nbsp;above&nbsp;it&nbsp;a&nbsp;ShapeFileLayer.&nbsp;Seems&nbsp;that&nbsp;both&nbsp;aren’t&nbsp;matching.&nbsp;I’ve&nbsp;been&nbsp;reading&nbsp;a&nbsp;bit&nbsp;and&nbsp;seems&nbsp;that&nbsp;I&nbsp;gotta&nbsp;do&nbsp;some&nbsp;math&nbsp;to&nbsp;get&nbsp;an&nbsp;error&nbsp;factor&nbsp;and&nbsp;then&nbsp;apply&nbsp;that&nbsp;factor&nbsp;to&nbsp;the&nbsp;image&nbsp;extent&nbsp;so&nbsp;that&nbsp;both&nbsp;layers&nbsp;match&nbsp;on&nbsp;the&nbsp;very&nbsp;same&nbsp;place.&nbsp;  
&nbsp;&nbsp;  
&nbsp;So&nbsp;my&nbsp;last&nbsp;task&nbsp;is&nbsp;gonna&nbsp;be&nbsp;that&nbsp;error&nbsp;factor…&nbsp;  
&nbsp;&nbsp;  
&nbsp;I’ll&nbsp;let&nbsp;you&nbsp;know&nbsp;if&nbsp;something&nbsp;else&nbsp;comes&nbsp;out.&nbsp;  
&nbsp;&nbsp;  
&nbsp;Thanks&nbsp;again

---

<div class="post-metadata">

**Author:** ![ThinkGeo](https://community.thinkgeo.com/user_avatar/community.thinkgeo.com/thinkgeo/32/25029_2.png) [@ThinkGeo](https://community.thinkgeo.com/u/ThinkGeo)\
**Post date:** [January 10, 2010, 8:26pm UTC](https://community.thinkgeo.com/t/tasks-to-be-done-inside-getimagecore/948/6 "2010-01-10T20:26:28Z")

</div>

Ingemar,&nbsp;  
&nbsp;&nbsp;  
&nbsp;Thanks&nbsp;for&nbsp;your&nbsp;sharing.&nbsp;You’re&nbsp;so&nbsp;welcome.&nbsp;  
&nbsp;&nbsp;  
&nbsp;Just&nbsp;let&nbsp;us&nbsp;know&nbsp;if&nbsp;you&nbsp;have&nbsp;more&nbsp;questions.
