<component id="81" name="DataSet" componentClassID="{2E42D45B-F83C-400F-8D77-61DDE6A7DF29}" description="Executes a custom script" localeId="1033" usesDispositions="false" validateExternalMetadata="True" version="4" pipelineVersion="0" contactInfo="Executes a custom script.;Microsoft Corporation;Microsoft SqlServer v9; © 2004 Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;0">
<properties>
<property id="105" name="SourceCode" dataType="System.String" state="cdata" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE" UITypeEditor="" containsID="false" expressionType="None"><arrayElements arrayElementCount="18"><arrayElement dataType="System.String"><![CDATA[\my project\settings.designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On



Partial Friend NotInheritable Class MySettings
    Inherits System.Configuration.ApplicationSettingsBase

    Private Shared m_Value As MySettings

    Private Shared m_SyncObject As Object = New Object

    <System.Diagnostics.DebuggerNonUserCode()> _
    Public Shared ReadOnly Property Value() As MySettings
        Get
            If (MySettings.m_Value Is Nothing) Then
                System.Threading.Monitor.Enter(MySettings.m_SyncObject)
                If (MySettings.m_Value Is Nothing) Then
                    Try
                        MySettings.m_Value = New MySettings
                    Finally
                        System.Threading.Monitor.Exit(MySettings.m_SyncObject)
                    End Try
                End If
            End If
            Return MySettings.m_Value
        End Get
    End Property
End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\assemblyinfo.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices

' General Information about an assembly is controlled through the following 
' set of attributes. Change these attribute values to modify the information
' associated with an assembly.

' Review the values of the assembly attributes

<Assembly: AssemblyTitle("ScriptComponent_16a2d2164f92497bbf410480d28defb7.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_16a2d2164f92497bbf410480d28defb7.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2010")> 
<Assembly: AssemblyTrademark("")> 
<Assembly: CLSCompliant(True)> 

<Assembly: ComVisible(False)> 

'The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("a3c7bf40-04d1-41c5-8448-903ef40e48b1")> 

' Version information for an assembly consists of the following four values:
'
'      Major Version
'      Minor Version 
'      Build Number
'      Revision
'
' You can specify all the values or you can default the Build and Revision Numbers 
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>

<Assembly: AssemblyVersion("1.0.0.0")> 
<Assembly: AssemblyFileVersion("1.0.0.0")> 
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\settings.settings]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version='1.0' encoding='iso-8859-1'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)" GeneratedClassNamespace="" GeneratedClassName="MySettings">
  <Profiles>
    <Profile Name="(Default)" />
  </Profiles>
  <Settings />
</SettingsFile>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\bufferwrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services buffer wrappers
' This module defines classes for accessing data flow buffers
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!


Option Strict Off   ' This allows usage of PipelineBuffer typed accessors.

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class InputBuffer
    Inherits ScriptBufferPlus

    Public Sub New(ByVal Component As ScriptComponent, ByVal ObjectID As Integer, ByVal IsInput As Boolean, ByVal Buffer As PipelineBuffer)
        MyBase.New(Component, ObjectID, IsInput, Buffer)
    End Sub

    Public Overrides ReadOnly Property StaticInputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overloads Function NextRow() As Boolean
        NextRow = MyBase.NextRow()
    End Function

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\resources.designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On


Namespace My.Resources
    
    '''<summary>
    '''   A strongly-typed resource class, for looking up localized strings, etc.
    '''</summary>
    'This class was auto-generated by the Strongly Typed Resource Builder
    'class via a tool like ResGen or Visual Studio.NET.
    'To add or remove a member, edit your .ResX file then rerun ResGen
    'with the /str option, or rebuild your VS project.
    Class MyResources
        
        Private Shared _resMgr As System.Resources.ResourceManager
        
        Private Shared _resCulture As System.Globalization.CultureInfo
        
        Friend Sub New()
            MyBase.New
        End Sub
        
        '''<summary>
        '''   Returns the cached ResourceManager instance used by this class.
        '''</summary>
        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Shared ReadOnly Property ResourceManager() As System.Resources.ResourceManager
            Get
                If (_resMgr Is Nothing) Then
                    Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("My.Resources.MyResources", GetType(MyResources).Assembly)
                    _resMgr = temp
                End If
                Return _resMgr
            End Get
        End Property
        
        '''<summary>
        '''   Overrides the current thread's CurrentUICulture property for all
        '''   resource lookups using this strongly typed resource class.
        '''</summary>
        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Shared Property Culture() As System.Globalization.CultureInfo
            Get
                Return _resCulture
            End Get
            Set
                _resCulture = value
            End Set
        End Property
    End Class
