<component id="25" name="Script Component Plus" 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="77" 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_8f734237c75943ee9ac473e24a6a3d6d.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_8f734237c75943ee9ac473e24a6a3d6d.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2011")> 
<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("01f94fc3-afe8-4d35-9022-2faff1967415")> 

' 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

<CLSCompliant(False)> _
Public Class OutputBuffer
    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 Sub AddRow()
        MyBase.AddRow()
    End Sub

    Public Overloads Sub SetEndOfRowset()
        MyBase.SetEndOfRowset()
    End Sub

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[\scriptcomponent_8f734237c75943ee9ac473e24a6a3d6d.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_8f734237c75943ee9ac473e24a6a3d6d.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_8f734237c75943ee9ac473e24a6a3d6d.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{23C08F2A-634C-4616-BCDC-917166658E1A}</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.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[\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 OutputBuffer As OutputBuffer

    Dim InputsFinished As Integer = 0

    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

        If Buffer.EndOfRowset Then
            InputsFinished = InputsFinished + 1
            If InputsFinished = 0 Then
                FinishOutputs()
                MarkOutputsFinished()
            End If
        End If

    End Sub

    Public Overridable Sub FinishOutputs()
    End Sub

    Private Sub MarkOutputsFinished()

        If OutputBuffer IsNot Nothing Then
            OutputBuffer.SetEndOfRowset
            OutputBuffer = Nothing
        End If

    End Sub

    Public Overrides Sub PrimeOutput(ByVal Outputs As Integer, ByVal OutputIDs() As Integer, ByVal Buffers() As PipelineBuffer)

        For I As Integer = 0 To Outputs - 1
            If OutputIDs(I) = MyBase.ComponentMetaData.OutputCollection("Output").ID Then
                OutputBuffer = New OutputBuffer(Me, OutputIDs(I), False, Buffers(I))
            End If
        Next

        CreateNewOutputRows()

    End Sub

    Public Overridable Sub CreateNewOutputRows()
    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><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-2011 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.Text.RegularExpressions

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 ProcessInput( _
        ByVal InputID As Integer, _
        ByVal Buffer As Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer)

        Dim colsCount As Integer = m_colsIndex.Length

        While Buffer.NextRow()
            Dim repeatCount As Integer = Convert.ToInt32(Buffer(m_repeatIndex))
            For index As Integer = 0 To repeatCount - 1
                MyBase.OutputBuffer.AddRow()

                For colIndex As Integer = 0 To colsCount - 1
                    MyBase.OutputBuffer.Buffer(m_colsIndex(colIndex)) = Buffer(colIndex)
                Next
            Next
        End While

        If Buffer.EndOfRowset Then
            Call MyBase.OutputBuffer.SetEndOfRowset()
        End If
    End Sub ' ProcessInput


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

        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)

        ' Find repeat column index.
        m_repeatIndex = MyBase.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            input.InputColumnCollection(Me.RepeatColumn).LineageID)

        ' Find columns index from input to output.
        Dim output As IDTSOutput100 = MyBase.ComponentMetaData.OutputCollection(0)
        Dim colsCount As Integer = input.InputColumnCollection.Count
        m_colsIndex = New Integer(colsCount - 1) {}
        For colIndex As Integer = 0 To colsCount - 1
            Dim inputCol As IDTSInputColumn100 = input.InputColumnCollection(colIndex)

            ' Get input column index.
            Dim inputColIndex As Integer = MyBase.HostComponent.BufferManager.FindColumnByLineageID( _
                input.Buffer, _
                inputCol.LineageID)

            ' Set output column index.
            m_colsIndex(inputColIndex) = MyBase.HostComponent.BufferManager.FindColumnByLineageID( _
                output.Buffer, _
                output.OutputColumnCollection(inputCol.Name).LineageID)
        Next
    End Sub ' PreExecute


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

        Try
            Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
            Dim virtInput As IDTSVirtualInput100 = input.GetVirtualInput()

            If virtInput.VirtualInputColumnCollection.Count > 0 AndAlso _
                String.IsNullOrEmpty(Me.RepeatColumn) Then

                Throw New Exception("Select repeat column.")
            End If
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    'Validate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Copy input columns to the asynchronous output.
    Public Overrides Sub OnInputPathAttached(ByVal inputID As Integer)
        Call MyBase.OnInputPathAttached(inputID)

        Call MyBase.ComponentMetaData.InputCollection(0).InputColumnCollection.RemoveAll()
        Call MyBase.ComponentMetaData.OutputCollection(0).OutputColumnCollection.RemoveAll()

        Dim virtInput As IDTSVirtualInput100 = MyBase.ComponentMetaData.InputCollection.GetObjectByID(inputID).GetVirtualInput()

        Dim outputCols As IDTSOutputColumnCollection100
        outputCols = MyBase.ComponentMetaData.OutputCollection(0).OutputColumnCollection

        Dim managedComponent As CManagedComponentWrapper = MyBase.ComponentMetaData.Instantiate()

        Dim colsCount As Integer = virtInput.VirtualInputColumnCollection.Count
        For colIndex As Integer = 0 To colsCount - 1
            Dim inputCol As IDTSVirtualInputColumn100 = virtInput.VirtualInputColumnCollection(colIndex)

            ' Setup input column.
            Call managedComponent.SetUsageType( _
                inputID, _
                virtInput, _
                inputCol.LineageID, _
                DTSUsageType.UT_READONLY)

            ' Add output column.
            Dim outputCol As IDTSOutputColumn100 = outputCols.[New]()
            outputCol.Name = inputCol.Name
            With inputCol
                Call outputCol.SetDataTypeProperties(.DataType, .Length, .Precision, .Scale, .CodePage)
            End With
        Next
    End Sub ' OnInputPathAttached


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub OnInputPathDetached(ByVal inputID As Integer)
        Call MyBase.OnInputPathDetached(inputID)

        Call MyBase.ComponentMetaData.InputCollection(0).InputColumnCollection.RemoveAll()
        Call MyBase.ComponentMetaData.OutputCollection(0).OutputColumnCollection.RemoveAll()
    End Sub ' OnInputPathDetached


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select input row repeat column.")> _
    <InputVirtualColumn()> _
    Public Property RepeatColumn() As String
        Get
            RepeatColumn = m_repeatColumn
        End Get
        Set(ByVal value As String)
            m_repeatColumn = value
        End Set
    End Property    ' RepeatColumn
