<?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>Gabe Hilado&#039;s SharePoint &#38; ASP.NET Blog &#187; Deployment</title>
	<atom:link href="http://spdeveloper.net/tag/deployment/feed/" rel="self" type="application/rss+xml" />
	<link>http://spdeveloper.net</link>
	<description>Microsoft, SharePoint, ASP.NET, Software Solutions</description>
	<lastBuildDate>Thu, 29 Sep 2011 15:13:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Read the Manifest File from a Sharepoint Package</title>
		<link>http://spdeveloper.net/2010/03/read-the-manifest-file-from-a-sharepoint-package/</link>
		<comments>http://spdeveloper.net/2010/03/read-the-manifest-file-from-a-sharepoint-package/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 14:39:06 +0000</pubDate>
		<dc:creator>Gabe Hilado</dc:creator>
				<category><![CDATA[Operations]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint Deployment]]></category>
		<category><![CDATA[Administrators]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Developers]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[Web Parts]]></category>

		<guid isPermaLink="false">http://spdeveloper.net/?p=202</guid>
		<description><![CDATA[I was in a SharePoint governance meeting at one of my customer sites yesterday and the group is thinking of enforcing some rules as far as SharePoint solution packages go. I kept saying during the meeting &#8220;Inspect the manifest file so that you can view what files are going to be installed on the server and where they [...]]]></description>
			<content:encoded><![CDATA[<p>I was in a SharePoint governance meeting at one of my customer sites yesterday and the group is thinking of enforcing some rules as far as SharePoint solution packages go. I kept saying during the meeting &#8220;Inspect the manifest file so that you can view what files are going to be installed on the server and where they are going to get installed&#8221;. One of the network engineers asked <strong>&#8220;How do you read a manifest file given a WSP</strong>?&#8221; This is probably common knowledge to people who are SharePoint veterans. But if you didn&#8217;t know how it&#8217;s done, here&#8217;s how:</p>
<ol>
<li>Rename the <strong>wsp</strong> file to a .<strong>cab</strong> file</li>
<li>Open up the .cab file (used to be wsp) in WinZIP or something that can open a CAB file.</li>
<li>You can either: a)  extract all files in the cab file and open up the extracted manifest.xml; or b) look for manifest.xml in WinZIP and just extract that one single file.</li>
<li>Open up manifest.xml in notepad, Internet Explorer, or your preferred XML file viewer.</li>
</ol>
<p>That&#8217;s it!</p>
<p>Several of my upcoming posts will be on how to create solution packages. Stay tuned!</p>
]]></content:encoded>
			<wfw:commentRss>http://spdeveloper.net/2010/03/read-the-manifest-file-from-a-sharepoint-package/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You have backups. Can you recover?</title>
		<link>http://spdeveloper.net/2010/02/you-have-backups-can-you-recover/</link>
		<comments>http://spdeveloper.net/2010/02/you-have-backups-can-you-recover/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 09:45:17 +0000</pubDate>
		<dc:creator>Gabe Hilado</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Operations]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint Deployment]]></category>
		<category><![CDATA[Administrators]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Restore]]></category>

		<guid isPermaLink="false">http://spdeveloper.net/?p=174</guid>
		<description><![CDATA[I had phone meeting with a potential new customer last Thursday and the customer said that he was watching the news about a lunatic who crashed a plane into the IRS building. The news didn’t hit the place I was working at yet so I didn’t know what was going on. But as we talked [...]]]></description>
			<content:encoded><![CDATA[<p>I had phone meeting with a potential new customer last Thursday and the customer said that he was watching the news about a <a href="http://news.yahoo.com/s/ap/20100218/ap_on_re_us/us_plane_crash_texas">lunatic who crashed a plane into the IRS building</a>. The news didn’t hit the place I was working at yet so I didn’t know what was going on. But as we talked about the news, it reminded me of 9-11, plane crashing into Pentagon. Plane crashing into a building—yep, it definitely reminds you of the threats out there. Eventually we talked business and ended our call and I went about my day.</p>
<p>I’m not sure if the crash took out IT resources (such as servers) for the IRS. I couldn’t help but think, “If the crash took out IRS servers, were they able to recover in a timely fashion”? Yeah I know it’s geeky and nerdy to be thinking about these things but I’m an IT pro—I can’t help but ponder these things! <img src='http://spdeveloper.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Every IT resource—infrastructure and systems alike—should have a disaster/recovery plan</strong>. Within government agencies, they like to call this Continuity of Operations Planning or COOP. COOP is pretty comprehensive and includes not just how to recover IT but also how management succession, crisis procedures, etc. If you are part of IT and you get detailed to participate in COOP planning, most of your contributions to this COOP plan will revolve around recovering IT assets such as servers, applications, databases, and the like,</p>
<p>I can’t remember how many times I’ve seen network and DB administrators claim “yeah we have backups” and when disaster comes, the backups were no good and couldn’t be restored! What good is that??! What the hell is that?? See, <strong>it’s not enough that you are backing up data and applications; you must also rehearse recovery procedures</strong> using the capture back-ups so that you can confidently report to your management, “Yes, we have backups and can recover in the event of a disaster.”</p>
<p>In the SharePoint world, it’s not enough that you are backing up content and configuration databases—you should rehearse recovery procedures from time to time. How do you know you can recover a toasted SharePoint farm configuration if you’ve never rehearsed it and seen with your own two eyes that your backups are good? <strong>You must test your recovery procedures</strong>.</p>
<p>How often should you backup and test recovery procedures? Well, one can probably write a dedicated Web site just on the topic of disaster-recovery (just google it and there are tons). So, without having to discuss this too much, as a general guide I like to follow, the more critical your systems, the more backups and test-recovery procedures you should do. For less-critical apps, your frequency doesn’t have to be as extensive (the important thing is you do it). Just as an example, for critical apps—daily full back-ups with incremental back-ups during the day and test recovery procedures every 2 weeks. The “least frequent” backup schedule I’ve ever done for a “non-critical” app is bi-weekly full backups and test recoveries every 3 months.</p>
<p>The point is, you must backup and be ready to recover when disaster strikes. Nine years ago, the terrorists attacked WTC and the Pentagon. Last week, some lunatic had a personal grudge against the government. Who knows, maybe this week, some admin at your office spills some latte on your production server and toasts mission-critical apps. Whatever the disaster may be, be ready.</p>
]]></content:encoded>
			<wfw:commentRss>http://spdeveloper.net/2010/02/you-have-backups-can-you-recover/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Customizing WSP files using VSeWSS 1.3 in Visual Studio 2008</title>
		<link>http://spdeveloper.net/2009/12/editing-wsp-file-using-vsewss-1-3-in-visual-studio-2008/</link>
		<comments>http://spdeveloper.net/2009/12/editing-wsp-file-using-vsewss-1-3-in-visual-studio-2008/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 21:35:25 +0000</pubDate>
		<dc:creator>Gabe Hilado</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint Deployment]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[MOSS 2007]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Web Parts]]></category>
		<category><![CDATA[WSP]]></category>
		<category><![CDATA[WSS 3.0]]></category>

		<guid isPermaLink="false">http://spdeveloper.net/?p=154</guid>
		<description><![CDATA[Using VSeWSS 1.3 with Visual Studio 2008, when you create a new Web Part project, you can edit the Web part properties and descriptions using the WSP View. The typical Solution Explorer in VS 2008 looks like the following when working on a Web part project: In order to see the manifest.xml or feature.xml file, [...]]]></description>
			<content:encoded><![CDATA[<p>Using <strong>VSeWSS 1.3</strong> with Visual Studio 2008, when you create a new Web Part project, you can edit the Web part properties and descriptions using the WSP View. The typical Solution Explorer in VS 2008 looks like the following when working on a Web part project:</p>
<div id="attachment_155" class="wp-caption aligncenter" style="width: 291px"><img class="size-full wp-image-155" title="Solution Explorer in VS 2008" src="http://spdeveloper.net/wp-content/uploads/2009/12/solution-explorer.png" alt="Solution Explorer in VS 2008" width="281" height="216" /><p class="wp-caption-text">Solution Explorer in VS 2008</p></div>
<p>In order to see the manifest.xml or feature.xml file, you have to look at the &#8220;<strong><em>WSP View</em></strong>&#8220;. WSP View can be accessed by going to the menu and hitting <em>View&#8211;&gt;Other Windows&#8211;&gt;WSP View</em>. The WSP View looks like the following:</p>
<div id="attachment_156" class="wp-caption aligncenter" style="width: 293px"><img class="size-full wp-image-156" title="WSP View" src="http://spdeveloper.net/wp-content/uploads/2009/12/wsp-view.png" alt="WSP View" width="283" height="287" /><p class="wp-caption-text">WSP View</p></div>
<p>The <strong>manifest.xml</strong> file doesn&#8217;t contain &#8220;product description&#8221; type information. The <strong>manifest.xml</strong> contains assemblies and features information. The <strong>feature.xml</strong> file, that on the other hand, start containing &#8220;description&#8221; type data. Here&#8217;s what the feature.xml contents typically look like:</p>
<pre class="brush: xml;">

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;

&lt;Feature Id=&quot;cfc5cfdd-62cf-4d98-aeba-e1b38ec6f64f&quot;

             Title=&quot;HelloPart&quot;

             Description=&quot;A Web part that wants to say hello to you.&quot;

             Scope=&quot;Site&quot; Version=&quot;1.0.0.0&quot; Hidden=&quot;FALSE&quot;

             DefaultResourceFile=&quot;core&quot; xmlns=&quot;http://schemas.microsoft.com/sharepoint/&quot;&gt;

  &lt;ElementManifests&gt;

    &lt;ElementManifest Location=&quot;HelloPart\HelloPart.xml&quot; /&gt;

    &lt;ElementFile Location=&quot;HelloPart\HelloPart.webpart&quot; /&gt;

  &lt;/ElementManifests&gt;

&lt;/Feature&gt;
</pre>
<p>See that <em><strong>Title</strong></em> and <em><strong>Description</strong></em> attributes inside the Feature element? They will get displayed in the Site Features Gallery: </p>
<div id="attachment_159" class="wp-caption aligncenter" style="width: 512px"><img class="size-full wp-image-159 " title="WP Title and Description in the Features Gallery" src="http://spdeveloper.net/wp-content/uploads/2009/12/features-gallery.png" alt="WP Title and Description in the Features Gallery" width="502" height="248" /><p class="wp-caption-text">WP Title and Description in the Features Gallery</p></div>
<p>What about the <strong>Web part file</strong> (in the example I&#8217;m using above, the filename is HelloPart.webpart)? What information can be customized and modified here? First, let&#8217;s take a look at the contents of the webpart file:</p>
<pre class="brush: xml;">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;

&lt;webParts&gt;

  &lt;webPart xmlns=&quot;http://schemas.microsoft.com/WebPart/v3&quot;&gt;

    &lt;metaData&gt;

      &lt;!--

      The following Guid is used as a reference to the web part class,

      and it will be automatically replaced with actual type name at deployment time.

      --&gt;

      &lt;type name=&quot;247ef4d4-489d-46d1-a628-8d8daa6267a3&quot; /&gt;

      &lt;importErrorMessage&gt;Cannot import HelloPart Web Part.&lt;/importErrorMessage&gt;

    &lt;/metaData&gt;

    &lt;data&gt;

      &lt;properties&gt;

        &lt;property name=&quot;Title&quot; type=&quot;string&quot;&gt;Gabe's Hello Web Part&lt;/property&gt;

        &lt;property name=&quot;Description&quot; type=&quot;string&quot;&gt;HelloPart is a user-friendly Web part....&lt;/property&gt;

      &lt;/properties&gt;

    &lt;/data&gt;

  &lt;/webPart&gt;

&lt;/webParts&gt;
</pre>
<p>Inside <em>webPart&#8211;&gt;data&#8211;&gt;properties</em> section, there are <em>property</em> elements. The first one is the &#8220;<strong><em>Title</em></strong>&#8221; and the other is the &#8220;<strong><em>Description</em></strong>&#8220;. The values for &#8220;Title&#8221; and &#8220;Description&#8221; contained in the webpart file are what gets displayed in the Web part catalog:</p>
<p> </p>
<div id="attachment_162" class="wp-caption aligncenter" style="width: 519px"><img class="size-full wp-image-162  " title="WP Title and Desription in the WP Catalog" src="http://spdeveloper.net/wp-content/uploads/2009/12/add-web-parts.png" alt="WP Title and Desription in the WP Catalog" width="509" height="509" /><p class="wp-caption-text">WP Title and Desription in the WP Catalog</p></div>
<p>Finally, let&#8217;s take a look at the <strong>Web part XML file</strong> (in the example I used above, the filename is HelloPart.xml). The Web part XML file contains the following:</p>
<pre class="brush: xml;">

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;

&lt;Elements Id=&quot;247ef4d4-489d-46d1-a628-8d8daa6267a3&quot; xmlns=&quot;http://schemas.microsoft.com/sharepoint/&quot; &gt;

  &lt;Module Name=&quot;WebParts&quot; List=&quot;113&quot; Url=&quot;_catalogs/wp&quot;&gt;

    &lt;File Path=&quot;HelloPart.webpart&quot; Url=&quot;HelloPart.webpart&quot; Type=&quot;GhostableInLibrary&quot; /&gt;

  &lt;/Module&gt;

&lt;/Elements&gt;
</pre>
<p>See how the <em>File</em> element doesn&#8217;t have any children? We can put a <em>Property</em> element as a child of the <em>File</em> element. This <em>Property</em> element will contain the &#8220;<strong><em>Group</em></strong>&#8221; the Web part appears in the catalog. By default, like the in the Web part XML file example above, the Group is not specified and therefore, the Web part gets listed under <em>Miscellaneous Group</em> in the Web Part catalog. If you want the Web part to appear in a group other than <em>Miscellaneous</em>, transform the Web part XML file from the above example to the following:</p>
<pre class="brush: xml;">

&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;

&lt;Elements Id=&quot;247ef4d4-489d-46d1-a628-8d8daa6267a3&quot; xmlns=&quot;http://schemas.microsoft.com/sharepoint/&quot; &gt;

  &lt;Module Name=&quot;WebParts&quot; List=&quot;113&quot; Url=&quot;_catalogs/wp&quot;&gt;

        &lt;File Path=&quot;HelloPart.webpart&quot; Url=&quot;HelloPart.webpart&quot; Type=&quot;GhostableInLibrary&quot;&gt;

              &lt;Property Name=&quot;Group&quot; Value=&quot;My Stuff&quot;/&gt;

        &lt;/File&gt;

  &lt;/Module&gt;

&lt;/Elements&gt;
</pre>
<p>We added the <em>Property</em> element below the <em>File </em>element. The <em>Name </em>attribute of the <em>Property</em> element should have a value of &#8220;<strong><em>Group</em></strong>&#8221; and the <em>Value</em> attribute is the group name you want the Web part to appear in the catalog. In the example above, after the Web part gets deployed, the Web part appears in a category called &#8220;<em>My Stuff</em>&#8220;:</p>
<div id="attachment_168" class="wp-caption aligncenter" style="width: 512px"><img class="size-full wp-image-168 " title="Web Part appearing on specified Group" src="http://spdeveloper.net/wp-content/uploads/2009/12/web-part-grouped.png" alt="Web Part appearing on specified Group" width="502" height="502" /><p class="wp-caption-text">Web Part appearing on specified Group</p></div>
]]></content:encoded>
			<wfw:commentRss>http://spdeveloper.net/2009/12/editing-wsp-file-using-vsewss-1-3-in-visual-studio-2008/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>May 2 SharePoint Saturday Session – Building and Deploying Custom SharePoint Application Pages</title>
		<link>http://spdeveloper.net/2009/05/may-2-sharepoint-saturday-session-%e2%80%93-building-and-deploying-custom-sharepoint-application-pages/</link>
		<comments>http://spdeveloper.net/2009/05/may-2-sharepoint-saturday-session-%e2%80%93-building-and-deploying-custom-sharepoint-application-pages/#comments</comments>
		<pubDate>Tue, 05 May 2009 13:23:00 +0000</pubDate>
		<dc:creator>Gabe Hilado</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[ASCX]]></category>
		<category><![CDATA[ASPX Page]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[Manifest File]]></category>
		<category><![CDATA[STSADM]]></category>
		<category><![CDATA[User Control]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[VS 2005]]></category>
		<category><![CDATA[VS 2008]]></category>
		<category><![CDATA[Web Control]]></category>

		<guid isPermaLink="false">http://spdeveloper.net/?p=8</guid>
		<description><![CDATA[In my previous post, I listed the sessions that I attended on SharePoint Saturday. Michael Lotter’s session was about building and deploying custom SharePoint Application Pages. Out-of-the-box pages suffice for more SharePoint users. But at some point, your customers or organization will want to add custom ASPX pages into SharePoint. This topic is relevant to [...]]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://spdeveloper.net/2009/05/sharepoint-saturday-may-2-2009/">previous post</a>, I listed the sessions that I attended on SharePoint Saturday. <a href="http://blog.michaellotter.com/">Michael Lotter’s</a> session was about building and deploying custom SharePoint Application Pages. Out-of-the-box pages suffice for more SharePoint users. But at some point, your customers or organization will want to add custom ASPX pages into SharePoint. This topic is relevant to teams wanting to create custom ASPX pages in SharePoint.</p>
<p>The basic ideas for building and deploying custom SharePoint Application Pages:</p>
<ol>
<li>Create a VS 2005 or VS 2008 solution</li>
<li>Edit your ASPX pages, edit your code-behind</li>
<li>Compile the solution—you should get the DLL files and the ASPX and/or ASCX files plus resource files such as images files (GIF, JPG, etc.)</li>
<li>Create a new WSP Solution project in VS 2005 or VS 2008 using VSeWSS, Andrew Connell’s STSDEV, or Codeplex WSP Builder.</li>
<li>In the WSP Solution, you put the ASPX and ASCX pages that you are trying to deploy.</li>
<li>Also, the DLL that was compiled from Step 1 has to be included in the WSP Solution.</li>
<li>Depending on which WSP tool you are using, the files location in the WSP solution might differ from one tool to another. But the key things you specify in the WSP Solution are the following: Manifest file and DDF file. If you have other things to add such as custom actions, you will also need to specify the Features file. The Manifest file specifies where the files in the WSP package will go.</li>
<li>Compile the WSP solution.</li>
<li>Run STSADM on the WSP file to deploy your custom files and pages.</li>
</ol>
<p>Here&#8217;s a sample Manifest file:</p>
<p style="font-family:courier new;background-color:#fff;color:Blue"><span style="font-family:courier new;background-color:#fff;color:Blue">&lt;<span style="color:#660000;">Solution</span> <span style="color:#ff0000;">SolutionId</span>=&#8221;AAEC1250-5354-7839-F94F-50307E84AF1B&#8221; <span style="color:#ff0000;">xmlns</span>=&#8221;http://schemas.microsoft.com/sharepoint/&#8221;&gt;<br />
&lt;<span style="color:#660000;">FeatureManifests</span>&gt;<br />
&lt;<span style="color:#660000;">FeatureManifest</span> <span style="color:#ff0000;">Location</span>=&#8221;FeatureLibrary\feature.xml&#8221;/&gt;<br />
&lt;/<span style="color:#660000;">FeatureManifests</span>&gt;<br />
&lt;<span style="color:#660000;">TemplateFiles</span>&gt;<br />
&lt;<span style="color:#660000;">TemplateFile</span> <span style="color:#ff0000;">Location</span>=&#8221;ControlTemplates\Zenpo\myZenpoControl.ascx&#8221;/&gt;<br />
&lt;<span style="color:#660000;">TemplateFile</span> <span style="color:#ff0000;">Location</span>=&#8221;Layouts\Zenpo\myZenpoPage.aspx&#8221;/&gt;<br />
&lt;<span style="color:#660000;">TemplateFile</span> <span style="color:#ff0000;">Location</span>=&#8221;Layouts\Zenpo\myZenpoBanner.JPG&#8221;/&gt; &lt;/<span style="color:#660000;">TemplateFiles</span> &gt;<br />
&lt;<span style="color:#660000;">Assemblies</span>&gt;<br />
&lt;<span style="color:#660000;">Assembly</span> <span style="color:#ff0000;">DeploymentTarget</span>=&#8221;GlobalAssemblyCache&#8221; <span style="color:#ff0000;">Location</span>=&#8221;ZenpoSoftware.Sharepoint.myFeature.dll&#8221;/&gt;<br />
&lt;/<span style="color:#660000;">Assemblies</span>&gt;<br />
&lt;/<span style="color:#660000;">Solution</span>&gt;<br />
</span></p>
<p>In the example manifest file above, my files went to the Layouts, Images, and ControlTemplates folder. Meanwhile, I specify that my custom assembly file should go to the GAC.</p>
<p>If you are creating custom pages or Web controls with no code-behind files (as-in it’s just all ASPX code or maybe a little bit of in-line server-side scripting), you can skip steps 1-3 and start at step 4 right away.</p>
<p>One thing worth nothing is if you’re going to deploy files to the 12-hive folder, it’s best that you create your own folder. In my example above, I specify in the manifest file that a “Zenpo” folder be created in the Layouts, ControlTemplates, and Images folder.</p>
<p>In the session, Michael Lotter deployed custom pages to the Layouts folder. He also had custom actions specified in the Elements.xml file that made the Site Actions menu include links to his custom pages.</p>
<p>It was a good session for those who have not yet done deployment of custom SharePoint pages in SharePoint. I will admit I was looking for something a bit more advanced but overall, the session was good since people who have never done this before can go back to their shop and should be able to build and deploy custom application pages.</p>
]]></content:encoded>
			<wfw:commentRss>http://spdeveloper.net/2009/05/may-2-sharepoint-saturday-session-%e2%80%93-building-and-deploying-custom-sharepoint-application-pages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