End Namespace
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\scriptcomponent_16a2d2164f92497bbf410480d28defb7.vbproj]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <!-- This section defines project-level properties.

       Configuration - Specifies whether the default configuration is Release or Debug.
       Platform - Specifies what CPU the output of this project can run on.
       OutputType - Must be "Library" for VSTA.
       NoStandardLibraries - Set to "false" for VSTA.
       RootNamespace - In C#, this specifies the namespace given to new files.
                       In Visual Basic, all objects are wrapped in this namespace at runtime.
       AssemblyName - Name of the output assembly.
  -->
  <PropertyGroup>
    <ProjectTypeGuids>{A860303F-1F3F-4691-B57E-529FC101A107};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <OutputType>Library</OutputType>
    <RootNamespace>ScriptComponent_16a2d2164f92497bbf410480d28defb7.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_16a2d2164f92497bbf410480d28defb7.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{5EEE4A64-5C3C-46D5-AC74-F32C880F0619}</ProjectGuid>
  </PropertyGroup>
  <!-- This section defines properties that are set when the "Debug" configuration is
       selected.

       DebugSymbols - If true, create symbols (.pdb). If false, do not create symbols.
       Optimize - If true, optimize the build output. If false, do not optimize.
       OutputPath - Output path of the project relative to the project file.
       EnableUnmanagedDebugging - If true, starting the debugger will attach both managed and unmanaged debuggers.
       DefineConstants - Constants defined for the preprocessor.
       Warning Level - Warning level for the compiler.
  -->
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DefineConstants>
    </DefineConstants>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <DebugSymbols>true</DebugSymbols>
    <Optimize>false</Optimize>
    <OutputPath>bin\</OutputPath>
    <RegisterForComInterop>false</RegisterForComInterop>
    <RemoveIntegerChecks>false</RemoveIntegerChecks>
    <NoWarn>42016,42017,42018,42019,42032</NoWarn>
  </PropertyGroup>
  <!-- This section defines properties that are set when the "Release" configuration is
       selected.

       DebugSymbols - If true, create symbols (.pdb). If false, do not create symbols.
       Optimize - If true, optimize the build output. If false, do not optimize.
       OutputPath - Output path of the project relative to the project file.
       EnableUnmanagedDebugging - If true, starting the debugger will attach both managed and unmanaged debuggers.
       DefineConstants - Constants defined for the preprocessor.
       Warning Level - Warning level for the compiler.
  -->
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DefineConstants>
    </DefineConstants>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <RegisterForComInterop>false</RegisterForComInterop>
    <RemoveIntegerChecks>false</RemoveIntegerChecks>
    <NoWarn>42016,42017,42018,42019,42032</NoWarn>
  </PropertyGroup>
  <!-- This section enables pre- and post-build steps. However,
       it is recommended that MSBuild tasks be used instead of these properties.
  -->
  <PropertyGroup>
    <PreBuildEvent>
    </PreBuildEvent>
    <PostBuildEvent>
    </PostBuildEvent>
  </PropertyGroup>
  <!-- This sections specifies references for the project. -->
  <ItemGroup>
    <Reference Include="CozyRoc.SSISPlus.2008, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL" />
    <Reference Include="Microsoft.SqlServer.ManagedDTS, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL" />
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.TxScript, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
  </ItemGroup>
  <!-- Visual Basic supports Importing namespaces (equivalent to using statements in C#).-->
  <ItemGroup>
    <Import Include="Microsoft.VisualBasic" />
    <Import Include="System" />
    <Import Include="System.Collections" />
    <Import Include="System.Data" />
    <Import Include="System.Diagnostics" />
    <Import Include="System.Windows.Forms" />
  </ItemGroup>
  <!-- This section defines the user source files that are part of the
       project.

       Compile - Specifies a source file to compile.
       EmbeddedResource - Specifies a .resx file for embedded resources.
       None - Specifies a file that is not to be passed to the compiler (for instance,
              a text file or XML file).
       AppDesigner - Specifies the directory where the application properties files can
                     be found.
  -->
  <ItemGroup>
    <AppDesigner Include="My Project\" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
    <Compile Include="main.vb" />
    <Compile Include="My Project\AssemblyInfo.vb">
      <SubType>Code</SubType>
    </Compile>
    <EmbeddedResource Include="My Project\Resources.resx">
      <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.vb</LastGenOutput>
      <CustomToolNamespace>My.Resources</CustomToolNamespace>
    </EmbeddedResource>
    <Compile Include="My Project\Resources.Designer.vb">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>Resources.resx</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <None Include="My Project\Settings.settings">
      <Generator>SettingsSingleFileGenerator</Generator>
      <LastGenOutput>Settings.Designer.vb</LastGenOutput>
    </None>
    <Compile Include="My Project\Settings.Designer.vb">
      <AutoGen>True</AutoGen>
      <DependentUpon>Settings.settings</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <!-- Include the default configuration information and metadata files for the add-in.
         These files are copied to the build output directory when the project is
         built, and the path to the configuration file is passed to add-in on the command
         line when debugging.
    -->
  </ItemGroup>
  <!-- Include the build rules for a VB project.-->
  <Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
  <!-- This section defines VSTA properties that describe the host-changable project properties. -->
  <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{A860303F-1F3F-4691-B57E-529FC101A107}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{C1B21C64-9E6F-4923-A89D-9F958503C1CE}" ApplicationType="usd" Language="vb" TemplatesPath="" />
        <Host Name="SSIS_ScriptComponent" />
        <ProjectClient>
          <HostIdentifier>SSIS_ScriptComponent</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
</Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\my project\resources.resx]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\main.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' CozyRoc SQL Server Integration Services user script component
'
' Copyright (c) 2006-2009 CozyRoc LLC
' 
' Permission is hereby granted, free of charge, to any person
' obtaining a copy of this software and associated documentation
' files (the "Software"), to deal in the Software without
' restriction, including without limitation the rights to use,
' copy, modify, merge, publish, distribute, sublicense, and/or sell
' copies of the Software, and to permit persons to whom the
' Software is furnished to do so, subject to the following
' conditions:
' 
' The above copyright notice and this permission notice shall be
' included in all copies or substantial portions of the Software.
' 
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
' EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
' OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
' NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
' HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
' WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
' FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
' OTHER DEALINGS IN THE SOFTWARE.