#End Region ' Properties


#Region "Attributes"
    Private m_repeatColumn As String

    Private m_repeatIndex As Integer
    Private m_colsIndex() As Integer
#End Region ' Attributes
End Class   ' ScriptMain
]]></arrayElement></arrayElements></property>
<property id="78" 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_8f734237c75943ee9ac473e24a6a3d6d.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
GgAAEX4QAAAEKgAAHgKAEAAABCpCcxcAAAooEQAACoASAAAEKgAAAB4CKGAAAAoqGzABAD8AAAAb
AAARfhEAAAQtMn4SAAAEKBEAAAooYQAACn4RAAAELRxzMwAABoARAAAE3hB+EgAABCgRAAAKKGIA
AArcfhEAAAQqAAEMAAACAB0ADCkAEAAAAAFCU0pCAQABAAAAAAAMAAAAdjIuMC41MDcyNwAAAAAF
AGwAAACgDAAAI34AAAwNAAAsEAAAI1N0cmluZ3MAAAAAOB0AAHwAAAAjVVMAtB0AABAAAAAjR1VJ
RAAAAMQdAADYBAAAI0Jsb2IAAAAAAAAAAgAAAVcVogkJDwAAAPoBMwAWAAABAAAAQwAAAA4AAAAS
AAAANAAAABsAAABtAAAAPQAAABsAAAAHAAAADQAAAA8AAAAJAAAAAQAAAAgAAAABAAAAAgAAAAMA
AAACAAAAAADwDwEAAAAAAAoAtgGMAQoA6gHMAQYA+gHzAQoAUgKMAQYA0ALzAQoAUgMoAw4ApAON
AxIA8wPSAxYAJATSAw4A1QSNAwYAZAZTBgYAkQZ8BhoA+AbjBhoARQcvBxoAXgcvBxoAiwdzBwYA
tQeiBwoA9AfNBwoADAgTABoAQQgkCAYAdghWCAYAlAjzAQYAuAjzAQoA0QgTAAYAFQn2CAYAKQnz
ARIAMAnSAwYAPQnzAR4AoAl3CR4Azwl3CR4A+gl3CR4AJwp3CR4AVAp3CQYAYgrzAR4Ahgp3CQYA
mQrzARYAnwrSAx4Awwp3CR4A6gp3CR4ATwt3CR4AkQt3CR4ApQt3CQYAuQvzAR4A0wt3CQoAJgzN
Bx4AYAx3CR4AeQx3CR4Atwx3CR4A0gx3CSIARA0cDRIAoA3SAw4A6Q3HDQ4ABQ7HDRoAIQ4vBwYA
SA42DgYAbw5eDgYAgg6iBwYA6w5WCAYACw9WCAYAKQ82DgYARg/2CAYAVA82DgYAbw82DgYAig82
DgYAow82DgYAvA82DgYA2Q82DgAAAAABAAAAAAABAAEAAAAAACkANwAFAAEAAQAAAAAAcgA3AAkA
AQACAAABEAB9ADcADQABAAMABQEAAIcAAAANAAUACAAFAQAAlQAAAA0ABQAPAAEAAACwALwAHQAG
ABEAAQAAAPQAvAAdAAYAFgABAAAAAQG8ACkABgAcAAEAAAAPAbwADQAKACQAAQAAABsBvAANAAsA
JQABAAAAJQG8ACQADAAmAAAAAAAwATwBDQAPAC4AAAEQAIEBvAA1ABEAMgAxABUCIAAxAD4CLQAx
AGACOgAxAIUCRwAhAGEDkAAGAA8BxwAGABsBywAGAPQAzwABAOkE0wABAJYF7QABAJYF7QABAB0G
BwEBACwG0wABADoGCgERAHQGEgERAJ0GFgERABAHNAERABgHOAEIIQAAAAAGGMYBEwABABAhAAAA
AAYYxgETAAEAGCEAAAAAERgBAhcAAQBEIQAAAAATCAgCGwABAFwhAAAAABMILgIoAAEAdCEAAAAA
EwhXAjUAAQCMIQAAAAATCHUCQgABAKQhAAAAAEYCuwJjAAEAwCEAAAAARgLEAmgAAgDUIQAAAACD
ANUCbAACAOwhAAAAAEYC3QJxAAIAACIAAAAAEQDmAngAAgAcIgAAAAABAAQDgAADADgiAAAAAAYY
xgETAAQAQCIAAAAAAwgYA4sABAB0IgAAAAAGGMYBEwAEAIgiAAAAAAYYxgGvAAQAmCIAAAAARgpV
BLkACACsIgAAAABGCmwEuQAIAMAiAAAAAIYAhAS+AAgA2CIAAAAAhgCMBL4ACADwIgAAAAAGGMYB
rwAIAAAjAAAAAEYKVQS5AAwAFCMAAAAARgpsBLkADAAoIwAAAACGAL8EEwAMADAjAAAAAIYAxgQT
AAwAOCMAAAAAhgCMBL4ADABQIwAAAAAGGMYBEwAMAHgjAAAAAEYC+ATWAAwA3CMAAAAARgMNBRMA
DgDgIwAAAAABABsFEwAOAPwjAAAAAEYCLwXdAA4AVCQAAAAARgNVBRMAEQBYJAAAAABGA2kF5wAR
AGwkAAAAAEYDfAXnABIAcCQAAAAABhjGAfEAEwCAJAAAAAAGGMYB8QAUAJAkAAAAAAYYxgETABUA
mCQAAAAARgL4BNYAFQA4JQAAAABGAqYFEwAXAEQmAAAAAAYAsQX3ABcAyCYAAAAARgLFBf0AGADs
JwAAAABGAuEF/QAZAEAoAAAAAAYI9QVxABoAWCgAAAAABggGBgIBGgBkKAAAAAADGMYBEwAbAGwo
AAAAABYIqQYaARsAqCgAAAAAFgi9Bh8BGwC8KAAAAAAWCMkGJAEbAMQoAAAAABEYAQIXABwA2CgA
AAAABhjGARMAHADgKAAAAAAWCCUHOwEcAAAAAQDCAgAAAQD7AgAAAQD7AgAAAQAzBAAAAgA9BAAA
AwBGBAAABABOBAAAAQAzBAAAAgA9BAAAAwBGBAAABABOBAAAAQAFBQAAAgBOBAAAAQA7BQAAAgBD
BQAAAwBNBQAAAQBOBAAAAQCSBQAAAQAzBAAAAQAzBAAAAQAFBQAAAgBOBAAAAQC6BQAAAQDZBQAA
AQDZBQAAAQAXBgAAAQDVBgkAxgETAHEAxgFFAYEAxgFUAREAxgETAIkAxgETACQAxgETACwAxgET
ADQAxgETADwAxgETACQAGAOLACwAGAOLADQAGAOLADwAGAOLAJEAxgETAJkAxgETAKEAxgECAakA
hQjtARkAuwJjABkAxAJoACkApgj6ARkA3QJxALkAwggKAhkAxgETAMEAxgEaAkQAYQOQAEwAJQeL
AEwA7AiXAkwAxgETAMkAxgGkAjkAxgGvANkAhAS+ANkAjAS+AOEAxgGkAtkAvwQTANkAxgQTAFEA
xgETAEEAuQm0AukA5gm5AvEABwq+AvkAEApoAEkAFwq+AOkAPwrEAgEBBwrKAgkBEApoAEkABwrW
AhEBagrbAjkAcgrgAkkAfQrlAkkAhAS+AEEApgUTAFEAsQr0AikB2Ar6AvkAcgpoAPkABwsAAzkB
BwoGAxkBIQtoADEBLwsNAzkBRQtoAAkBcgpoAAkBbQsTAxkBiAtxAEEBBwoZA0kBIQtoAPkAwwsv
A1EB9ws1A2EBRQtoANEAGAw7A1kBxgECAWkBMgxAA1kBQgxxAGkBTgwXAFEAxQX9ADkBkwwTAEEB
kwwTAPEAnQxUA+kAqwxaA2EBBwpgA3kBIQtoAIEB3wxnA0EB7Ax1A3kBiAtxAEkB8AwCAXkBTQ17
A3kBWg1oAHkBZQ1oAHkBcw1oAHkBfQ1oAEkBig2BA1EA4QX9AJkBxgETAKEBxgECAakBxgETALEB
xgECASkAUQ7XA1kAxgHdA2kAxgETAMEBdw76A8EBfQ76A8kBxgETANEBxgH9ANkBxgETAOEBxgEC
AekBxgECAfEBxgECAfkBxgECAQECxgECAQkCxgECARECxgECARkCxgECASkAgwCnAS4ASwNpBC4A
YwOpAi4AQwOpAi4AawOJBC4A6wCpAi4AUwOJBC4AWwPGBC4ACwFjBC4AIwMEBC4AKwMNBC4AMwMs
BC4AOwM5BEAAKwByAUAAEwBLAUMAEwBLAUMAGwBaAUkAgwDFAWMAGwBaAWMAEwBLAWkAgwC4AYAA
KwByAYMAewByAYMAGwBaAYMAcwByAYkAgwDZAaAAKwByAaMAEwBLAaMAwwAiAsAAKwByAcMA6wCp
AsMAEwBLAeAAKwByAeMACwGpAgABEwBLAQABKwByAQMBCwGpAiABKwByASABEwBLASMBCwGpAkAB
EwBLAUABKwByAUkB6wKyA0kB4wJyAWABKwByAWABEwBLAWkBEwDxA4ABKwByAYMB0wJyAYMB2wKk
A4MBCwGpAokBEwDxA6ABKwByAakBGwNyAcABKwByAcABEwBLAeABKwByAQACKwByAQACEwBLAYAE
CwGpAqAECwGpApMBmAGdAaIB8gH2AQECBgIVAhUCnQKvAq8C8gHyAa8CrwLyAdEC6wIgA0cDjAMG
AuUD7AP/AwQAAQAGAAUABwAGAAgACAAMAAoADQALAA4ADQAAAOoBTwAAAKMCVAAAAFICWQAAAK8C
XgAAAGsDmAAAAJgEwgAAAKsEwgAAAJgEwgAAAKsEwgAAAEYGDgEAAGQGKgEAANsGLwEAANUGQAEC
AAQAAwACAAUABQACAAYABwACAAcACQACAA8ACwACABIADQACABMADwACABcAEQACABgAEwACACwA
FQABAC0AFQACAC8AFwACADAAGQABADEAGQACADQAGwB1AHUAiAB3AX4BhQGMAYQCiwIEgAAAAQAA
AAAAAAAAAAAAAAC8AAAAAgAAAAAAAAAAAAAAAQAKAAAAAAAIAAAAAAAAAAAAAAAKABMAAAAAAAEA
AAAAAAAAAAAAAJ0AdwMAAAAACgAAAAAAAAAAAAAApgC1AwAAAAAKAAAAAAAAAAAAAACmAAMEAAAA
AAIAAAAAAAAAAAAAAAEA8wEAAAAACgAAAAAAAAAAAAAApgBTCQAAAAAKAAAAAAAAAAAAAACmAPkM
AAAAAAAAAAABAAAAnw4AAAUABAAGAAQAAAAQAAwA+QIAABAAGQD5AgAAAAAbAPkCLQAQAi0AkgIA
AAAAADxNb2R1bGU+AG1zY29ybGliAE1pY3Jvc29mdC5WaXN1YWxCYXNpYwBNeUFwcGxpY2F0aW9u
AFNjcmlwdENvbXBvbmVudF84ZjczNDIzN2M3NTk0M2VlOWFjNDczZTI0YTZhM2Q2ZC52YnByb2ou
TXkATXlDb21wdXRlcgBNeVByb2plY3QATXlXZWJTZXJ2aWNlcwBUaHJlYWRTYWZlT2JqZWN0UHJv
dmlkZXJgMQBJbnB1dEJ1ZmZlcgBTY3JpcHRDb21wb25lbnRfOGY3MzQyMzdjNzU5NDNlZTlhYzQ3
M2UyNGE2YTNkNmQudmJwcm9qAE91dHB1dEJ1ZmZlcgBVc2VyQ29tcG9uZW50AENvbm5lY3Rpb25z
AFZhcmlhYmxlcwBTY3JpcHRNYWluAE15UmVzb3VyY2VzAFNjcmlwdENvbXBvbmVudF84ZjczNDIz
N2M3NTk0M2VlOWFjNDczZTI0YTZhM2Q2ZC52YnByb2ouTXkuUmVzb3VyY2VzAE15U2V0dGluZ3MA
TWljcm9zb2Z0LlZpc3VhbEJhc2ljLkFwcGxpY2F0aW9uU2VydmljZXMAQXBwbGljYXRpb25CYXNl
AC5jdG9yAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5EZXZpY2VzAENvbXB1dGVyAFN5c3RlbQBPYmpl
Y3QALmNjdG9yAGdldF9Db21wdXRlcgBtX0NvbXB1dGVyT2JqZWN0UHJvdmlkZXIAZ2V0X0FwcGxp
Y2F0aW9uAG1fQXBwT2JqZWN0UHJvdmlkZXIAVXNlcgBnZXRfVXNlcgBtX1VzZXJPYmplY3RQcm92
aWRlcgBnZXRfV2ViU2VydmljZXMAbV9NeVdlYlNlcnZpY2VzT2JqZWN0UHJvdmlkZXIAQXBwbGlj
YXRpb24AV2ViU2VydmljZXMARXF1YWxzAG8AR2V0SGFzaENvZGUAVHlwZQBHZXRUeXBlAFRvU3Ry
aW5nAENyZWF0ZV9fSW5zdGFuY2VfXwBUAGluc3RhbmNlAERpc3Bvc2VfX0luc3RhbmNlX18AZ2V0
X0dldEluc3RhbmNlAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5NeVNlcnZpY2VzLkludGVybmFsAENv
bnRleHRWYWx1ZWAxAG1fQ29udGV4dABHZXRJbnN0YW5jZQBDb3p5Um9jLlNTSVNQbHVzLjIwMDgA
Q296eVJvYy5TcWxTZXJ2ZXIuU1NJUwBTY3JpcHRCdWZmZXJQbHVzAE1pY3Jvc29mdC5TcWxTZXJ2
ZXIuVHhTY3JpcHQATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUAU2NyaXB0Q29tcG9u
ZW50AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuUGlwZWxpbmVIb3N0AFBpcGVsaW5lQnVmZmVyAENvbXBv
bmVudABPYmplY3RJRABJc0lucHV0AEJ1ZmZlcgBnZXRfU3RhdGljSW5wdXRDb2x1bW5zAGdldF9T
dGF0aWNPdXRwdXRDb2x1bW5zAE5leHRSb3cARW5kT2ZSb3dzZXQAU3RhdGljSW5wdXRDb2x1bW5z
AFN0YXRpY091dHB1dENvbHVtbnMAQWRkUm93AFNldEVuZE9mUm93c2V0AFNjcmlwdENvbXBvbmVu
dFBsdXMASW5wdXRzRmluaXNoZWQAUHJvY2Vzc0lucHV0AElucHV0SUQARmluaXNoT3V0cHV0cwBN
YXJrT3V0cHV0c0ZpbmlzaGVkAFByaW1lT3V0cHV0AE91dHB1dHMAT3V0cHV0SURzAEJ1ZmZlcnMA
Q3JlYXRlTmV3T3V0cHV0Um93cwBJbnB1dF9Qcm9jZXNzSW5wdXQASW5wdXRfUHJvY2Vzc0lucHV0
Um93AFJvdwBQYXJlbnRDb21wb25lbnQAUHJlRXhlY3V0ZQBWYWxpZGF0ZQBlcnJNZXNzYWdlAE9u
SW5wdXRQYXRoQXR0YWNoZWQAaW5wdXRJRABPbklucHV0UGF0aERldGFjaGVkAGdldF9SZXBlYXRD
b2x1bW4Ac2V0X1JlcGVhdENvbHVtbgB2YWx1ZQBtX3JlcGVhdENvbHVtbgBtX3JlcGVhdEluZGV4
AG1fY29sc0luZGV4AFJlcGVhdENvbHVtbgBTeXN0ZW0uUmVzb3VyY2VzAFJlc291cmNlTWFuYWdl
cgBfcmVzTWdyAFN5c3RlbS5HbG9iYWxpemF0aW9uAEN1bHR1cmVJbmZvAF9yZXNDdWx0dXJlAGdl
dF9SZXNvdXJjZU1hbmFnZXIAZ2V0X0N1bHR1cmUAc2V0X0N1bHR1cmUAVmFsdWUAQ3VsdHVyZQBT
eXN0ZW0uQ29uZmlndXJhdGlvbgBBcHBsaWNhdGlvblNldHRpbmdzQmFzZQBtX1ZhbHVlAG1fU3lu
Y09iamVjdABnZXRfVmFsdWUAU3lzdGVtLkNvbXBvbmVudE1vZGVsAEVkaXRvckJyb3dzYWJsZUF0
dHJpYnV0ZQBFZGl0b3JCcm93c2FibGVTdGF0ZQBTeXN0ZW0uQ29kZURvbS5Db21waWxlcgBHZW5l
cmF0ZWRDb2RlQXR0cmlidXRlAFN5c3RlbS5EaWFnbm9zdGljcwBEZWJ1Z2dlckhpZGRlbkF0dHJp
YnV0ZQBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuQ29tcGlsZXJTZXJ2aWNlcwBTdGFuZGFyZE1vZHVs
ZUF0dHJpYnV0ZQBIaWRlTW9kdWxlTmFtZUF0dHJpYnV0ZQBTeXN0ZW0uQ29tcG9uZW50TW9kZWwu
RGVzaWduAEhlbHBLZXl3b3JkQXR0cmlidXRlAFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2Vydmlj
ZXMAUnVudGltZUhlbHBlcnMAR2V0T2JqZWN0VmFsdWUAUnVudGltZVR5cGVIYW5kbGUAR2V0VHlw
ZUZyb21IYW5kbGUAQWN0aXZhdG9yAENyZWF0ZUluc3RhbmNlAE15R3JvdXBDb2xsZWN0aW9uQXR0
cmlidXRlAHNldF9WYWx1ZQBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMAQ29tVmlzaWJs
ZUF0dHJpYnV0ZQBTdHJpbmcAU2NyaXB0QnVmZmVyAENMU0NvbXBsaWFudEF0dHJpYnV0ZQBNaWNy
b3NvZnQuU3FsU2VydmVyLkRUU1BpcGVsaW5lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5Q
aXBlbGluZS5XcmFwcGVyAElEVFNDb21wb25lbnRNZXRhRGF0YTEwMABnZXRfQ29tcG9uZW50TWV0
YURhdGEASURUU0lucHV0Q29sbGVjdGlvbjEwMABnZXRfSW5wdXRDb2xsZWN0aW9uAElEVFNJbnB1
dDEwMABnZXRfSXRlbQBnZXRfSUQAZ2V0X0VuZE9mUm93c2V0AElEVFNPdXRwdXRDb2xsZWN0aW9u
MTAwAGdldF9PdXRwdXRDb2xsZWN0aW9uAElEVFNPdXRwdXQxMDAAQ29udmVydABUb0ludDMyAGdl
dF9CdWZmZXIAc2V0X0l0ZW0ASURUU0lucHV0Q29sdW1uMTAwAEludDMyAFBpcGVsaW5lQ29tcG9u
ZW50AGdldF9Ib3N0Q29tcG9uZW50AElEVFNCdWZmZXJNYW5hZ2VyMTAwAGdldF9CdWZmZXJNYW5h
Z2VyAElEVFNJbnB1dENvbHVtbkNvbGxlY3Rpb24xMDAAZ2V0X0lucHV0Q29sdW1uQ29sbGVjdGlv
bgBnZXRfTGluZWFnZUlEAEZpbmRDb2x1bW5CeUxpbmVhZ2VJRABnZXRfQ291bnQASURUU091dHB1
dENvbHVtbkNvbGxlY3Rpb24xMDAAZ2V0X091dHB1dENvbHVtbkNvbGxlY3Rpb24AZ2V0X05hbWUA
SURUU091dHB1dENvbHVtbjEwMABJRFRTVmlydHVhbElucHV0MTAwAEV4Y2VwdGlvbgBHZXRWaXJ0
dWFsSW5wdXQASURUU1ZpcnR1YWxJbnB1dENvbHVtbkNvbGxlY3Rpb24xMDAAZ2V0X1ZpcnR1YWxJ
bnB1dENvbHVtbkNvbGxlY3Rpb24ASXNOdWxsT3JFbXB0eQBQcm9qZWN0RGF0YQBTZXRQcm9qZWN0
RXJyb3IAZ2V0X01lc3NhZ2UAQ2xlYXJQcm9qZWN0RXJyb3IAQ01hbmFnZWRDb21wb25lbnRXcmFw
cGVyAElEVFNWaXJ0dWFsSW5wdXRDb2x1bW4xMDAAUmVtb3ZlQWxsAEdldE9iamVjdEJ5SUQASW5z
dGFudGlhdGUASURUU0Rlc2lnbnRpbWVDb21wb25lbnQxMDAARFRTVXNhZ2VUeXBlAFNldFVzYWdl
VHlwZQBOZXcAc2V0X05hbWUATWljcm9zb2Z0LlNxbFNlcnZlci5EVFNSdW50aW1lV3JhcABNaWNy
b3NvZnQuU3FsU2VydmVyLkR0cy5SdW50aW1lLldyYXBwZXIARGF0YVR5cGUAZ2V0X0RhdGFUeXBl
AGdldF9MZW5ndGgAZ2V0X1ByZWNpc2lvbgBnZXRfU2NhbGUAZ2V0X0NvZGVQYWdlAFNldERhdGFU
eXBlUHJvcGVydGllcwBTU0lTU2NyaXB0Q29tcG9uZW50RW50cnlQb2ludEF0dHJpYnV0ZQBDb3p5
Um9jLlNxbFNlcnZlci5TU0lTLkF0dHJpYnV0ZXMAVmFsaWRhdGVQcm9wZXJ0aWVzQXR0cmlidXRl
AElucHV0VmlydHVhbENvbHVtbkF0dHJpYnV0ZQBEZXNjcmlwdGlvbkF0dHJpYnV0ZQBTeXN0ZW0u
UmVmbGVjdGlvbgBBc3NlbWJseQBnZXRfQXNzZW1ibHkAU3lzdGVtLlRocmVhZGluZwBNb25pdG9y
AEVudGVyAEV4aXQARGVidWdnZXJOb25Vc2VyQ29kZUF0dHJpYnV0ZQBTY3JpcHRDb21wb25lbnRf
OGY3MzQyMzdjNzU5NDNlZTlhYzQ3M2UyNGE2YTNkNmQudmJwcm9qLlJlc291cmNlcy5yZXNvdXJj
ZXMAQ29tcGlsYXRpb25SZWxheGF0aW9uc0F0dHJpYnV0ZQBSdW50aW1lQ29tcGF0aWJpbGl0eUF0
dHJpYnV0ZQBBc3NlbWJseUZpbGVWZXJzaW9uQXR0cmlidXRlAEd1aWRBdHRyaWJ1dGUAQXNzZW1i
bHlUcmFkZW1hcmtBdHRyaWJ1dGUAQXNzZW1ibHlDb3B5cmlnaHRBdHRyaWJ1dGUAQXNzZW1ibHlQ
cm9kdWN0QXR0cmlidXRlAEFzc2VtYmx5Q29tcGFueUF0dHJpYnV0ZQBBc3NlbWJseURlc2NyaXB0
aW9uQXR0cmlidXRlAEFzc2VtYmx5VGl0bGVBdHRyaWJ1dGUAU2NyaXB0Q29tcG9uZW50XzhmNzM0
MjM3Yzc1OTQzZWU5YWM0NzNlMjRhNmEzZDZkLnZicHJvai5kbGwAAAtJAG4AcAB1AHQAAA1PAHUA
dABwAHUAdAAAK1MAZQBsAGUAYwB0ACAAcgBlAHAAZQBhAHQAIABjAG8AbAB1AG0AbgAuAAAxTQB5
AC4AUgBlAHMAbwB1AHIAYwBlAHMALgBNAHkAUgBlAHMAbwB1AHIAYwBlAHMAAAAAAJcKCodPEW5A
sUdKtSUtQEQACLd6XFYZNOCJCLA/X38R1Qo6AyAAAQMAAAEEAAASDAcGFRIYARIMBAAAEggHBhUS
GAESCAQAABIRBwYVEhgBEhEEAAASFAcGFRIYARIUBAgAEgwECAASCAQIABIRBAgAEhQEIAECHAMg
AAgEIAASFQMgAA4CHgAHEAEBHgAeAAcwAQEBEB4AAhMABCAAEwAHBhUSGQETAAQoABMACBbPSQu4
DDTqCImEXc2AgMyRCSAEARIhCAISJQQgAB0OAyAAAgQoAB0OAwYSKAMGEiwDBhIgAgYIBiACAQgS
JQkgAwEIHQgdEiUFIAEBEhwDBhIhBSABARIhBSABAhAOBCABAQgEIAEBDgIGDgMGHQgDKAAOAwYS
LQMGEjEEAAASLQQAABIxBQABARIxBAgAEi0ECAASMQMGEjgCBhwEAAASOAQIABI4BSABARE9CAEA
AQAAAAAABSACAQ4OFwEACk15VGVtcGxhdGUHOC4wLjAuMAAABAEAAAAGFRIYARIMBhUSGAESCAYV
EhgBEhEGFRIYARIUBAcBEgwEBwESCAQHARIRBAcBEhQQAQALTXkuQ29tcHV0ZXIAAAwBAAdNeS5V
c2VyAAATAQAOTXkuQXBwbGljYXRpb24AABMBAA5NeS5XZWJTZXJ2aWNlcwAABAABHBwDBwECAwcB
CAYAARIVEVkEBwESFQMHAQ4FEAEAHgAECgEeAAQHAR4AByAEAQ4ODg5hAQA0U3lzdGVtLldlYi5T
ZXJ2aWNlcy5Qcm90b2NvbHMuU29hcEh0dHBDbGllbnRQcm90b2NvbBJDcmVhdGVfX0luc3RhbmNl
X18TRGlzcG9zZV9fSW5zdGFuY2VfXwAAAAYVEhgBEwAGFRIZARMABAoBEwAFIAEBEwAGBwITABMA
BCABAQIFAQAAAAAEBwEdDgQgABJ1BCAAEnkFIAESfRwFIAASgIEGIAESgIUcBAcCCAgEIAEcCAQA
AQgcBCAAEiUFIAIBCBwIBwYICAgICAgFIAASgJUFIAASgJkFIAASgJ0GIAESgI0cBSACCAgIBSAA
EoChBiABEoClHA4HBwgSfRKAhQgSgI0ICAUgABKAqQUgABKAsQQAAQIOBgABARKArQwHBQICEn0S
gKkSgK0FIAESfQgFIAASgLkGIAESgL0cDSAEEoCNCBKAqQgRgMUFIAASgKUFIAARgMkKIAUBEYDJ
CAgICBcHCQgSgLkSgKESgKkIEoC9EoClCBKAvQ0BAAhWYWxpZGF0ZQAAJAEAH1NlbGVjdCBpbnB1
dCByb3cgcmVwZWF0IGNvbHVtbi4AAAUgABKA3QcgAgEOEoDdBgcCEi0SLQQHARIxCAEAAgAAAAAA
BAABARwEBwESOAgBAAgAAAAAAB4BAAEAVAIWV3JhcE5vbkV4Y2VwdGlvblRocm93cwEMAQAHMS4w
LjAuMAAAKQEAJDAxZjk0ZmMzLWFmZTgtNGQzNS05MDIyLTJmYWZmMTk2NzQxNQAABQEAAQAAHwEA
GkNvcHlyaWdodCBAIE1pY3Jvc29mdCAyMDExAAA8AQA3U2NyaXB0Q29tcG9uZW50XzhmNzM0MjM3
Yzc1OTQzZWU5YWM0NzNlMjRhNmEzZDZkLnZicHJvagAADgEACU1pY3Jvc29mdAAAAAAAAEwAAAAA
AAAAAAAAHkwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBMAAAAAAAAAAAAAAAAAAAAAF9Db3JE
bGxNYWluAG1zY29yZWUuZGxsAAAAAAD/JQAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAMAAAAoAACA
DgAAAEgAAIAQAAAAYAAAgAAAAAAAAAAAAAAAAAAAAgACAAAAeAAAgAMAAACQAACAAAAAAAAAAAAA
AAAAAAABAAB/AACoAACAAAAAAAAAAAAAAAAAAAABAAEAAADAAACAAAAAAAAAAAAAAAAAAAABAAAA
AADYAAAAAAAAAAAAAAAAAAAAAAABAAAAAADoAAAAAAAAAAAAAAAAAAAAAAABAAAAAAD4AAAAAAAA
AAAAAAAAAAAAAAABAAAAAAAIAQAAgGUAAOgCAAAAAAAAAAAAAGhoAAAoAQAAAAAAAAAAAACQaQAA
IgAAAAAAAAAAAAAAGGEAAGgEAAAAAAAAAAAAAGgENAAAAFYAUwBfAFYARQBSAFMASQBPAE4AXwBJ
AE4ARgBPAAAAAAC9BO/+AAABAAAAAQAAAAAAAAABAAAAAAA/AAAAAAAAAAQAAAACAAAAAAAAAAAA
AAAAAAAARAAAAAEAVgBhAHIARgBpAGwAZQBJAG4AZgBvAAAAAAAkAAQAAABUAHIAYQBuAHMAbABh
AHQAaQBvAG4AAAAAAAAAsATIAwAAAQBTAHQAcgBpAG4AZwBGAGkAbABlAEkAbgBmAG8AAACkAwAA
AQAwADAAMAAwADAANABiADAAAAA0AAoAAQBDAG8AbQBwAGEAbgB5AE4AYQBtAGUAAAAAAE0AaQBj
AHIAbwBzAG8AZgB0AAAAmAA4AAEARgBpAGwAZQBEAGUAcwBjAHIAaQBwAHQAaQBvAG4AAAAAAFMA
YwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AOABmADcAMwA0ADIAMwA3AGMANwA1ADkANAAz
AGUAZQA5AGEAYwA0ADcAMwBlADIANABhADYAYQAzAGQANgBkAC4AdgBiAHAAcgBvAGoAAAAwAAgA
AQBGAGkAbABlAFYAZQByAHMAaQBvAG4AAAAAADEALgAwAC4AMAAuADAAAACYADwAAQBJAG4AdABl
AHIAbgBhAGwATgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AOABmADcA
MwA0ADIAMwA3AGMANwA1ADkANAAzAGUAZQA5AGEAYwA0ADcAMwBlADIANABhADYAYQAzAGQANgBk
AC4AdgBiAHAAcgBvAGoALgBkAGwAbAAAAFwAGwABAEwAZQBnAGEAbABDAG8AcAB5AHIAaQBnAGgA
dAAAAEMAbwBwAHkAcgBpAGcAaAB0ACAAQAAgAE0AaQBjAHIAbwBzAG8AZgB0ACAAMgAwADEAMQAA
AAAAoAA8AAEATwByAGkAZwBpAG4AYQBsAEYAaQBsAGUAbgBhAG0AZQAAAFMAYwByAGkAcAB0AEMA
bwBtAHAAbwBuAGUAbgB0AF8AOABmADcAMwA0ADIAMwA3AGMANwA1ADkANAAzAGUAZQA5AGEAYwA0
ADcAMwBlADIANABhADYAYQAzAGQANgBkAC4AdgBiAHAAcgBvAGoALgBkAGwAbAAAAJAAOAABAFAA
cgBvAGQAdQBjAHQATgBhAG0AZQAAAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwA4
AGYANwAzADQAMgAzADcAYwA3ADUAOQA0ADMAZQBlADkAYQBjADQANwAzAGUAMgA0AGEANgBhADMA
ZAA2AGQALgB2AGIAcAByAG8AagAAADQACAABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8AbgAA
ADEALgAwAC4AMAAuADAAAAA4AAgAAQBBAHMAcwBlAG0AYgBsAHkAIABWAGUAcgBzAGkAbwBuAAAA
MQAuADAALgAwAC4AMAAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//
AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAB3d3d3d3d3d3d3d3d3d3AERERERERERERERERERERwBP//////////////
///0cAT/////////////////9HAE//////////////////RwBP/////////////////0cAT/////
////////////9HAE//////////////////RwBP/////////////////0cAT/////////////////
9HAE//////////////////RwBP/////////////////0cAT/////////////////9HAE////////
//////////RwBP/////////////////0cAT/////////////////9HAE//////////////////Rw
BP/////////////////0cAT/////////////////9HAE//////////////////RwBIiIiIiIiIiI
iIiIiIiEcARERERERERERERERERERHAETExMTExMTExMTs7OSXRwBMzMzMzMzMzMzMzMzMzEAABE
REREREREREREREREQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAD/////////////////////wAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB
gAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGA
AAADwAAAB////////////////ygAAAAQAAAAIAAAAAEABAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/
AP//AAD///8AAAAAAAAAAAAHd3d3d3d3d0RERERERERHT///////+EdP///////4R0////////hH
T///////+EdP///////4R0////////hHT///////+EdP///////4R0iIiIiIiIhHTMzMzMzMzEfE
REREREREwAAAAAAAAAAAAAAAAAAAAAD//wAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEAAP//AAD//wAAAAABAAIAICAQAAEABADoAgAAAgAQEBAAAQAE
ACgBAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAMAAAAMDwAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA]]></arrayElement></arrayElements></property>
<property id="79" 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="80" 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_8f734237c75943ee9ac473e24a6a3d6d</property>
<property id="81" 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="82" name="Input" description="" hasSideEffects="true" dangling="false" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed"><externalMetadataColumns isUsed="False" /></input>
</inputs>
<outputs>
<output id="83" name="Output" description="" exclusionGroup="0" synchronousInputId="0" deleteOutputOnPathDetached="false" hasSideEffects="true" dangling="false" isErrorOut="false" isSorted="false" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed"><externalMetadataColumns isUsed="False" /></output>
</outputs>
</component>