Imports System
Imports System.ComponentModel
Imports System.Data

Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS.Attributes


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<ValidateProperties("Validate")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Dim dataRow As DataRow = m_table.NewRow()

        Dim colsCount As Integer = m_idxIn.Length
        For colIndex As Integer = 0 To colsCount - 1
            dataRow(m_idxOut(colIndex)) = Row.Buffer(m_idxIn(colIndex))
        Next

        Call m_table.Rows.Add(dataRow)
    End Sub ' Input_ProcessInputRow


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub PreExecute()
        Call MyBase.PreExecute()

        ' Get input columns index.
        m_idxIn = GetInputIdx_()

        ' Setup output.
        Dim dataset As DataSet = GetDataSet_()
        m_table = GetTable_(dataset)
        m_idxOut = SetupColumns_(m_table)
    End Sub ' PreExecute


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Function Validate(ByRef errMessage As String) As Boolean
        Dim result As Boolean = True

        Try
            If String.IsNullOrEmpty(Me.DataSetVariable) Then
                Throw New Exception("Select dataset variable.")
            End If
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    'Validate

    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub OnInputPathAttached(ByVal inputID As Integer)
        Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
        Dim virtualInput As IDTSVirtualInput100 = input.GetVirtualInput()

        Call input.InputColumnCollection.RemoveAll()
        For Each column As IDTSVirtualInputColumn100 In virtualInput.VirtualInputColumnCollection
            Call virtualInput.SetUsageType(column.LineageID, DTSUsageType.UT_READONLY)
        Next
    End Sub ' OnInputPathAttached


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select variable containing destination dataset object.")> _
    <Variable()> _
    Public Property DataSetVariable() As String
        Get
            DataSetVariable = m_datasetVariable
        End Get
        Set(ByVal value As String)
            m_datasetVariable = value
        End Set
    End Property    ' DataSetVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specifies the table name in dataset (optional).")> _
    Public Property TableName() As String
        Get
            TableName = m_tableName
        End Get
        Set(ByVal value As String)
            m_tableName = value
        End Set
    End Property    ' TableName
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Get selected input columns index.
    Private Function GetInputIdx_() As Integer()
        Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
        Dim colsCount As Integer = input.InputColumnCollection.Count
        Dim result As Integer() = New Integer(colsCount - 1) {}

        For colIndex As Integer = 0 To colsCount - 1
            Dim inputCol As IDTSInputColumn100 = input.InputColumnCollection(colIndex)
            result(colIndex) = Me.HostComponent.BufferManager.FindColumnByLineageID( _
                input.Buffer, _
                inputCol.LineageID)
        Next

        GetInputIdx_ = result
    End Function    ' GetInputIdx_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Get dataset object.
    Private Function GetDataSet_() As DataSet
        Dim result As DataSet
        Dim vars As IDTSVariables100

        Call Me.VariableDispenser.LockOneForWrite(Me.DataSetVariable, vars)
        Try
            Try
                result = CType(vars(Me.DataSetVariable).Value, DataSet)
            Catch ex As Exception
                ' Dataset not yet initialized.
                result = New DataSet()
                vars(Me.DataSetVariable).Value = result
            End Try
        Finally
            Call vars.Unlock()
        End Try

        GetDataSet_ = result
    End Function    ' GetDataSet_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Get dataset table.
    Private Function GetTable_(ByVal dataSet As DataSet) As DataTable
        Dim result As DataTable

        If String.IsNullOrEmpty(Me.TableName) Then
            ' Not specified.
            If dataSet.Tables.Count > 0 Then
                result = dataSet.Tables(0)
            Else
                result = New DataTable()
                Call dataSet.Tables.Add(result)
            End If
        Else
            ' Specified.
            If dataSet.Tables.Contains(Me.TableName) Then
                result = dataSet.Tables(Me.TableName)
            Else
                result = New DataTable(Me.TableName)
                Call dataSet.Tables.Add(result)
            End If
        End If

        GetTable_ = result
    End Function    ' GetTable_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Setup dataset table columns based on selected input columns.
    Private Function SetupColumns_(ByVal table As DataTable) As Integer()
        Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
        Dim colsCount As Integer = input.InputColumnCollection.Count
        Dim result As Integer() = New Integer(colsCount - 1) {}
        For colIndex As Integer = 0 To colsCount - 1
            Dim inputCol As IDTSInputColumn100 = input.InputColumnCollection(colIndex)

            ' Setup data column.
            Dim dataCol As DataColumn
            If table.Columns.Contains(inputCol.Name) Then
                dataCol = table.Columns(inputCol.Name)
            Else
                dataCol = table.Columns.Add(inputCol.Name)
            End If

            result(colIndex) = dataCol.Ordinal
        Next

        SetupColumns_ = result
    End Function    ' SetupColumns_
#End Region ' Internals


#Region "Attributes"
    Private m_datasetVariable As String
    Private m_tableName As String
    Private m_table As DataTable
    Private m_idxIn As Integer()
    Private m_idxOut As Integer()
#End Region ' Attributes
End Class   ' ScriptMain
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\componentwrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services component wrapper
' This module defines the base class for your component
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class UserComponent
    Inherits ScriptComponentPlus

    Public Connections As New Connections(Me)
    Public Variables As New Variables(Me)

    Public Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal Buffer As PipelineBuffer)

        If InputID = MyBase.ComponentMetaData.InputCollection("Input").ID Then
            Input_ProcessInput(New InputBuffer(Me, InputID, True, Buffer))
        End If

    End Sub

    Public Overridable Sub Input_ProcessInput(ByVal Buffer As InputBuffer)

        While Buffer.NextRow()
            Input_ProcessInputRow(Buffer)
        End While

    End Sub

    Public Overridable Sub Input_ProcessInputRow(ByVal Row As InputBuffer)

    End Sub

End Class

Public Class Connections

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class

Public Class Variables

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class
]]></arrayElement></arrayElements></property>
<property id="106" name="BinaryCode" dataType="System.String" state="cdata" isArray="true" description="Stores the binary representation of the component" typeConverter="NOTBROWSABLE" UITypeEditor="" containsID="false" expressionType="None"><arrayElements arrayElementCount="2"><arrayElement dataType="System.String"><![CDATA[\bin\scriptcomponent_16a2d2164f92497bbf410480d28defb7.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
TAwAACN+AAC4DAAAJBAAACNTdHJpbmdzAAAAANwcAAB0AAAAI1VTAFAdAAAQAAAAI0dVSUQAAABg
HQAAXAUAACNCbG9iAAAAAAAAAAIAAAFXFaIJCQ8AAAD6ATMAFgAAAQAAAEgAAAANAAAAEgAAAC8A
AAAVAAAAbAAAAD0AAAAcAAAABgAAAAwAAAAPAAAACQAAAAEAAAAJAAAAAQAAAAIAAAADAAAAAgAA
AAAA5Q8BAAAAAAAKAKkBfwEKAN0BvwEGAO0B5gEKAEUCfwEGAMMC5gEKAEUDGwMOAJcDgAMSAOYD
xQMWABcExQMOALIEgAMaALYFqgUaAMoFqgUGAFwGSwYGAIkGdAYeAPAG2wYeAD0HJwceAFYHJwce
AIMHawcGAK0HmgcKAOwHxQcKAAQIEwAeADkIHAgGAG4ITggGAIwI5gEGALAI5gEKAMkIEwAGAA0J
7ggGACEJ5gESACgJxQMGADUJ5gEiAJgJbwkiAMcJbwkiAPIJbwkaAA8KqgUaADIKqgUGAFEK5gEK
AGkKxQciAKMKbwkiALcKbwkGAOQK0QoGAPAK5gEiAAYLbwkiAEcLbwkiALQLbwkGANcL5gEiAOsL
bwkWAAgMxQMiACwMbwkmALQMjAwmAMUMjAwmAAQNjAwaABsNqgUaADoNqgUaAF4NqgUaAGkNqgUS
AJ8NxQMOAOgNxg0OAAQOxg0eABYOJwcGAD0OKw4GAGQOUw4GAHcOmgcGAOAOTggGAAAPTggGAB4P
Kw4GADsP7ggGAEkPKw4GAGQPKw4GAH8PKw4GAJgPKw4GALEPKw4GAM4PKw4AAAAAAQAAAAAAAQAB
AAAAAAApADcABQABAAEAAAAAAHIANwAJAAEAAgAAARAAfQA3AA0AAQADAAUBAACHAAAADQAFAAgA
BQEAAJUAAAANAAUADwABAAAAsAC8AB0ABgARAAEAAAD0ALwAKQAGABYAAQAAAAIBvAANAAgAGgAB
AAAADgG8AA0ACQAbAAEAAAAYAbwAIAAKABwAAAAAACMBLwENAA8AKQAAARAAdAG8AD0AEQAtADEA
CAIgADEAMQItADEAUwI6ADEAeAJHACEAVAOQAAYAAgHHAAYADgHLAAEACAXcAAEACAXcAAEA+gUO
AQEADAYOAQEAGAYRAQEAIAYVAQEAKAYVAREAbAYdAREAlQYhAREACAc/AREAEAdDAQghAAAAAAYY
uQETAAEAECEAAAAABhi5ARMAAQAYIQAAAAARGPQBFwABAEQhAAAAABMI+wEbAAEAXCEAAAAAEwgh
AigAAQB0IQAAAAATCEoCNQABAIwhAAAAABMIaAJCAAEApCEAAAAARgKuAmMAAQDAIQAAAABGArcC
aAACANQhAAAAAIMAyAJsAAIA7CEAAAAARgLQAnEAAgAAIgAAAAARANkCeAACABwiAAAAAAEA9wKA
AAMAOCIAAAAABhi5ARMABABAIgAAAAADCAsDiwAEAHQiAAAAAAYYuQETAAQAiCIAAAAABhi5Aa8A
BACYIgAAAABGCkgEuQAIAKwiAAAAAEYKXwS5AAgAwCIAAAAAhgB3BL4ACADYIgAAAACGAH8EvgAI
APAiAAAAAAYYuQETAAgAECMAAAAARgLGBM8ACABAIwAAAABGA9sE1gAKAFQjAAAAAEYD7gTWAAsA
WCMAAAAABhi5AeAADABoIwAAAAAGGLkB4AANAHgjAAAAAAYYuQETAA4AgCMAAAAARgLuBNYADgDs
IwAAAABGAhgFEwAPADQkAAAAAAYAIwXmAA8AiCQAAAAARgI3BewAEAAUJQAAAAAGCFMFcQARACwl
AAAAAAYIZwXxABEAOCUAAAAABgiBBXEAEgBQJQAAAAAGCI8F8QASAFwlAAAAAAEAnQX2ABMA6CUA
AAAAAQC+BfsAEwBwJgAAAAABANQFAAETAAAnAAAAAAEA5gUHARQAtCcAAAAAAxi5ARMAFQC8JwAA
AAAWCKEGJQEVAPgnAAAAABYItQYqARUADCgAAAAAFgjBBi8BFQAUKAAAAAARGPQBFwAWACgoAAAA
AAYYuQETABYAMCgAAAAAFggdB0YBFgAAAAEAtQIAAAEA7gIAAAEA7gIAAAEAJgQAAAIAMAQAAAMA
OQQAAAQAQQQAAAEA0wQAAAIAQQQAAAEAQQQAAAEABAUAAAEAJgQAAAEAJgQAAAEABAUAAAEALAUA
AAEASwUAAAEAewUAAAEAewUAAAEA3gUAAAEA9AUAAAEAzQYJALkBEwCBALkBUAGRALkBXwERALkB
EwCZALkBEwAkALkBEwAsALkBEwA0ALkBEwA8ALkBEwAkAAsDiwAsAAsDiwA0AAsDiwA8AAsDiwCh
ALkBEwCpALkBEwCxALkB8QC5AH0I+AEZAK4CYwAZALcCaAApAJ4IBQIZANACcQDJALoIFQIZALkB
EwDRALkBJQJEAFQDkABMAB0HiwBMAOQIogJMALkBEwDZALkBrwI5ALkBrwDpAHcEvgDpAH8EvgDx
ALkBrwJRALkBEwBBALEJvwL5AN4JxAIBAf8JygIJAQgKaABhABcK0QI5AB4K1wJJAP8J3AIRASkK
4QJhAEQK5wIZAU0K7QJBABgFEwDhAFsKAgMhAbkB8QApAXUKBwMhAYUKcQApAZEKFwAJAfYKFgMJ
ASMLHANRAT0LEwAxAWsLIgNZAYwLKANBAZoLLgM5AaYLaAAxAcELMgNBAc4LvgBpAeMLEwBRAf4L
aABRAf8JSQNRABoMUAN5AUEMVgMJAR4KaABxAaYLaACBAVMMXANBAN4McgORAfQMeAOJAf8JgQOZ
AR0HLgNZALkBEwCZAeQIiAOJARQNEwBZAC8NmgOpAf4LaAChAf8JoANhALkBEwChAU0KpgOhAVUN
rAOhAf8JsQNhALkB8QBhAH4NvgNxAYoNcQC5AVUNrAO5Af8JxAO5AU0KxAOxAZMNaADBAbkBEwDJ
AbkB8QDRAbkBEwDZAbkB8QApAEYOXQRpALkBYwR5ALkBEwDpAWwOgATpAXIOgATxAbkBEwD5AbkB
7AABArkBEwAJArkB8QARArkB8QAZArkB8QAhArkB8QApArkB8QAxArkB8QA5ArkB8QBBArkB8QAp
AIMAxgEuAFMDTAUuACsDsgQuAEsDDwUuAGMDDwUuAFsDtAIuABsDigQuACMDkwQuADMDvwQuAOsA
tAIuAAsB6QQuADsDtAIuAEMD7wRAABMAVgFAACsAfQFDABMAVgFDABsAZQFJAIMAsgFjABMAVgFj
ABsAZQFpAIMA1wGAACsAfQGDAHMAfQGDABsAZQGDAHsAfQGJAIMA5AGgACsAfQGjAMMALQKjABMA
VgHAACsAfQHDABMAVgHDAOsAtALgACsAfQHjAAsBtAIAARMAVgEAASsAfQEDAQsBtAIJAeMC7AMJ
AdsCfQEgARMAVgEgASsAfQEpAeMCKARAASsAfQFAARMAVgFJARMAdwRgARMAVgFgASsAfQFjAQsB
tAJjAdMC3gNjAcsCfQFpARMAdwSAASsAfQGJARMDfQGgASsAfQHAARMAVgHAASsAfQHgASsAfQEA
AhMAVgEAAisAfQFAAwsBtAJgAwsBtAKeAaMBqAGtAf0BAQIMAhECIAIgAqgCugK6Av0B/QH0Av0C
DgM6AxECEQJiA40DtwPLA2sEcgSFBAQAAQAGAAUABwAGAAsACAAMAAoADQAMAAAA3QFPAAAAlgJU
AAAARQJZAAAAogJeAAAAXgOYAAAAiwTCAAAAngTCAAAAMQYZAQAAQQYZAQAAXAY1AQAA0wY6AQAA
zQZLAQIABAADAAIABQAFAAIABgAHAAIABwAJAAIADwALAAIAEgANAAIAEwAPAAIAIQARAAEAIgAR
AAIAIwATAAEAJAATAAIAKgAVAAIAKwAXAAEALAAXAAIALwAZAHUAdQCIAIIBiQGQAZcBjwKWAgSA
AAABAAAAAAAAAAAAAAAAALwAAAACAAAAAAAAAAAAAAABAAoAAAAAAAgAAAAAAAAAAAAAAAoAEwAA
AAAAAQAAAAAAAAAAAAAAnQBqAwAAAAAKAAAAAAAAAAAAAACmAKgDAAAAAAoAAAAAAAAAAAAAAKYA
9gMAAAAAAgAAAAAAAAAAAAAAAQCqBQAAAAACAAAAAAAAAAAAAAABAOYBAAAAAAoAAAAAAAAAAAAA
AKYASwkAAAAACgAAAAAAAAAAAAAApgBpDAAAAAAAAAAAAQAAAJQOAAAFAAQABgAEAAAAEAAMAOwC
AAAQABkA7AIAAAAAGwDsAi0AGwItAJ0CAAAAAAA8TW9kdWxlPgBtc2NvcmxpYgBNaWNyb3NvZnQu
VmlzdWFsQmFzaWMATXlBcHBsaWNhdGlvbgBTY3JpcHRDb21wb25lbnRfMTZhMmQyMTY0ZjkyNDk3
YmJmNDEwNDgwZDI4ZGVmYjcudmJwcm9qLk15AE15Q29tcHV0ZXIATXlQcm9qZWN0AE15V2ViU2Vy
dmljZXMAVGhyZWFkU2FmZU9iamVjdFByb3ZpZGVyYDEASW5wdXRCdWZmZXIAU2NyaXB0Q29tcG9u
ZW50XzE2YTJkMjE2NGY5MjQ5N2JiZjQxMDQ4MGQyOGRlZmI3LnZicHJvagBVc2VyQ29tcG9uZW50
AENvbm5lY3Rpb25zAFZhcmlhYmxlcwBTY3JpcHRNYWluAE15UmVzb3VyY2VzAFNjcmlwdENvbXBv
bmVudF8xNmEyZDIxNjRmOTI0OTdiYmY0MTA0ODBkMjhkZWZiNy52YnByb2ouTXkuUmVzb3VyY2Vz
AE15U2V0dGluZ3MATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkFwcGxpY2F0aW9uU2VydmljZXMAQXBw
bGljYXRpb25CYXNlAC5jdG9yAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5EZXZpY2VzAENvbXB1dGVy
AFN5c3RlbQBPYmplY3QALmNjdG9yAGdldF9Db21wdXRlcgBtX0NvbXB1dGVyT2JqZWN0UHJvdmlk
ZXIAZ2V0X0FwcGxpY2F0aW9uAG1fQXBwT2JqZWN0UHJvdmlkZXIAVXNlcgBnZXRfVXNlcgBtX1Vz
ZXJPYmplY3RQcm92aWRlcgBnZXRfV2ViU2VydmljZXMAbV9NeVdlYlNlcnZpY2VzT2JqZWN0UHJv
dmlkZXIAQXBwbGljYXRpb24AV2ViU2VydmljZXMARXF1YWxzAG8AR2V0SGFzaENvZGUAVHlwZQBH
ZXRUeXBlAFRvU3RyaW5nAENyZWF0ZV9fSW5zdGFuY2VfXwBUAGluc3RhbmNlAERpc3Bvc2VfX0lu
c3RhbmNlX18AZ2V0X0dldEluc3RhbmNlAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5NeVNlcnZpY2Vz
LkludGVybmFsAENvbnRleHRWYWx1ZWAxAG1fQ29udGV4dABHZXRJbnN0YW5jZQBDb3p5Um9jLlNT
SVNQbHVzLjIwMDgAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJUwBTY3JpcHRCdWZmZXJQbHVzAE1pY3Jv
c29mdC5TcWxTZXJ2ZXIuVHhTY3JpcHQATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUA
U2NyaXB0Q29tcG9uZW50AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuUGlwZWxpbmVIb3N0AFBpcGVsaW5l
QnVmZmVyAENvbXBvbmVudABPYmplY3RJRABJc0lucHV0AEJ1ZmZlcgBnZXRfU3RhdGljSW5wdXRD
b2x1bW5zAGdldF9TdGF0aWNPdXRwdXRDb2x1bW5zAE5leHRSb3cARW5kT2ZSb3dzZXQAU3RhdGlj
SW5wdXRDb2x1bW5zAFN0YXRpY091dHB1dENvbHVtbnMAU2NyaXB0Q29tcG9uZW50UGx1cwBQcm9j
ZXNzSW5wdXQASW5wdXRJRABJbnB1dF9Qcm9jZXNzSW5wdXQASW5wdXRfUHJvY2Vzc0lucHV0Um93
AFJvdwBQYXJlbnRDb21wb25lbnQAUHJlRXhlY3V0ZQBWYWxpZGF0ZQBlcnJNZXNzYWdlAE9uSW5w
dXRQYXRoQXR0YWNoZWQAaW5wdXRJRABnZXRfRGF0YVNldFZhcmlhYmxlAHNldF9EYXRhU2V0VmFy
aWFibGUAdmFsdWUAZ2V0X1RhYmxlTmFtZQBzZXRfVGFibGVOYW1lAEdldElucHV0SWR4XwBTeXN0
ZW0uRGF0YQBEYXRhU2V0AEdldERhdGFTZXRfAERhdGFUYWJsZQBHZXRUYWJsZV8AZGF0YVNldABT
ZXR1cENvbHVtbnNfAHRhYmxlAG1fZGF0YXNldFZhcmlhYmxlAG1fdGFibGVOYW1lAG1fdGFibGUA
bV9pZHhJbgBtX2lkeE91dABEYXRhU2V0VmFyaWFibGUAVGFibGVOYW1lAFN5c3RlbS5SZXNvdXJj
ZXMAUmVzb3VyY2VNYW5hZ2VyAF9yZXNNZ3IAU3lzdGVtLkdsb2JhbGl6YXRpb24AQ3VsdHVyZUlu
Zm8AX3Jlc0N1bHR1cmUAZ2V0X1Jlc291cmNlTWFuYWdlcgBnZXRfQ3VsdHVyZQBzZXRfQ3VsdHVy
ZQBWYWx1ZQBDdWx0dXJlAFN5c3RlbS5Db25maWd1cmF0aW9uAEFwcGxpY2F0aW9uU2V0dGluZ3NC
YXNlAG1fVmFsdWUAbV9TeW5jT2JqZWN0AGdldF9WYWx1ZQBTeXN0ZW0uQ29tcG9uZW50TW9kZWwA
RWRpdG9yQnJvd3NhYmxlQXR0cmlidXRlAEVkaXRvckJyb3dzYWJsZVN0YXRlAFN5c3RlbS5Db2Rl
RG9tLkNvbXBpbGVyAEdlbmVyYXRlZENvZGVBdHRyaWJ1dGUAU3lzdGVtLkRpYWdub3N0aWNzAERl
YnVnZ2VySGlkZGVuQXR0cmlidXRlAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5Db21waWxlclNlcnZp
Y2VzAFN0YW5kYXJkTW9kdWxlQXR0cmlidXRlAEhpZGVNb2R1bGVOYW1lQXR0cmlidXRlAFN5c3Rl
bS5Db21wb25lbnRNb2RlbC5EZXNpZ24ASGVscEtleXdvcmRBdHRyaWJ1dGUAU3lzdGVtLlJ1bnRp
bWUuQ29tcGlsZXJTZXJ2aWNlcwBSdW50aW1lSGVscGVycwBHZXRPYmplY3RWYWx1ZQBSdW50aW1l
VHlwZUhhbmRsZQBHZXRUeXBlRnJvbUhhbmRsZQBBY3RpdmF0b3IAQ3JlYXRlSW5zdGFuY2UATXlH
cm91cENvbGxlY3Rpb25BdHRyaWJ1dGUAc2V0X1ZhbHVlAFN5c3RlbS5SdW50aW1lLkludGVyb3BT
ZXJ2aWNlcwBDb21WaXNpYmxlQXR0cmlidXRlAFN0cmluZwBTY3JpcHRCdWZmZXIAQ0xTQ29tcGxp
YW50QXR0cmlidXRlAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRFRTUGlwZWxpbmVXcmFwAE1pY3Jvc29m
dC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lLldyYXBwZXIASURUU0NvbXBvbmVudE1ldGFEYXRhMTAw
AGdldF9Db21wb25lbnRNZXRhRGF0YQBJRFRTSW5wdXRDb2xsZWN0aW9uMTAwAGdldF9JbnB1dENv
bGxlY3Rpb24ASURUU0lucHV0MTAwAGdldF9JdGVtAGdldF9JRABEYXRhUm93AE5ld1JvdwBnZXRf
QnVmZmVyAHNldF9JdGVtAERhdGFSb3dDb2xsZWN0aW9uAGdldF9Sb3dzAEFkZABFeGNlcHRpb24A
SXNOdWxsT3JFbXB0eQBQcm9qZWN0RGF0YQBTZXRQcm9qZWN0RXJyb3IAZ2V0X01lc3NhZ2UAQ2xl
YXJQcm9qZWN0RXJyb3IASURUU1ZpcnR1YWxJbnB1dDEwMABJRFRTVmlydHVhbElucHV0Q29sdW1u
MTAwAFN5c3RlbS5Db2xsZWN0aW9ucwBJRW51bWVyYXRvcgBJbnQzMgBHZXRWaXJ0dWFsSW5wdXQA
SURUU0lucHV0Q29sdW1uQ29sbGVjdGlvbjEwMABnZXRfSW5wdXRDb2x1bW5Db2xsZWN0aW9uAFJl
bW92ZUFsbABJRFRTVmlydHVhbElucHV0Q29sdW1uQ29sbGVjdGlvbjEwMABnZXRfVmlydHVhbElu
cHV0Q29sdW1uQ29sbGVjdGlvbgBHZXRFbnVtZXJhdG9yAGdldF9DdXJyZW50AGdldF9MaW5lYWdl
SUQARFRTVXNhZ2VUeXBlAFNldFVzYWdlVHlwZQBNb3ZlTmV4dABJRGlzcG9zYWJsZQBEaXNwb3Nl
AElEVFNJbnB1dENvbHVtbjEwMABnZXRfQ291bnQAUGlwZWxpbmVDb21wb25lbnQAZ2V0X0hvc3RD
b21wb25lbnQASURUU0J1ZmZlck1hbmFnZXIxMDAAZ2V0X0J1ZmZlck1hbmFnZXIARmluZENvbHVt
bkJ5TGluZWFnZUlEAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRFRTUnVudGltZVdyYXAATWljcm9zb2Z0
LlNxbFNlcnZlci5EdHMuUnVudGltZS5XcmFwcGVyAElEVFNWYXJpYWJsZXMxMDAASURUU1Zhcmlh
YmxlRGlzcGVuc2VyMTAwAGdldF9WYXJpYWJsZURpc3BlbnNlcgBMb2NrT25lRm9yV3JpdGUASURU
U1ZhcmlhYmxlMTAwAFVubG9jawBEYXRhVGFibGVDb2xsZWN0aW9uAGdldF9UYWJsZXMASW50ZXJu
YWxEYXRhQ29sbGVjdGlvbkJhc2UAQ29udGFpbnMARGF0YUNvbHVtbgBEYXRhQ29sdW1uQ29sbGVj
dGlvbgBnZXRfQ29sdW1ucwBnZXRfTmFtZQBnZXRfT3JkaW5hbABTU0lTU2NyaXB0Q29tcG9uZW50
RW50cnlQb2ludEF0dHJpYnV0ZQBDb3p5Um9jLlNxbFNlcnZlci5TU0lTLkF0dHJpYnV0ZXMAVmFs
aWRhdGVQcm9wZXJ0aWVzQXR0cmlidXRlAFZhcmlhYmxlQXR0cmlidXRlAERlc2NyaXB0aW9uQXR0
cmlidXRlAFN5c3RlbS5SZWZsZWN0aW9uAEFzc2VtYmx5AGdldF9Bc3NlbWJseQBTeXN0ZW0uVGhy
ZWFkaW5nAE1vbml0b3IARW50ZXIARXhpdABEZWJ1Z2dlck5vblVzZXJDb2RlQXR0cmlidXRlAFNj
cmlwdENvbXBvbmVudF8xNmEyZDIxNjRmOTI0OTdiYmY0MTA0ODBkMjhkZWZiNy52YnByb2ouUmVz
b3VyY2VzLnJlc291cmNlcwBDb21waWxhdGlvblJlbGF4YXRpb25zQXR0cmlidXRlAFJ1bnRpbWVD
b21wYXRpYmlsaXR5QXR0cmlidXRlAEFzc2VtYmx5RmlsZVZlcnNpb25BdHRyaWJ1dGUAR3VpZEF0
dHJpYnV0ZQBBc3NlbWJseVRyYWRlbWFya0F0dHJpYnV0ZQBBc3NlbWJseUNvcHlyaWdodEF0dHJp
YnV0ZQBBc3NlbWJseVByb2R1Y3RBdHRyaWJ1dGUAQXNzZW1ibHlDb21wYW55QXR0cmlidXRlAEFz
c2VtYmx5RGVzY3JpcHRpb25BdHRyaWJ1dGUAQXNzZW1ibHlUaXRsZUF0dHJpYnV0ZQBTY3JpcHRD
b21wb25lbnRfMTZhMmQyMTY0ZjkyNDk3YmJmNDEwNDgwZDI4ZGVmYjcudmJwcm9qLmRsbAAAAAAA
C0kAbgBwAHUAdAAAMVMAZQBsAGUAYwB0ACAAZABhAHQAYQBzAGUAdAAgAHYAYQByAGkAYQBiAGwA
ZQAuAAAxTQB5AC4AUgBlAHMAbwB1AHIAYwBlAHMALgBNAHkAUgBlAHMAbwB1AHIAYwBlAHMAAAAA
ALzrugBdfKdIo7UomoESkN8ACLd6XFYZNOCJCLA/X38R1Qo6AyAAAQMAAAEEAAASDAcGFRIYARIM
BAAAEggHBhUSGAESCAQAABIRBwYVEhgBEhEEAAASFAcGFRIYARIUBAgAEgwECAASCAQIABIRBAgA
EhQEIAECHAMgAAgEIAASFQMgAA4CHgAHEAEBHgAeAAcwAQEBEB4AAhMABCAAEwAHBhUSGQETAAQo
ABMACBbPSQu4DDTqCImEXc2AgMyRCSAEARIhCAISJQQgAB0OAyAAAgQoAB0OAwYSJAMGEigGIAIB
CBIlBSABARIcAwYSIQUgAQESIQUgAQIQDgQgAQEIBCABAQ4EIAAdCAQgABItBiABEjESLQYgAR0I
EjECBg4DBhIxAwYdCAMoAA4DBhI1AwYSOQQAABI1BAAAEjkFAAEBEjkECAASNQQIABI5AwYSNAIG
HAQAABI0BAgAEjQFIAEBEUUIAQABAAAAAAAFIAIBDg4XAQAKTXlUZW1wbGF0ZQc4LjAuMC4wAAAE
AQAAAAYVEhgBEgwGFRIYARIIBhUSGAESEQYVEhgBEhQEBwESDAQHARIIBAcBEhEEBwESFBMBAA5N
eS5BcHBsaWNhdGlvbgAAEAEAC015LkNvbXB1dGVyAAAMAQAHTXkuVXNlcgAAEwEADk15LldlYlNl
cnZpY2VzAAAEAAEcHAMHAQIDBwEIBgABEhURYQQHARIVAwcBDgUQAQAeAAQKAR4ABAcBHgAHIAQB
Dg4ODmEBADRTeXN0ZW0uV2ViLlNlcnZpY2VzLlByb3RvY29scy5Tb2FwSHR0cENsaWVudFByb3Rv
Y29sEkNyZWF0ZV9fSW5zdGFuY2VfXxNEaXNwb3NlX19JbnN0YW5jZV9fAAAABhUSGAETAAYVEhkB
EwAECgETAAUgAQETAAYHAhMAEwAEIAEBAgUBAAAAAAQHAR0OBCAAEn0FIAASgIEGIAESgIUcBSAA
EoCJBCAAEiUEIAEcCAUgAgEIHAUgABKAjQYgAQESgIkIBwQIEoCJCAgEBwESLQQAAQIOBgABARKA
kQcHAwICEoCRBSAAEoCZBSAAEoCpBSAAEoCtBSAAEoChAyAAHAcgAggIEYCxDgcEEoCFEoCZEoCd
EoChBiABEoC5HAUgABKAvQUgABKAwQUgAggICA8HBwgdCBKAhR0ICBKAuQgFIAASgMkIIAIBDhAS
gMUGIAESgM0cBCABARwMBwQSLRItEoDFEoCRBSAAEoDRBSABEjEIBSABARIxBCABAg4FIAESMQ4G
BwISMRIxBSAAEoDdBiABEoDZDhIHCAgSgIUdCB0ICBKA2RKAuQgNAQAIVmFsaWRhdGUAADsBADZT
ZWxlY3QgdmFyaWFibGUgY29udGFpbmluZyBkZXN0aW5hdGlvbiBkYXRhc2V0IG9iamVjdC4AADQB
AC9TcGVjaWZpZXMgdGhlIHRhYmxlIG5hbWUgaW4gZGF0YXNldCAob3B0aW9uYWwpLgAABSAAEoDx
ByACAQ4SgPEGBwISNRI1BAcBEjkIAQACAAAAAAAEAAEBHAQHARI0CAEACAAAAAAAHgEAAQBUAhZX
cmFwTm9uRXhjZXB0aW9uVGhyb3dzAQwBAAcxLjAuMC4wAAApAQAkYTNjN2JmNDAtMDRkMS00MWM1
LTg0NDgtOTAzZWY0MGU0OGIxAAAFAQABAAAfAQAaQ29weXJpZ2h0IEAgTWljcm9zb2Z0IDIwMTAA
ADwBADdTY3JpcHRDb21wb25lbnRfMTZhMmQyMTY0ZjkyNDk3YmJmNDEwNDgwZDI4ZGVmYjcudmJw
cm9qAAAOAQAJTWljcm9zb2Z0AAAAcEsAAAAAAAAAAAAAjksAAAAgAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAIBLAAAAAAAAAAAAAAAAAAAAAF9Db3JEbGxNYWluAG1zY29yZWUuZGxsAAAAAAD/JQAgQAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwADAAAAKAAA
gA4AAABIAACAEAAAAGAAAIAAAAAAAAAAAAAAAAAAAAIAAgAAAHgAAIADAAAAkAAAgAAAAAAAAAAA
AAAAAAAAAQAAfwAAqAAAgAAAAAAAAAAAAAAAAAAAAQABAAAAwAAAgAAAAAAAAAAAAAAAAAAAAQAA
AAAA2AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAA6AAAAAAAAAAAAAAAAAAAAAAAAQAAAAAA+AAAAAAA
AAAAAAAAAAAAAAAAAQAAAAAACAEAAIBlAADoAgAAAAAAAAAAAABoaAAAKAEAAAAAAAAAAAAAkGkA
ACIAAAAAAAAAAAAAABhhAABoBAAAAAAAAAAAAABoBDQAAABWAFMAXwBWAEUAUgBTAEkATwBOAF8A
SQBOAEYATwAAAAAAvQTv/gAAAQAAAAEAAAAAAAAAAQAAAAAAPwAAAAAAAAAEAAAAAgAAAAAAAAAA
AAAAAAAAAEQAAAABAFYAYQByAEYAaQBsAGUASQBuAGYAbwAAAAAAJAAEAAAAVAByAGEAbgBzAGwA
YQB0AGkAbwBuAAAAAAAAALAEyAMAAAEAUwB0AHIAaQBuAGcARgBpAGwAZQBJAG4AZgBvAAAApAMA
AAEAMAAwADAAMAAwADQAYgAwAAAANAAKAAEAQwBvAG0AcABhAG4AeQBOAGEAbQBlAAAAAABNAGkA
YwByAG8AcwBvAGYAdAAAAJgAOAABAEYAaQBsAGUARABlAHMAYwByAGkAcAB0AGkAbwBuAAAAAABT
AGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADEANgBhADIAZAAyADEANgA0AGYAOQAyADQA
OQA3AGIAYgBmADQAMQAwADQAOAAwAGQAMgA4AGQAZQBmAGIANwAuAHYAYgBwAHIAbwBqAAAAMAAI
AAEARgBpAGwAZQBWAGUAcgBzAGkAbwBuAAAAAAAxAC4AMAAuADAALgAwAAAAmAA8AAEASQBuAHQA
ZQByAG4AYQBsAE4AYQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADEANgBh
ADIAZAAyADEANgA0AGYAOQAyADQAOQA3AGIAYgBmADQAMQAwADQAOAAwAGQAMgA4AGQAZQBmAGIA
NwAuAHYAYgBwAHIAbwBqAC4AZABsAGwAAABcABsAAQBMAGUAZwBhAGwAQwBvAHAAeQByAGkAZwBo
AHQAAABDAG8AcAB5AHIAaQBnAGgAdAAgAEAAIABNAGkAYwByAG8AcwBvAGYAdAAgADIAMAAxADAA
AAAAAKAAPAABAE8AcgBpAGcAaQBuAGEAbABGAGkAbABlAG4AYQBtAGUAAABTAGMAcgBpAHAAdABD
AG8AbQBwAG8AbgBlAG4AdABfADEANgBhADIAZAAyADEANgA0AGYAOQAyADQAOQA3AGIAYgBmADQA
MQAwADQAOAAwAGQAMgA4AGQAZQBmAGIANwAuAHYAYgBwAHIAbwBqAC4AZABsAGwAAACQADgAAQBQ
AHIAbwBkAHUAYwB0AE4AYQBtAGUAAAAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8A
MQA2AGEAMgBkADIAMQA2ADQAZgA5ADIANAA5ADcAYgBiAGYANAAxADAANAA4ADAAZAAyADgAZABl
AGYAYgA3AC4AdgBiAHAAcgBvAGoAAAA0AAgAAQBQAHIAbwBkAHUAYwB0AFYAZQByAHMAaQBvAG4A
AAAxAC4AMAAuADAALgAwAAAAOAAIAAEAQQBzAHMAZQBtAGIAbAB5ACAAVgBlAHIAcwBpAG8AbgAA
ADEALgAwAC4AMAAuADAAAAAoAAAAIAAAAEAAAAABAAQAAAAAAIACAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD/
/wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAd3d3d3d3d3d3d3d3d3dwBEREREREREREREREREREcAT/////////////
////9HAE//////////////////RwBP/////////////////0cAT/////////////////9HAE////
//////////////RwBP/////////////////0cAT/////////////////9HAE////////////////
//RwBP/////////////////0cAT/////////////////9HAE//////////////////RwBP//////
///////////0cAT/////////////////9HAE//////////////////RwBP/////////////////0
cAT/////////////////9HAE//////////////////RwBP/////////////////0cASIiIiIiIiI
iIiIiIiIhHAERERERERERERERERERERwBExMTExMTExMTE7Ozkl0cATMzMzMzMzMzMzMzMzMxAAA
REREREREREREREREREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA/////////////////////8AAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAA
AYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB
gAAAA8AAAAf///////////////8oAAAAEAAAACAAAAABAAQAAAAAAMAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A
/wD//wAA////AAAAAAAAAAAAB3d3d3d3d3dERERERERER0////////hHT///////+EdP///////4
R0////////hHT///////+EdP///////4R0////////hHT///////+EdIiIiIiIiIR0zMzMzMzMxH
xERERERERMAAAAAAAAAAAAAAAAAAAAAA//8AAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAABAAD//wAA//8AAAAAAQACACAgEAABAAQA6AIAAAIAEBAQAAEA
BAAoAQAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADAAAAKA7AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></arrayElement></arrayElements></property>
<property id="109" name="UserComponentTypeName" dataType="System.String" state="default" isArray="false" description="" typeConverter="" UITypeEditor="" containsID="false" expressionType="None">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2008, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property>
<property id="150" name="VSTAProjectName" dataType="System.String" state="default" isArray="false" description="Specifies the name of the Microsoft Visual Studio Tools for Applications project. Project names must be unique within a package." typeConverter="NOTBROWSABLE" UITypeEditor="" containsID="false" expressionType="None">ScriptComponent_16a2d2164f92497bbf410480d28defb7</property>
<property id="151" name="ScriptLanguage" dataType="System.String" state="default" isArray="false" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" UITypeEditor="" containsID="false" expressionType="None">VisualBasic</property></properties>
<inputs>
<input id="111" name="Input" description="" hasSideEffects="true" dangling="false" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed"><externalMetadataColumns isUsed="False" /></input>
</inputs>
</component>