<component id="1" 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="5" 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_a47149323d3c46b7b82edea048c6dbe8.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_a47149323d3c46b7b82edea048c6dbe8.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2012")> 
<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("318ec4b1-e9b3-42b0-a5af-2beca4ea35d1")> 

' 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[\scriptcomponent_a47149323d3c46b7b82edea048c6dbe8.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_a47149323d3c46b7b82edea048c6dbe8.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_a47149323d3c46b7b82edea048c6dbe8.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{B309A74C-D773-4AF2-8A34-96F1591867D3}</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.Web" />
    <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\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 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 WriteOnly Property [Timestamp]() As DateTime
        Set
            Me(0) = Value
        End Set
    End Property
    Public WriteOnly Property [Timestamp_IsNull] As Boolean
        Set
            If (value)
                SetNull(0)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [Timezone]() As String
        Set
            Me(1) = Value
        End Set
    End Property
    Public WriteOnly Property [Timezone_IsNull] As Boolean
        Set
            If (value)
                SetNull(1)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [Type]() As String
        Set
            Me(2) = Value
        End Set
    End Property
    Public WriteOnly Property [Type_IsNull] As Boolean
        Set
            If (value)
                SetNull(2)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [Email]() As String
        Set
            Me(3) = Value
        End Set
    End Property
    Public WriteOnly Property [Email_IsNull] As Boolean
        Set
            If (value)
                SetNull(3)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [Name]() As String
        Set
            Me(4) = Value
        End Set
    End Property
    Public WriteOnly Property [Name_IsNull] As Boolean
        Set
            If (value)
                SetNull(4)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [TransactionId]() As String
        Set
            Me(5) = Value
        End Set
    End Property
    Public WriteOnly Property [TransactionId_IsNull] As Boolean
        Set
            If (value)
                SetNull(5)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [Status]() As String
        Set
            Me(6) = Value
        End Set
    End Property
    Public WriteOnly Property [Status_IsNull] As Boolean
        Set
            If (value)
                SetNull(6)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [Amt]() As Decimal
        Set
            Me(7) = Value
        End Set
    End Property
    Public WriteOnly Property [Amt_IsNull] As Boolean
        Set
            If (value)
                SetNull(7)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [CurrencyCode]() As String
        Set
            Me(8) = Value
        End Set
    End Property
    Public WriteOnly Property [CurrencyCode_IsNull] As Boolean
        Set
            If (value)
                SetNull(8)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [FeeAmt]() As Decimal
        Set
            Me(9) = Value
        End Set
    End Property
    Public WriteOnly Property [FeeAmt_IsNull] As Boolean
        Set
            If (value)
                SetNull(9)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [NetAmt]() As Decimal
        Set
            Me(10) = Value
        End Set
    End Property
    Public WriteOnly Property [NetAmt_IsNull] As Boolean
        Set
            If (value)
                SetNull(10)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [DetailId]() As String
        Set
            Me(11) = Value
        End Set
    End Property
    Public WriteOnly Property [DetailId_IsNull] As Boolean
        Set
            If (value)
                SetNull(11)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [DetailName]() As String
        Set
            Me(12) = Value
        End Set
    End Property
    Public WriteOnly Property [DetailName_IsNull] As Boolean
        Set
            If (value)
                SetNull(12)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [DetailQty]() As String
        Set
            Me(13) = Value
        End Set
    End Property
    Public WriteOnly Property [DetailQty_IsNull] As Boolean
        Set
            If (value)
                SetNull(13)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {"Timestamp", "Timezone", "Type", "Email", "Name", "TransactionId", "Status", "Amt", "CurrencyCode", "FeeAmt", "NetAmt", "DetailId", "DetailName", "DetailQty"}
        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[\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

    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()

        FinishOutputs()
        MarkOutputsFinished()

    End Sub

    Public Overridable Sub CreateNewOutputRows()
    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-2012 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.Collections
Imports System.Web
Imports System.Net
Imports System.IO
Imports System.Text

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


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<SortProperties(New String() { _
    "ServerType", "User", "Password", "Signature", _
    "GetDetails", _
    "IsStartDateVariable", "StartDate", "StartDateVariable", _
    "IsEndDateVariable", "EndDate", "EndDateVariable", _
    "TransactionClass", "Status", "Other"})> _
<ValidateProperties("Validate")> _
<FilterProperties("GetProperties")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Const LiveUrl As String = "https://api-3t.paypal.com/nvp"
    Private Const SandboxUrl As String = "https://api-3t.sandbox.paypal.com/nvp"
    Private Const ApiVersion As String = "85.0"
    Private Const MethodTrxSearch As String = "TransactionSearch"
    Private Const MethodGetDetails As String = "GetTransactionDetails"

    Private Const SubscriptionId As String = "SUBSCRIPTIONID"
    Private Const ReceiptId As String = "RECEIPTID"
    Private Const TimeStamp_1P As String = "L_TIMESTAMP{0}"
    Private Const TimeZone_1P As String = "L_TIMEZONE{0}"
    Private Const Type_1P As String = "L_TYPE{0}"
    Private Const Email_1P As String = "L_EMAIL{0}"
    Private Const Name_1P As String = "L_NAME{0}"
    Private Const TransactionId_1P As String = "L_TRANSACTIONID{0}"
    Private Const Status_1P As String = "L_STATUS{0}"
    Private Const Amt_1P As String = "L_AMT{0}"
    Private Const CurrencyCode_1P As String = "L_CURRENCYCODE{0}"
    Private Const FeeAmt_1P As String = "L_FEEAMT{0}"
    Private Const NetAmt_1P As String = "L_NETAMT{0}"
    Private Const ErrorCode_1P As String = "L_ERRORCODE{0}"
    Private Const LongMessage_1P As String = "L_LONGMESSAGE{0}"
    Private Const Qty_1P As String = "L_QTY{0}"


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Enum ServerTypes
        Production
        Sandbox
    End Enum    ' ServerTypes


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Enum TransactionClassTypes
        All
        Sent
        Received
        MassPay
        MoneyRequest
        FundsAdded
        FundsWithdrawn
        Referral
        Fee
        Subscription
        Dividend
        Billpay
        Refund
        CurrencyConversions
        BalanceTransfer
        Reversal
        Shipping
        BalanceAffecting
        ECheck
    End Enum    ' TransactionClassTypes


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Enum StatusTypes
        Pending
        Processing
        Success
        Denied
        Reversed
    End Enum    ' StatusTypes


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub CreateNewOutputRows()
        Try
            ' Setup method parameters.
            Dim trxParams As String = _
                "&STARTDATE=" + GetDateString_(m_startDate, Me.IsStartDateVariable) + _
                "&ENDDATE=" + GetDateString_(m_endDate, Me.IsEndDateVariable) + _
                "&TRANSACTIONCLASS=" + Me.TransactionClass.ToString() + _
                "&STATUS=" + Me.Status.ToString() + _
                "&" + Me.Other.Replace("\r\n", "&")
            Dim trxList As Hashtable = QueryPayPal_(MethodTrxSearch, trxParams)

            Dim index As Integer = 0
            While trxList.Contains(String.Format(TimeStamp_1P, index))
                With Me.OutputBuffer
                    Call .AddRow()

                    Dim trxId As String = CStr(trxList(String.Format(TransactionId_1P, index)))

                    .Timestamp = Convert.ToDateTime(trxList(String.Format(TimeStamp_1P, index)))
                    .Timezone = CStr(trxList(String.Format(TimeZone_1P, index)))
                    .Type = CStr(trxList(String.Format(Type_1P, index)))
                    .Email = CStr(trxList(String.Format(Email_1P, index)))
                    .Name = CStr(trxList(String.Format(Name_1P, index)))
                    .TransactionId = trxId
                    .Status = CStr(trxList(String.Format(Status_1P, index)))
                    .Amt = Convert.ToDecimal(trxList(String.Format(Amt_1P, index)))
                    .CurrencyCode = CStr(trxList(String.Format(CurrencyCode_1P, index)))
                    .FeeAmt = Convert.ToDecimal(trxList(String.Format(FeeAmt_1P, index)))
                    .NetAmt = Convert.ToDecimal(trxList(String.Format(NetAmt_1P, index)))

                    If Me.GetDetails Then
                        ' Retrieve transaction details.
                        Dim detailParams As String = "&TRANSACTIONID=" + trxId
                        Dim trxDetails As Hashtable = QueryPayPal_(MethodGetDetails, detailParams)

                        Dim subscrId As String = CStr(trxDetails(SubscriptionId))
                        Dim recId As String = CStr(trxDetails(ReceiptId))

                        ' Setup detail id.
                        If Not String.IsNullOrEmpty(subscrId) Then
                            .DetailId = subscrId
                        ElseIf Not String.IsNullOrEmpty(recId) Then
                            .DetailId = recId
                        Else
                            .DetailId = trxId
                        End If

                        ' Setup other details.
                        .DetailName = GetNVPList_(trxDetails, Name_1P)
                        .DetailQty = GetNVPList_(trxDetails, Qty_1P)
                    End If
                End With

                index += 1
            End While
        Catch ex As Exception
            Call FireError_(ex.Message)
        End Try
    End Sub ' CreateNewOutputRows


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

        Try
            If String.IsNullOrEmpty(Me.User) Then
                Throw New ApplicationException("Specify user name.")
            End If

            If String.IsNullOrEmpty(Me.Password) Then
                Throw New ApplicationException("Specify password.")
            End If

            If String.IsNullOrEmpty(Me.Signature) Then
                Throw New ApplicationException("Specify signature.")
            End If

            If String.IsNullOrEmpty(m_startDate) Then
                Throw New ApplicationException("Specify start date.")
            End If

            result = True
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    'Validate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns list of current properties based on current state.
    Public Function GetProperties() As String()
        Dim result As New ArrayList

        ' Setup static.
        Call result.Add("ServerType")
        Call result.Add("User")
        Call result.Add("Password")
        Call result.Add("Signature")
        Call result.Add("GetDetails")
        Call result.Add("TransactionClass")
        Call result.Add("Status")
        Call result.Add("Other")

        ' Setup dynamic.
        Call result.Add("IsStartDateVariable")
        Call result.Add(IIf(Me.IsStartDateVariable, "StartDateVariable", "StartDate"))
        Call result.Add("IsEndDateVariable")
        Call result.Add(IIf(Me.IsEndDateVariable, "EndDateVariable", "EndDate"))

        Return CType(result.ToArray(GetType(String)), String())
    End Function    ' GetProperties


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Connection")> _
    <Description("Select server type.")> _
    Public Property ServerType() As ServerTypes
        Get
            ServerType = m_serverType
        End Get
        Set(ByVal value As ServerTypes)
            m_serverType = value
        End Set
    End Property    ' ServerType


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Connection")> _
    <Description("Specify user name.")> _
    Public Property User() As String
        Get
            User = m_user
        End Get
        Set(ByVal value As String)
            m_user = value
        End Set
    End Property    ' User


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Connection")> _
    <Description("Specify password.")> _
    <PasswordPropertyText(True)> _
    Public Property Password() As String
        Get
            Password = m_pwd
        End Get
        Set(ByVal value As String)
            m_pwd = value
        End Set
    End Property    ' Password


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Connection")> _
    <Description("Specify signature.")> _
    Public Property Signature() As String
        Get
            Signature = m_signature
        End Get
        Set(ByVal value As String)
            m_signature = value
        End Set
    End Property    ' Signature


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Parameters")> _
    <Description("Specifies if transactions details are retrieved.")> _
    Public Property GetDetails() As Boolean
        Get
            GetDetails = m_getDetails
        End Get
        Set(ByVal value As Boolean)
            m_getDetails = value
        End Set
    End Property    ' GetDetails


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Parameters")> _
    <Description("Specifies if StartDate property references package variable.")> _
    <RefreshProperties(RefreshProperties.All)> _
    <NonEssential()> _
    Public Property IsStartDateVariable() As Boolean
        Get
            IsStartDateVariable = m_isStartDateVar
        End Get
        Set(ByVal value As Boolean)
            If m_isStartDateVar <> value Then
                m_isStartDateVar = value
                m_startDate = String.Empty
            End If
        End Set
    End Property    ' IsStartDateVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Parameters")> _
    <Description("Specify start date.")> _
    Public Property StartDate() As DateTime
        Get
            Dim result As DateTime

            If Not String.IsNullOrEmpty(m_startDate) Then
                result = Convert.ToDateTime(m_startDate)
            End If

            StartDate = result
        End Get
        Set(ByVal value As DateTime)
            m_startDate = value.ToString()
        End Set
    End Property    ' StartDate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Parameters")> _
    <Description("Specifies variable containing start date.")> _
    <Variable()> _
    Public Property StartDateVariable() As String
        Get
            StartDateVariable = m_startDate
        End Get
        Set(ByVal value As String)
            m_startDate = value
        End Set
    End Property    ' StartDateVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Parameters")> _
    <Description("Specifies if EndDate property references package variable.")> _
    <RefreshProperties(RefreshProperties.All)> _
    <NonEssential()> _
    Public Property IsEndDateVariable() As Boolean
        Get
            IsEndDateVariable = m_isEndDateVar
        End Get
        Set(ByVal value As Boolean)
            If m_isEndDateVar <> value Then
                m_isEndDateVar = value
                m_endDate = String.Empty
            End If
        End Set
    End Property    ' IsEndDateVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Parameters")> _
    <Description("Specify end date.")> _
    Public Property EndDate() As DateTime
        Get
            Dim result As DateTime

            If Not String.IsNullOrEmpty(m_endDate) Then
                result = Convert.ToDateTime(m_endDate)
            End If

            EndDate = result
        End Get
        Set(ByVal value As DateTime)
            m_endDate = value.ToString()
        End Set
    End Property    ' EndDate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Parameters")> _
    <Description("Specifies variable containing end date.")> _
    <Variable()> _
    Public Property EndDateVariable() As String
        Get
            EndDateVariable = m_endDate
        End Get
        Set(ByVal value As String)
            m_endDate = value
        End Set
    End Property    ' EndDateVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Parameters")> _
    <Description("Select transaction class.")> _
    Public Property TransactionClass() As TransactionClassTypes
        Get
            TransactionClass = m_trxClass
        End Get
        Set(ByVal value As TransactionClassTypes)
            m_trxClass = value
        End Set
    End Property    ' TransactionClass


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Parameters")> _
    <Description("Select transaction status.")> _
    <DefaultValue(StatusTypes.Success)> _
    Public Property Status() As StatusTypes
        Get
            Status = m_status
        End Get
        Set(ByVal value As StatusTypes)
            m_status = value
        End Set
    End Property    ' Status


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Parameters")> _
    <Description("Select other transaction search parameters. Separate multiple parameters with newline.")> _
    <TextDialog("Specify transaction search parameters")> _
    <DefaultValue("")> _
    Public Property Other() As String
        Get
            Other = m_other
        End Get
        Set(ByVal value As String)
            m_other = value
        End Set
    End Property    ' Other
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub FireError_(ByVal message As String)
        Dim cancel As Boolean
        Call Me.ComponentMetaData.FireError(0, "PayPal Trx Source", message, String.Empty, 0, cancel)
    End Sub ' FireError_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function QueryPayPal_(ByVal method As String, ByVal params As String) As Hashtable
        Dim result As Hashtable

        ' Setup server URL.
        Dim serverUrl As String = String.Empty
        Select Case Me.ServerType
            Case ServerTypes.Production
                serverUrl = LiveUrl
            Case ServerTypes.Sandbox
                serverUrl = SandboxUrl
            Case Else
                Throw New Exception("Unhandled server type.")
        End Select

        params = _
            "USER=" + Me.User + _
            "&PWD=" + Me.Password + _
            "&SIGNATURE=" + Me.Signature + _
            params
        params = _
            "METHOD=" + method + "&" + _
            "VERSION=" + ApiVersion + "&" + _
            GetEncodedParams_(params)

        ' Setup web request.
        Dim req As HttpWebRequest = CType(WebRequest.Create(serverUrl), HttpWebRequest)
        req.Method = "POST"
        req.ContentType = "application/x-www-form-urlencoded"
        Using reqStream As Stream = req.GetRequestStream()
            Dim reqBytes() As Byte = Encoding.UTF8.GetBytes(params)
            Call reqStream.Write(reqBytes, 0, reqBytes.Length)
        End Using

        ' Get result.
        Dim resResult As String = String.Empty
        Dim res As WebResponse = req.GetResponse()
        Using resStream As Stream = res.GetResponseStream()
            resResult = New StreamReader(resStream).ReadToEnd()
        End Using

        ' Process result.
        result = GetDictionaryFromNVP_(resResult)

        If CStr(result("ACK")) <> "Success" Then
            ' Method call failed. Report error.
            Throw New Exception(GetErrorFromNVP_(result))
        End If

        QueryPayPal_ = result
    End Function    ' QueryPayPal_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetDictionaryFromNVP_(ByVal listStr As String) As Hashtable
        Dim result As Hashtable = New Hashtable()
        Dim list() As String = HttpUtility.UrlDecode(listStr).Split( _
            New String() {"&"}, _
            StringSplitOptions.RemoveEmptyEntries)

        For Each item As String In list
            Dim sepIndex As Integer = item.IndexOf("=")
            Dim name As String = item.Substring(0, sepIndex)
            Dim value As String = item.Substring(sepIndex + 1)

            result(name) = value
        Next

        GetDictionaryFromNVP_ = result
    End Function    ' GetDictionaryFromNVP_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Escape special characters in parameters.
    Private Function GetEncodedParams_(ByVal params As String) As String
        Dim result As String = String.Empty
        Dim paramsList As Hashtable = GetDictionaryFromNVP_(params)

        For Each param As DictionaryEntry In paramsList
            If Not String.IsNullOrEmpty(result) Then
                result += "&"
            End If

            result += String.Format( _
                "{0}={1}", _
                param.Key, _
                HttpUtility.UrlEncode(CStr(param.Value)))
        Next

        GetEncodedParams_ = result
    End Function    ' GetEncodedParams_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetDateString_(ByVal dateStr As String, ByVal isVar As Boolean) As String
        Dim result As String = String.Empty

        If Not String.IsNullOrEmpty(dateStr) Then
            If isVar Then
                dateStr = GetVariable_(dateStr).ToString()
            End If

            result = Convert.ToDateTime(dateStr).ToString("yyyy-MM-dd") + "T00:00:00Z"
        End If

        GetDateString_ = result
    End Function    ' GetDateString_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetErrorFromNVP_(ByVal resList As Hashtable) As String
        Dim result As String = String.Empty

        Dim index As Integer = 0
        While resList.Contains(String.Format(ErrorCode_1P, index))
            If index > 0 Then
                result += "\r\n"
            End If

            result += String.Format( _
                "Error code: {0}, Message: {1}", _
                resList(String.Format(ErrorCode_1P, index)), _
                resList(String.Format(LongMessage_1P, index)))

            index += 1
        End While

        GetErrorFromNVP_ = result
    End Function    ' GetErrorFromNVP_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns list of names combined into a string.
    Private Function GetNVPList_(ByVal resList As Hashtable, ByVal name As String) As String
        Dim result As String = String.Empty

        Dim index As Integer = 0
        While resList.Contains(String.Format(name, index))
            If index > 0 Then
                result += "|"
            End If

            result += CStr(resList(String.Format(name, index)))

            index += 1
        End While

        GetNVPList_ = result
    End Function    ' GetNVPList_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetVariable_(ByVal varName As String) As Object
        Dim result As Object
        Dim vars As IDTSVariables100 = Nothing

        Call Me.VariableDispenser.LockOneForRead(varName, vars)
        Try
            result = vars(varName).Value
        Finally
            Call vars.Unlock()
        End Try

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


#Region "Attributes"
    Private m_serverType As ServerTypes
    Private m_user As String
    Private m_pwd As String
    Private m_signature As String
    Private m_getDetails As Boolean
    Private m_isStartDateVar As Boolean
    Private m_startDate As String
    Private m_isEndDateVar As Boolean
    Private m_endDate As String
    Private m_trxClass As TransactionClassTypes
    Private m_status As StatusTypes
    Private m_other As String = String.Empty
#End Region ' Attributes

End Class   ' ScriptMain
]]></arrayElement></arrayElements></property>
<property id="6" 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_a47149323d3c46b7b82edea048c6dbe8.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
UYCcCA8BUYCnCA8BUYC3CA8BUYDICA8BUYDXCA8BUYDhCA8BUYDuCA8BUYD6CA8BUYACCQ8BUYAL
CQ8BUYATCQ8BUYAkCQ8BUYAuCQ8BUYA1CQ8BUYBFCQ8BUYBPCQ8BUYBZCQ8BUYBmCQ8BUYB1CQ8B
AQAjDNUDAQAwDA8BAQA3DA8BAQA9DA8BAQBJDNkDAQBWDNkDAQBnDA8BAQBzDNkDAQCCDA8BAQCM
DNwDAQCXDOADAQCgDA8BBgZHDfMDVoBPDdUDVoBaDdUDBgZHDfMDVoBiDdwDVoBmDdwDVoBrDdwD
VoB0DdwDVoB8DdwDVoCJDdwDVoCUDdwDVoCjDdwDVoCsDdwDVoCwDdwDVoC9DdwDVoDGDdwDVoDO
DdwDVoDVDdwDVoDpDdwDVoD5DdwDVoACDtwDVoALDtwDVoAcDtwDBgZHDfMDVoAjDuADVoArDuAD
VoA2DuADVoA+DuADVoBFDuADEQBvDlUEEQCYDlkEEQAFD3cEEQAND3sECCEAAAAABhjoARMAAQAQ
IQAAAAAGGOgBEwABABghAAAAABEYIwIXAAEARCEAAAAAEwgqAhsAAQBcIQAAAAATCFACKAABAHQh
AAAAABMIeQI1AAEAjCEAAAAAEwiXAkIAAQCkIQAAAABGAt0CYwABAMAhAAAAAEYC5gJoAAIA1CEA
AAAAgwD3AmwAAgDsIQAAAABGAv8CcQACAAAiAAAAABEACAN4AAIAHCIAAAAAAQAmA4AAAwA4IgAA
AAAGGOgBEwAEAEAiAAAAAAMIOgOLAAQAdCIAAAAABhjoARMABACIIgAAAAAGGOgBrwAEAJgiAAAA
AEYKdwS5AAgArCIAAAAABgiXBL4ACAC8IgAAAAAGCKsExAAJANgiAAAAAAYIwATJAAoA5CIAAAAA
BgjNBMQACwAAIwAAAAAGCOEEyQAMAAwjAAAAAAYI6gTEAA0AKCMAAAAABgj6BMkADgA0IwAAAAAG
CAQFxAAPAFAjAAAAAAYIFQXJABAAXCMAAAAABggeBcQAEQB4IwAAAAAGCC4FyQASAIQjAAAAAAYI
QAXEABMAoCMAAAAABghZBckAFACsIwAAAAAGCGQFxAAVAMgjAAAAAAYIfgXOABYA2CMAAAAABgiG
BcQAFwD0IwAAAAAGCJUFyQAYAAAkAAAAAAYIpgXEABkAHCQAAAAABgi+Bc4AGgAsJAAAAAAGCMkF
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
YhQQB/EAaBQaB/EAcBQfB/EAcBQlB2kAJREqB2kAoBRCB9EBuhRIB8EBxhRIB8EBGg9IB7EBzhQL
B/EAXxJMB9EB2BTUAFEA/wK4A0EAVhVwB+EBbBV2B9kBKhJ/B+kBGg9IB9kBixUTAPEB6AETAPkB
6AHJAAEC6AHJAAkC6AGvBxEC6AHJABkC6AHJACEC6AETACkC6AHJADEC6AHJADkC6AETAEEC6AGw
CSkC6AHzBVEC6AHEACkACBcFC3kA6AELC4kA6AETAGECLhcfC2ECNBcfC2kC6AETAHEC6AHzBXkC
6AETAIEC6AHJAIkC6AHJAJEC6AHJAJkC6AHJAKEC6AHJAKkC6AHJALEC6AHJALkC6AHJAA4ALAAS
AQ4AMABNAQ4ANACYAQ4AOAChAQ4APADEAQ4AQADvAQ4ARAAMAg4ASAAfAg4ATAA8Ag4AUABXAg4A
VABqAg4AWAB/Ag4AXACSAg4AYAC3Ag4AZADOAg4AaADfAg4AbAACAw4AcAAZAw4AdAAwAw4AeABN
Aw4AfABuAwgAtAD2AwgAuAD7AwgAwAD2AwgAxAD7AwgAyAAABAgAzAAFBAgA0AAKBAgA1AAPBAgA
2AAUBAgA3AAZBAgA4AAeBAgA5AAjBAgA6AAoBAgA7AAtBAgA8AAyBAgA9AA3BAgA+AA8BAgA/ABB
BAgAAAFGBAgABAFLBAgACAFQBAgAEAH2AwgAFAH7AwgAGAEABAgAHAEFBAgAIAEKBCkAgwDlBC4A
KwG3Ci4A8wOoCy4A6wDiBS4A+wPlCy4AAwTiBS4A2wNeCy4A4wPiBS4A6wOICy4ACwSoCy4AwwMp
Cy4AywMyCy4A0wNRC0AAKwD7A0AAEwCOBEMAGwCdBEMAEwCOBEkAgwAXBWMAGwCdBGMAEwCOBGkA
gwD2BIAAKwD7A4MAcwD7A4MAewD7A4MAGwCdBIkAgwADBaAAKwD7A6MAEwCOBKMAwwBgBcAAKwD7
A8MA6wDiBcMAEwCOBOAAKwD7A+MAKwHiBQABEwCOBAABKwD7AwMBKwHiBSABKwD7AyABEwCOBEAB
KwD7A0ABEwCOBGABEwCOBGABKwD7A2MBMwOOB2MBOwOhB2MBQwO1B2MBKwP7A2MBKwHiBYABKwD7
A6ABKwD7A8ABEwCOBMABKwD7A+ABKwD7AwACKwD7AwACEwCOBIkESwPsCokEUwOgCakESwOICakE
UwOgCckESwO9CskEiwO3CskEUwOgCekEUwOgCekESwPUCgkFSwOBCgkFUwN+CCkFewOOBCkFcwP7
AykFSwO3CSkFUwN+CEkFSwNlCEkFUwN+CGkFSwOOCGkFUwN+CGkFWwP7A4kFcwP7A4kFUwN+CIkF
ewOOBIkFSwP5CakFSwO9CKkFUwN+CMkFWwP7A8kFUwN+CMkFSwPUCOkFUwN+COkFSwM5CgkGgwNY
CgkGUwN+CAkGSwNhCikGawMBCSkGYwPiBSkGSwMsCSkGUwN+CEkGEwBYCmkGEwBYCokGuwP7AwAH
KwHiBSAHKwHiBdEE1gTbBOAEMAU0BT8FRAVTBVMF2wXoBfgFMAUSBlEGZQaEBowGRAVEBUQFMAUw
BZcGRAUwBZcGRAWeBqMGRAUwBfAGMAdTB2MHagdqB4YHEwsaCyQLBAABAAYABQAHAAYACwAkAA8A
MgAQADQAAAAMAk8AAADFAlQAAAB0AlkAAADRAl4AAACNA5gAAACbBtgAAACuBt0AAAC4BuIAAADJ
BuYAAADSBuIAAADyAuYAAADiBuIAAADuBuYAAAD0BuIAAAABB+YAAAAGB+IAAAASB+YAAAAgB+IA
AAA1B+YAAAA8B+IAAABKB+oAAABOB+IAAABZB+YAAABmB+IAAAB6B+oAAACBB+IAAACPB+oAAACW
B+IAAACkB+YAAACtB+IAAAC9B+YAAADIB+IAAADaB+YAAADkB+IAAAD1B9gAAACoDOQDAAB0AuYA
AACzDOYAAAC8DOYAAADGDOIAAADRDOIAAADlDN0AAADvDOYAAAABDeIAAAATDd0AAAAbDeYAAAAr
DekDAAA1B+4DAAA8DeYAAABfDm0EAADQDnIEAAClBIMEAgAEAAMAAgAFAAUAAgAGAAcAAgAHAAkA
AgAPAAsAAgASAA0AAQATAA8AAQAUABEAAQAVABMAAQAWABUAAQAXABcAAQAYABkAAQAZABsAAQAa
AB0AAQAbAB8AAQAcACEAAQAdACMAAQAeACUAAQAfACcAAQAgACkAAQAhACsAAQAiAC0AAQAjAC8A
AQAkADEAAQAlADMAAQAmADUAAQAnADcAAQAoADkAAQApADsAAQAqAD0AAQArAD8AAQAsAEEAAQAt
AEMAAQAuAEUAAgAvAEcAAgA+AEkAAQA/AEkAAgBAAEsAAQBBAEsAAgBCAE0AAQBDAE0AAgBEAE8A
AQBFAE8AAgBGAFEAAQBHAFEAAgBIAFMAAQBJAFMAAgBKAFUAAQBLAFUAAQBNAFcAAgBMAFcAAgBO
AFkAAQBPAFkAAgBQAFsAAQBRAFsAAgBSAF0AAQBTAF0AAQBVAF8AAgBUAF8AAgBWAGEAAQBXAGEA
AQBZAGMAAgBYAGMAAgBjAGUAAgBkAGcAAQBlAGcAAgBoAGkAdQB1AIgAtQS8BMMEygTCBckFgQYE
gAAAAQAAAAAAAAAAAAAAAAC9AAAAAgAAAAAAAAAAAAAAAQAKAAAAAAAIAAAAAAAAAAAAAAAKABMA
AAAAAAEAAAAAAAAAAAAAAJ0AmQMAAAAACgAAAAAAAAAAAAAApgDXAwAAAAAKAAAAAAAAAAAAAACm
ACUEAAAAAAIAAAAAAAAAAAAAAAEAFQIAAAAACgAAAAAAAAAAAAAApgBzEQAAAAACAAAAAAAAAAAA
AAAKAC4UAAAAAAoAAAAAAAAAAAAAAKYA4RQAAAAAAAAAAAEAAABWFwAABQAEAAYABAAMAAsADQAL
AA4ACwAAABAADAAbAwAAEAAZABsDAAAAABsAGwMtAE4FLQDQBQAAAAAAPE1vZHVsZT4AbXNjb3Js
aWIATWljcm9zb2Z0LlZpc3VhbEJhc2ljAE15QXBwbGljYXRpb24AU2NyaXB0Q29tcG9uZW50X2E0
NzE0OTMyM2QzYzQ2YjdiODJlZGVhMDQ4YzZkYmU4LnZicHJvai5NeQBNeUNvbXB1dGVyAE15UHJv
amVjdABNeVdlYlNlcnZpY2VzAFRocmVhZFNhZmVPYmplY3RQcm92aWRlcmAxAE91dHB1dEJ1ZmZl
cgBTY3JpcHRDb21wb25lbnRfYTQ3MTQ5MzIzZDNjNDZiN2I4MmVkZWEwNDhjNmRiZTgudmJwcm9q
AFVzZXJDb21wb25lbnQAQ29ubmVjdGlvbnMAVmFyaWFibGVzAFNjcmlwdE1haW4AU2VydmVyVHlw
ZXMAVHJhbnNhY3Rpb25DbGFzc1R5cGVzAFN0YXR1c1R5cGVzAE15UmVzb3VyY2VzAFNjcmlwdENv
bXBvbmVudF9hNDcxNDkzMjNkM2M0NmI3YjgyZWRlYTA0OGM2ZGJlOC52YnByb2ouTXkuUmVzb3Vy
Y2VzAE15U2V0dGluZ3MATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkFwcGxpY2F0aW9uU2VydmljZXMA
QXBwbGljYXRpb25CYXNlAC5jdG9yAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5EZXZpY2VzAENvbXB1
dGVyAFN5c3RlbQBPYmplY3QALmNjdG9yAGdldF9Db21wdXRlcgBtX0NvbXB1dGVyT2JqZWN0UHJv
dmlkZXIAZ2V0X0FwcGxpY2F0aW9uAG1fQXBwT2JqZWN0UHJvdmlkZXIAVXNlcgBnZXRfVXNlcgBt
X1VzZXJPYmplY3RQcm92aWRlcgBnZXRfV2ViU2VydmljZXMAbV9NeVdlYlNlcnZpY2VzT2JqZWN0
UHJvdmlkZXIAQXBwbGljYXRpb24AV2ViU2VydmljZXMARXF1YWxzAG8AR2V0SGFzaENvZGUAVHlw
ZQBHZXRUeXBlAFRvU3RyaW5nAENyZWF0ZV9fSW5zdGFuY2VfXwBUAGluc3RhbmNlAERpc3Bvc2Vf
X0luc3RhbmNlX18AZ2V0X0dldEluc3RhbmNlAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5NeVNlcnZp
Y2VzLkludGVybmFsAENvbnRleHRWYWx1ZWAxAG1fQ29udGV4dABHZXRJbnN0YW5jZQBDb3p5Um9j
LlNTSVNQbHVzLjIwMDgAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJUwBTY3JpcHRCdWZmZXJQbHVzAE1p
Y3Jvc29mdC5TcWxTZXJ2ZXIuVHhTY3JpcHQATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxp
bmUAU2NyaXB0Q29tcG9uZW50AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuUGlwZWxpbmVIb3N0AFBpcGVs
aW5lQnVmZmVyAENvbXBvbmVudABPYmplY3RJRABJc0lucHV0AEJ1ZmZlcgBnZXRfU3RhdGljSW5w
dXRDb2x1bW5zAERhdGVUaW1lAHNldF9UaW1lc3RhbXAAVmFsdWUAc2V0X1RpbWVzdGFtcF9Jc051
bGwAc2V0X1RpbWV6b25lAHNldF9UaW1lem9uZV9Jc051bGwAc2V0X1R5cGUAc2V0X1R5cGVfSXNO
dWxsAHNldF9FbWFpbABzZXRfRW1haWxfSXNOdWxsAHNldF9OYW1lAHNldF9OYW1lX0lzTnVsbABz
ZXRfVHJhbnNhY3Rpb25JZABzZXRfVHJhbnNhY3Rpb25JZF9Jc051bGwAc2V0X1N0YXR1cwBzZXRf
U3RhdHVzX0lzTnVsbABEZWNpbWFsAHNldF9BbXQAc2V0X0FtdF9Jc051bGwAc2V0X0N1cnJlbmN5
Q29kZQBzZXRfQ3VycmVuY3lDb2RlX0lzTnVsbABzZXRfRmVlQW10AHNldF9GZWVBbXRfSXNOdWxs
AHNldF9OZXRBbXQAc2V0X05ldEFtdF9Jc051bGwAc2V0X0RldGFpbElkAHNldF9EZXRhaWxJZF9J
c051bGwAc2V0X0RldGFpbE5hbWUAc2V0X0RldGFpbE5hbWVfSXNOdWxsAHNldF9EZXRhaWxRdHkA
c2V0X0RldGFpbFF0eV9Jc051bGwAZ2V0X1N0YXRpY091dHB1dENvbHVtbnMAQWRkUm93AFNldEVu
ZE9mUm93c2V0AEVuZE9mUm93c2V0AFN0YXRpY0lucHV0Q29sdW1ucwBUaW1lc3RhbXAAVGltZXN0
YW1wX0lzTnVsbABUaW1lem9uZQBUaW1lem9uZV9Jc051bGwAVHlwZV9Jc051bGwARW1haWwARW1h
aWxfSXNOdWxsAE5hbWUATmFtZV9Jc051bGwAVHJhbnNhY3Rpb25JZABUcmFuc2FjdGlvbklkX0lz
TnVsbABTdGF0dXMAU3RhdHVzX0lzTnVsbABBbXQAQW10X0lzTnVsbABDdXJyZW5jeUNvZGUAQ3Vy
cmVuY3lDb2RlX0lzTnVsbABGZWVBbXQARmVlQW10X0lzTnVsbABOZXRBbXQATmV0QW10X0lzTnVs
bABEZXRhaWxJZABEZXRhaWxJZF9Jc051bGwARGV0YWlsTmFtZQBEZXRhaWxOYW1lX0lzTnVsbABE
ZXRhaWxRdHkARGV0YWlsUXR5X0lzTnVsbABTdGF0aWNPdXRwdXRDb2x1bW5zAFNjcmlwdENvbXBv
bmVudFBsdXMARmluaXNoT3V0cHV0cwBNYXJrT3V0cHV0c0ZpbmlzaGVkAFByaW1lT3V0cHV0AE91
dHB1dHMAT3V0cHV0SURzAEJ1ZmZlcnMAQ3JlYXRlTmV3T3V0cHV0Um93cwBQYXJlbnRDb21wb25l
bnQATGl2ZVVybABTYW5kYm94VXJsAEFwaVZlcnNpb24ATWV0aG9kVHJ4U2VhcmNoAE1ldGhvZEdl
dERldGFpbHMAU3Vic2NyaXB0aW9uSWQAUmVjZWlwdElkAFRpbWVTdGFtcF8xUABUaW1lWm9uZV8x
UABUeXBlXzFQAEVtYWlsXzFQAE5hbWVfMVAAVHJhbnNhY3Rpb25JZF8xUABTdGF0dXNfMVAAQW10
XzFQAEN1cnJlbmN5Q29kZV8xUABGZWVBbXRfMVAATmV0QW10XzFQAEVycm9yQ29kZV8xUABMb25n
TWVzc2FnZV8xUABRdHlfMVAAVmFsaWRhdGUAZXJyTWVzc2FnZQBHZXRQcm9wZXJ0aWVzAGdldF9T
ZXJ2ZXJUeXBlAHNldF9TZXJ2ZXJUeXBlAHZhbHVlAHNldF9Vc2VyAGdldF9QYXNzd29yZABzZXRf
UGFzc3dvcmQAZ2V0X1NpZ25hdHVyZQBzZXRfU2lnbmF0dXJlAGdldF9HZXREZXRhaWxzAHNldF9H
ZXREZXRhaWxzAGdldF9Jc1N0YXJ0RGF0ZVZhcmlhYmxlAHNldF9Jc1N0YXJ0RGF0ZVZhcmlhYmxl
AGdldF9TdGFydERhdGUAc2V0X1N0YXJ0RGF0ZQBnZXRfU3RhcnREYXRlVmFyaWFibGUAc2V0X1N0
YXJ0RGF0ZVZhcmlhYmxlAGdldF9Jc0VuZERhdGVWYXJpYWJsZQBzZXRfSXNFbmREYXRlVmFyaWFi
bGUAZ2V0X0VuZERhdGUAc2V0X0VuZERhdGUAZ2V0X0VuZERhdGVWYXJpYWJsZQBzZXRfRW5kRGF0
ZVZhcmlhYmxlAGdldF9UcmFuc2FjdGlvbkNsYXNzAHNldF9UcmFuc2FjdGlvbkNsYXNzAGdldF9T
dGF0dXMAZ2V0X090aGVyAHNldF9PdGhlcgBGaXJlRXJyb3JfAG1lc3NhZ2UAU3lzdGVtLkNvbGxl
Y3Rpb25zAEhhc2h0YWJsZQBRdWVyeVBheVBhbF8AbWV0aG9kAHBhcmFtcwBHZXREaWN0aW9uYXJ5
RnJvbU5WUF8AbGlzdFN0cgBHZXRFbmNvZGVkUGFyYW1zXwBHZXREYXRlU3RyaW5nXwBkYXRlU3Ry
AGlzVmFyAEdldEVycm9yRnJvbU5WUF8AcmVzTGlzdABHZXROVlBMaXN0XwBuYW1lAEdldFZhcmlh
YmxlXwB2YXJOYW1lAG1fc2VydmVyVHlwZQBtX3VzZXIAbV9wd2QAbV9zaWduYXR1cmUAbV9nZXRE
ZXRhaWxzAG1faXNTdGFydERhdGVWYXIAbV9zdGFydERhdGUAbV9pc0VuZERhdGVWYXIAbV9lbmRE
YXRlAG1fdHJ4Q2xhc3MAbV9zdGF0dXMAbV9vdGhlcgBTZXJ2ZXJUeXBlAFBhc3N3b3JkAFNpZ25h
dHVyZQBHZXREZXRhaWxzAElzU3RhcnREYXRlVmFyaWFibGUAU3RhcnREYXRlAFN0YXJ0RGF0ZVZh
cmlhYmxlAElzRW5kRGF0ZVZhcmlhYmxlAEVuZERhdGUARW5kRGF0ZVZhcmlhYmxlAFRyYW5zYWN0
aW9uQ2xhc3MAT3RoZXIARW51bQB2YWx1ZV9fAFByb2R1Y3Rpb24AU2FuZGJveABBbGwAU2VudABS
ZWNlaXZlZABNYXNzUGF5AE1vbmV5UmVxdWVzdABGdW5kc0FkZGVkAEZ1bmRzV2l0aGRyYXduAFJl
ZmVycmFsAEZlZQBTdWJzY3JpcHRpb24ARGl2aWRlbmQAQmlsbHBheQBSZWZ1bmQAQ3VycmVuY3lD
b252ZXJzaW9ucwBCYWxhbmNlVHJhbnNmZXIAUmV2ZXJzYWwAU2hpcHBpbmcAQmFsYW5jZUFmZmVj
dGluZwBFQ2hlY2sAUGVuZGluZwBQcm9jZXNzaW5nAFN1Y2Nlc3MARGVuaWVkAFJldmVyc2VkAFN5
c3RlbS5SZXNvdXJjZXMAUmVzb3VyY2VNYW5hZ2VyAF9yZXNNZ3IAU3lzdGVtLkdsb2JhbGl6YXRp
b24AQ3VsdHVyZUluZm8AX3Jlc0N1bHR1cmUAZ2V0X1Jlc291cmNlTWFuYWdlcgBnZXRfQ3VsdHVy
ZQBzZXRfQ3VsdHVyZQBDdWx0dXJlAFN5c3RlbS5Db25maWd1cmF0aW9uAEFwcGxpY2F0aW9uU2V0
dGluZ3NCYXNlAG1fVmFsdWUAbV9TeW5jT2JqZWN0AGdldF9WYWx1ZQBTeXN0ZW0uQ29tcG9uZW50
TW9kZWwARWRpdG9yQnJvd3NhYmxlQXR0cmlidXRlAEVkaXRvckJyb3dzYWJsZVN0YXRlAFN5c3Rl
bS5Db2RlRG9tLkNvbXBpbGVyAEdlbmVyYXRlZENvZGVBdHRyaWJ1dGUAU3lzdGVtLkRpYWdub3N0
aWNzAERlYnVnZ2VySGlkZGVuQXR0cmlidXRlAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5Db21waWxl
clNlcnZpY2VzAFN0YW5kYXJkTW9kdWxlQXR0cmlidXRlAEhpZGVNb2R1bGVOYW1lQXR0cmlidXRl
AFN5c3RlbS5Db21wb25lbnRNb2RlbC5EZXNpZ24ASGVscEtleXdvcmRBdHRyaWJ1dGUAU3lzdGVt
LlJ1bnRpbWUuQ29tcGlsZXJTZXJ2aWNlcwBSdW50aW1lSGVscGVycwBHZXRPYmplY3RWYWx1ZQBS
dW50aW1lVHlwZUhhbmRsZQBHZXRUeXBlRnJvbUhhbmRsZQBBY3RpdmF0b3IAQ3JlYXRlSW5zdGFu
Y2UATXlHcm91cENvbGxlY3Rpb25BdHRyaWJ1dGUAc2V0X1ZhbHVlAFN5c3RlbS5SdW50aW1lLklu
dGVyb3BTZXJ2aWNlcwBDb21WaXNpYmxlQXR0cmlidXRlAFN0cmluZwBzZXRfSXRlbQBTZXROdWxs
AEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24AU2NyaXB0QnVmZmVyAENMU0NvbXBsaWFudEF0dHJp
YnV0ZQBNaWNyb3NvZnQuU3FsU2VydmVyLkRUU1BpcGVsaW5lV3JhcABNaWNyb3NvZnQuU3FsU2Vy
dmVyLkR0cy5QaXBlbGluZS5XcmFwcGVyAElEVFNDb21wb25lbnRNZXRhRGF0YTEwMABnZXRfQ29t
cG9uZW50TWV0YURhdGEASURUU091dHB1dENvbGxlY3Rpb24xMDAAZ2V0X091dHB1dENvbGxlY3Rp
b24ASURUU091dHB1dDEwMABnZXRfSXRlbQBnZXRfSUQARW1wdHkARXhjZXB0aW9uAFJlcGxhY2UA
Q29uY2F0AEludDMyAEZvcm1hdABDb252ZXJzaW9ucwBDb252ZXJ0AFRvRGF0ZVRpbWUAVG9EZWNp
bWFsAElzTnVsbE9yRW1wdHkAQ29udGFpbnMAUHJvamVjdERhdGEAU2V0UHJvamVjdEVycm9yAGdl
dF9NZXNzYWdlAENsZWFyUHJvamVjdEVycm9yAEFwcGxpY2F0aW9uRXhjZXB0aW9uAEFycmF5TGlz
dABBZGQASW50ZXJhY3Rpb24ASUlmAEFycmF5AFRvQXJyYXkARmlyZUVycm9yAFN5c3RlbS5OZXQA
SHR0cFdlYlJlcXVlc3QAV2ViUmVzcG9uc2UAU3lzdGVtLklPAFN0cmVhbQBXZWJSZXF1ZXN0AENy
ZWF0ZQBzZXRfTWV0aG9kAHNldF9Db250ZW50VHlwZQBHZXRSZXF1ZXN0U3RyZWFtAFN5c3RlbS5U
ZXh0AEVuY29kaW5nAGdldF9VVEY4AEdldEJ5dGVzAFdyaXRlAElEaXNwb3NhYmxlAERpc3Bvc2UA
R2V0UmVzcG9uc2UAR2V0UmVzcG9uc2VTdHJlYW0AU3RyZWFtUmVhZGVyAFJlYWRUb0VuZABPcGVy
YXRvcnMAQ29tcGFyZVN0cmluZwBTeXN0ZW0uV2ViAEh0dHBVdGlsaXR5AFVybERlY29kZQBTdHJp
bmdTcGxpdE9wdGlvbnMAU3BsaXQASW5kZXhPZgBTdWJzdHJpbmcARGljdGlvbmFyeUVudHJ5AElE
aWN0aW9uYXJ5RW51bWVyYXRvcgBHZXRFbnVtZXJhdG9yAElFbnVtZXJhdG9yAGdldF9DdXJyZW50
AGdldF9LZXkAVXJsRW5jb2RlAE1vdmVOZXh0AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRFRTUnVudGlt
ZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUnVudGltZS5XcmFwcGVyAElEVFNWYXJpYWJs
ZXMxMDAASURUU1ZhcmlhYmxlRGlzcGVuc2VyMTAwAGdldF9WYXJpYWJsZURpc3BlbnNlcgBMb2Nr
T25lRm9yUmVhZABJRFRTVmFyaWFibGUxMDAAVW5sb2NrAFNTSVNTY3JpcHRDb21wb25lbnRFbnRy
eVBvaW50QXR0cmlidXRlAENvenlSb2MuU3FsU2VydmVyLlNTSVMuQXR0cmlidXRlcwBGaWx0ZXJQ
cm9wZXJ0aWVzQXR0cmlidXRlAFZhbGlkYXRlUHJvcGVydGllc0F0dHJpYnV0ZQBTb3J0UHJvcGVy
dGllc0F0dHJpYnV0ZQBEZXNjcmlwdGlvbkF0dHJpYnV0ZQBDYXRlZ29yeUF0dHJpYnV0ZQBWYXJp
YWJsZUF0dHJpYnV0ZQBEZWZhdWx0VmFsdWVBdHRyaWJ1dGUAVGV4dERpYWxvZ0F0dHJpYnV0ZQBO
b25Fc3NlbnRpYWxBdHRyaWJ1dGUAUmVmcmVzaFByb3BlcnRpZXNBdHRyaWJ1dGUAUmVmcmVzaFBy
b3BlcnRpZXMAUGFzc3dvcmRQcm9wZXJ0eVRleHRBdHRyaWJ1dGUAU3lzdGVtLlJlZmxlY3Rpb24A
QXNzZW1ibHkAZ2V0X0Fzc2VtYmx5AFN5c3RlbS5UaHJlYWRpbmcATW9uaXRvcgBFbnRlcgBFeGl0
AERlYnVnZ2VyTm9uVXNlckNvZGVBdHRyaWJ1dGUAU2NyaXB0Q29tcG9uZW50X2E0NzE0OTMyM2Qz
YzQ2YjdiODJlZGVhMDQ4YzZkYmU4LnZicHJvai5SZXNvdXJjZXMucmVzb3VyY2VzAENvbXBpbGF0
aW9uUmVsYXhhdGlvbnNBdHRyaWJ1dGUAUnVudGltZUNvbXBhdGliaWxpdHlBdHRyaWJ1dGUAQXNz
ZW1ibHlGaWxlVmVyc2lvbkF0dHJpYnV0ZQBHdWlkQXR0cmlidXRlAEFzc2VtYmx5VHJhZGVtYXJr
QXR0cmlidXRlAEFzc2VtYmx5Q29weXJpZ2h0QXR0cmlidXRlAEFzc2VtYmx5UHJvZHVjdEF0dHJp
YnV0ZQBBc3NlbWJseUNvbXBhbnlBdHRyaWJ1dGUAQXNzZW1ibHlEZXNjcmlwdGlvbkF0dHJpYnV0
ZQBBc3NlbWJseVRpdGxlQXR0cmlidXRlAFNjcmlwdENvbXBvbmVudF9hNDcxNDkzMjNkM2M0NmI3
YjgyZWRlYTA0OGM2ZGJlOC52YnByb2ouZGxsAAAAgJtJAHMATgB1AGwAbAAgAHAAcgBvAHAAZQBy
AHQAeQAgAGMAYQBuAG4AbwB0ACAAYgBlACAAcwBlAHQAIAB0AG8AIABGAGEAbABzAGUALgAgAEEA
cwBzAGkAZwBuACAAYQAgAHYAYQBsAHUAZQAgAHQAbwAgAHQAaABlACAAYwBvAGwAdQBtAG4AIABp
AG4AcwB0AGUAYQBkAC4AABNUAGkAbQBlAHMAdABhAG0AcAAAEVQAaQBtAGUAegBvAG4AZQAACVQA
eQBwAGUAAAtFAG0AYQBpAGwAAAlOAGEAbQBlAAAbVAByAGEAbgBzAGEAYwB0AGkAbwBuAEkAZAAA
DVMAdABhAHQAdQBzAAAHQQBtAHQAABlDAHUAcgByAGUAbgBjAHkAQwBvAGQAZQAADUYAZQBlAEEA
bQB0AAANTgBlAHQAQQBtAHQAABFEAGUAdABhAGkAbABJAGQAABVEAGUAdABhAGkAbABOAGEAbQBl
AAATRABlAHQAYQBpAGwAUQB0AHkAAA1PAHUAdABwAHUAdAAAFyYAUwBUAEEAUgBUAEQAQQBUAEUA
PQAAEyYARQBOAEQARABBAFQARQA9AAAlJgBUAFIAQQBOAFMAQQBDAFQASQBPAE4AQwBMAEEAUwBT
AD0AABEmAFMAVABBAFQAVQBTAD0AAAMmAAAJXAByAFwAbgAAI1QAcgBhAG4AcwBhAGMAdABpAG8A
bgBTAGUAYQByAGMAaAAAJUwAXwBUAFIAQQBOAFMAQQBDAFQASQBPAE4ASQBEAHsAMAB9AAAdTABf
AFQASQBNAEUAUwBUAEEATQBQAHsAMAB9AAAbTABfAFQASQBNAEUAWgBPAE4ARQB7ADAAfQAAE0wA
XwBUAFkAUABFAHsAMAB9AAAVTABfAEUATQBBAEkATAB7ADAAfQAAE0wAXwBOAEEATQBFAHsAMAB9
AAAXTABfAFMAVABBAFQAVQBTAHsAMAB9AAARTABfAEEATQBUAHsAMAB9AAAjTABfAEMAVQBSAFIA
RQBOAEMAWQBDAE8ARABFAHsAMAB9AAAXTABfAEYARQBFAEEATQBUAHsAMAB9AAAXTABfAE4ARQBU
AEEATQBUAHsAMAB9AAAfJgBUAFIAQQBOAFMAQQBDAFQASQBPAE4ASQBEAD0AACtHAGUAdABUAHIA
YQBuAHMAYQBjAHQAaQBvAG4ARABlAHQAYQBpAGwAcwAAHVMAVQBCAFMAQwBSAEkAUABUAEkATwBO
AEkARAAAE1IARQBDAEUASQBQAFQASQBEAAARTABfAFEAVABZAHsAMAB9AAAlUwBwAGUAYwBpAGYA
eQAgAHUAcwBlAHIAIABuAGEAbQBlAC4AACNTAHAAZQBjAGkAZgB5ACAAcABhAHMAcwB3AG8AcgBk
AC4AACVTAHAAZQBjAGkAZgB5ACAAcwBpAGcAbgBhAHQAdQByAGUALgAAJ1MAcABlAGMAaQBmAHkA
IABzAHQAYQByAHQAIABkAGEAdABlAC4AABVTAGUAcgB2AGUAcgBUAHkAcABlAAAJVQBzAGUAcgAA
EVAAYQBzAHMAdwBvAHIAZAAAE1MAaQBnAG4AYQB0AHUAcgBlAAAVRwBlAHQARABlAHQAYQBpAGwA
cwAAIVQAcgBhAG4AcwBhAGMAdABpAG8AbgBDAGwAYQBzAHMAAAtPAHQAaABlAHIAACdJAHMAUwB0
AGEAcgB0AEQAYQB0AGUAVgBhAHIAaQBhAGIAbABlAAAjUwB0AGEAcgB0AEQAYQB0AGUAVgBhAHIA
aQBhAGIAbABlAAATUwB0AGEAcgB0AEQAYQB0AGUAACNJAHMARQBuAGQARABhAHQAZQBWAGEAcgBp
AGEAYgBsAGUAAB9FAG4AZABEAGEAdABlAFYAYQByAGkAYQBiAGwAZQAAD0UAbgBkAEQAYQB0AGUA
ACNQAGEAeQBQAGEAbAAgAFQAcgB4ACAAUwBvAHUAcgBjAGUAADtoAHQAdABwAHMAOgAvAC8AYQBw
AGkALQAzAHQALgBwAGEAeQBwAGEAbAAuAGMAbwBtAC8AbgB2AHAAAUtoAHQAdABwAHMAOgAvAC8A
YQBwAGkALQAzAHQALgBzAGEAbgBkAGIAbwB4AC4AcABhAHkAcABhAGwALgBjAG8AbQAvAG4AdgBw
AAEtVQBuAGgAYQBuAGQAbABlAGQAIABzAGUAcgB2AGUAcgAgAHQAeQBwAGUALgAAC1UAUwBFAFIA
PQAACyYAUABXAEQAPQAAFyYAUwBJAEcATgBBAFQAVQBSAEUAPQAAD00ARQBUAEgATwBEAD0AAB0m
AFYARQBSAFMASQBPAE4APQA4ADUALgAwACYAAAlQAE8AUwBUAABDYQBwAHAAbABpAGMAYQB0AGkA
bwBuAC8AeAAtAHcAdwB3AC0AZgBvAHIAbQAtAHUAcgBsAGUAbgBjAG8AZABlAGQAAQdBAEMASwAA
D1MAdQBjAGMAZQBzAHMAAAM9AAAPewAwAH0APQB7ADEAfQAAFXkAeQB5AHkALQBNAE0ALQBkAGQA
ARVUADAAMAA6ADAAMAA6ADAAMABaAAA7RQByAHIAbwByACAAYwBvAGQAZQA6ACAAewAwAH0ALAAg
AE0AZQBzAHMAYQBnAGUAOgAgAHsAMQB9AAAdTABfAEUAUgBSAE8AUgBDAE8ARABFAHsAMAB9AAAh
TABfAEwATwBOAEcATQBFAFMAUwBBAEcARQB7ADAAfQAAA3wAADFNAHkALgBSAGUAcwBvAHUAcgBj
AGUAcwAuAE0AeQBSAGUAcwBvAHUAcgBjAGUAcwAAAABIAL4LQhNHRbPdLIracgc8AAi3elxWGTTg
iQiwP19/EdUKOgMgAAEDAAABBAAAEgwHBhUSGAESDAQAABIIBwYVEhgBEggEAAASEQcGFRIYARIR
BAAAEhQHBhUSGAESFAQIABIMBAgAEggECAASEQQIABIUBCABAhwDIAAIBCAAEhUDIAAOAh4ABxAB
AR4AHgAHMAEBARAeAAITAAQgABMABwYVEhkBEwAEKAATAAgWz0kLuAw06giJhF3NgIDMkQkgBAES
IQgCEiUEIAAdDgUgAQERKQQgAQECBCABAQ4FIAEBES0DIAACBCgAHQ4EKAARKQMoAAIDKAAOBCgA
ES0DBhIkAwYSKAMGEhwJIAMBCB0IHRIlAwYSIQUgAQESIQIGDjpoAHQAdABwAHMAOgAvAC8AYQBw
AGkALQAzAHQALgBwAGEAeQBwAGEAbAAuAGMAbwBtAC8AbgB2AHAASmgAdAB0AHAAcwA6AC8ALwBh
AHAAaQAtADMAdAAuAHMAYQBuAGQAYgBvAHgALgBwAGEAeQBwAGEAbAAuAGMAbwBtAC8AbgB2AHAA
CDgANQAuADAAIlQAcgBhAG4AcwBhAGMAdABpAG8AbgBTAGUAYQByAGMAaAAqRwBlAHQAVAByAGEA
bgBzAGEAYwB0AGkAbwBuAEQAZQB0AGEAaQBsAHMAHFMAVQBCAFMAQwBSAEkAUABUAEkATwBOAEkA
RAASUgBFAEMARQBJAFAAVABJAEQAHEwAXwBUAEkATQBFAFMAVABBAE0AUAB7ADAAfQAaTABfAFQA
SQBNAEUAWgBPAE4ARQB7ADAAfQASTABfAFQAWQBQAEUAewAwAH0AFEwAXwBFAE0AQQBJAEwAewAw
AH0AEkwAXwBOAEEATQBFAHsAMAB9ACRMAF8AVABSAEEATgBTAEEAQwBUAEkATwBOAEkARAB7ADAA
fQAWTABfAFMAVABBAFQAVQBTAHsAMAB9ABBMAF8AQQBNAFQAewAwAH0AIkwAXwBDAFUAUgBSAEUA
TgBDAFkAQwBPAEQARQB7ADAAfQAWTABfAEYARQBFAEEATQBUAHsAMAB9ABZMAF8ATgBFAFQAQQBN
AFQAewAwAH0AHEwAXwBFAFIAUgBPAFIAQwBPAEQARQB7ADAAfQAgTABfAEwATwBOAEcATQBFAFMA
UwBBAEcARQB7ADAAfQAQTABfAFEAVABZAHsAMAB9AAUgAQIQDgQgABEwBSABAREwBCAAESkEIAAR
NAUgAQERNAQgABE4BSABARE4BiACEjUODgUgARI1DgQgAQ4OBSACDg4CBSABDhI1BiACDhI1DgQg
ARwOAwYRMAIGAgMGETQDBhE4BCgAETAEKAARNAQoABE4AgYIBAAAAAAEAQAAAAQCAAAABAMAAAAE
BAAAAAQFAAAABAYAAAAEBwAAAAQIAAAABAkAAAAECgAAAAQLAAAABAwAAAAEDQAAAAQOAAAABA8A
AAAEEAAAAAQRAAAABBIAAAADBhI9AwYSQQQAABI9BAAAEkEFAAEBEkEECAASPQQIABJBAwYSQAIG
HAQAABJABAgAEkAFIAEBEU0IAQABAAAAAAAFIAIBDg4XAQAKTXlUZW1wbGF0ZQc4LjAuMC4wAAAG
FRIYARIMBhUSGAESCAYVEhgBEhEGFRIYARIUBAcBEgwEBwESCAQHARIRBAcBEhQQAQALTXkuQ29t
cHV0ZXIAAAwBAAdNeS5Vc2VyAAATAQAOTXkuV2ViU2VydmljZXMAABMBAA5NeS5BcHBsaWNhdGlv
bgAABAABHBwDBwECAwcBCAYAARIVEWkEBwESFQMHAQ4FEAEAHgAECgEeAAQHAR4AByAEAQ4ODg5h
AQA0U3lzdGVtLldlYi5TZXJ2aWNlcy5Qcm90b2NvbHMuU29hcEh0dHBDbGllbnRQcm90b2NvbBJD
cmVhdGVfX0luc3RhbmNlX18TRGlzcG9zZV9fSW5zdGFuY2VfXwAAAAYVEhgBEwAGFRIZARMABAoB
EwAFIAEBEwAGBwITABMABQEAAAAABAcBHQ4FIAIBCBwEIAEBCAYHAh0OHQ4FIAASgIkFIAASgI0G
IAESgJEcBAcCCAgFIAIODg4FAAEOHQ4FAAIODhwEIAEcHAQAAQ4cBQABESkcBQABES0cBQACDg4O
BAABAg4GAAEBEoCVEwcLCBI1Dg4ODg4SNRKAlR0OEhwHBwMCAhKAlQQgAQgcBgADHAIcHAcgARKA
tRIVAh0OBwcCHQ4SgK0EBwERMAUAAREpDgYHAhEpESkEBwERNAQHARE4CiAGAQgODg4IEAIHAAQO
Dg4ODgYAARKAxQ4FIAASgMEFAAASgMkFIAEdBQ4HIAMBHQUICAUgABKAvQYgAQESgMEGAAMIDg4C
GgcLEjUSgLkSgL0OEjUOEoDBHQUSgMERMB0OBAABDg4JIAIdDh0OEYDdBCABCA4FIAIOCAgEIAEO
CAUgAgEcHBEHChI1HQ4SNQ4OCA4dDggdDgUgABKA5QMgABwGAAMODhwcDwcGDhI1DhGA4RKA5RGA
4QYHAw4OESkFBwMOCA4FIAASgPEIIAIBDhASgO0GIAESgPUcBwcDHBwSgO0SAQANR2V0UHJvcGVy
dGllcwAADQEACFZhbGlkYXRlAAAFIAEBHQ6ArgEADgAAAApTZXJ2ZXJUeXBlBFVzZXIIUGFzc3dv
cmQJU2lnbmF0dXJlCkdldERldGFpbHMTSXNTdGFydERhdGVWYXJpYWJsZQlTdGFydERhdGURU3Rh
cnREYXRlVmFyaWFibGURSXNFbmREYXRlVmFyaWFibGUHRW5kRGF0ZQ9FbmREYXRlVmFyaWFibGUQ
VHJhbnNhY3Rpb25DbGFzcwZTdGF0dXMFT3RoZXIAABgBABNTcGVjaWZ5IHN0YXJ0IGRhdGUuAAAP
AQAKUGFyYW1ldGVycwAALgEAKVNwZWNpZmllcyB2YXJpYWJsZSBjb250YWluaW5nIHN0YXJ0IGRh
dGUuAAAWAQARU3BlY2lmeSBlbmQgZGF0ZS4AACwBACdTcGVjaWZpZXMgdmFyaWFibGUgY29udGFp
bmluZyBlbmQgZGF0ZS4AACoBACVTcGVjaWZ5IHRyYW5zYWN0aW9uIHNlYXJjaCBwYXJhbWV0ZXJz
AABbAQBWU2VsZWN0IG90aGVyIHRyYW5zYWN0aW9uIHNlYXJjaCBwYXJhbWV0ZXJzLiBTZXBhcmF0
ZSBtdWx0aXBsZSBwYXJhbWV0ZXJzIHdpdGggbmV3bGluZS4AABcBABJTcGVjaWZ5IHVzZXIgbmFt
ZS4AAA8BAApDb25uZWN0aW9uAAAGIAEBEYElQQEAPFNwZWNpZmllcyBpZiBTdGFydERhdGUgcHJv
cGVydHkgcmVmZXJlbmNlcyBwYWNrYWdlIHZhcmlhYmxlLgAAPwEAOlNwZWNpZmllcyBpZiBFbmRE
YXRlIHByb3BlcnR5IHJlZmVyZW5jZXMgcGFja2FnZSB2YXJpYWJsZS4AAB4BABlTZWxlY3QgdHJh
bnNhY3Rpb24gY2xhc3MuAAAIAQACAAAAAAAfAQAaU2VsZWN0IHRyYW5zYWN0aW9uIHN0YXR1cy4A
ADUBADBTcGVjaWZpZXMgaWYgdHJhbnNhY3Rpb25zIGRldGFpbHMgYXJlIHJldHJpZXZlZC4AAAUB
AAEAABYBABFTcGVjaWZ5IHBhc3N3b3JkLgAAFwEAElNwZWNpZnkgc2lnbmF0dXJlLgAAGAEAE1Nl
bGVjdCBzZXJ2ZXIgdHlwZS4AAAUgABKBLQcgAgEOEoEtBgcCEj0SPQQHARJBBAABARwEBwESQAgB
AAgAAAAAAB4BAAEAVAIWV3JhcE5vbkV4Y2VwdGlvblRocm93cwEMAQAHMS4wLjAuMAAAKQEAJDMx
OGVjNGIxLWU5YjMtNDJiMC1hNWFmLTJiZWNhNGVhMzVkMQAAHwEAGkNvcHlyaWdodCBAIE1pY3Jv
c29mdCAyMDEyAAA8AQA3U2NyaXB0Q29tcG9uZW50X2E0NzE0OTMyM2QzYzQ2YjdiODJlZGVhMDQ4
YzZkYmU4LnZicHJvagAADgEACU1pY3Jvc29mdAAAyHcAAAAAAAAAAAAA3ncAAAAgAAAAAAAAAAAA
AAAAAAAAAAAAAAAAANB3AAAAAAAAAABfQ29yRGxsTWFpbgBtc2NvcmVlLmRsbAAAAAAA/yUAIEAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAMAAAAoAACADgAAAEgAAIAQAAAAYAAAgAAAAAAA
AAAAAAAAAAAAAgACAAAAeAAAgAMAAACQAACAAAAAAAAAAAAAAAAAAAABAAB/AACoAACAAAAAAAAA
AAAAAAAAAAABAAEAAADAAACAAAAAAAAAAAAAAAAAAAABAAAAAADYAAAAAAAAAAAAAAAAAAAAAAAB
AAAAAADoAAAAAAAAAAAAAAAAAAAAAAABAAAAAAD4AAAAAAAAAAAAAAAAAAAAAAABAAAAAAAIAQAA
gIUAAOgCAAAAAAAAAAAAAGiIAAAoAQAAAAAAAAAAAACQiQAAIgAAAAAAAAAAAAAAGIEAAGgEAAAA
AAAAAAAAAGgENAAAAFYAUwBfAFYARQBSAFMASQBPAE4AXwBJAE4ARgBPAAAAAAC9BO/+AAABAAAA
AQAAAAAAAAABAAAAAAA/AAAAAAAAAAQAAAACAAAAAAAAAAAAAAAAAAAARAAAAAEAVgBhAHIARgBp
AGwAZQBJAG4AZgBvAAAAAAAkAAQAAABUAHIAYQBuAHMAbABhAHQAaQBvAG4AAAAAAAAAsATIAwAA
AQBTAHQAcgBpAG4AZwBGAGkAbABlAEkAbgBmAG8AAACkAwAAAQAwADAAMAAwADAANABiADAAAAA0
AAoAAQBDAG8AbQBwAGEAbgB5AE4AYQBtAGUAAAAAAE0AaQBjAHIAbwBzAG8AZgB0AAAAmAA4AAEA
RgBpAGwAZQBEAGUAcwBjAHIAaQBwAHQAaQBvAG4AAAAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBu
AGUAbgB0AF8AYQA0ADcAMQA0ADkAMwAyADMAZAAzAGMANAA2AGIANwBiADgAMgBlAGQAZQBhADAA
NAA4AGMANgBkAGIAZQA4AC4AdgBiAHAAcgBvAGoAAAAwAAgAAQBGAGkAbABlAFYAZQByAHMAaQBv
AG4AAAAAADEALgAwAC4AMAAuADAAAACYADwAAQBJAG4AdABlAHIAbgBhAGwATgBhAG0AZQAAAFMA
YwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AYQA0ADcAMQA0ADkAMwAyADMAZAAzAGMANAA2
AGIANwBiADgAMgBlAGQAZQBhADAANAA4AGMANgBkAGIAZQA4AC4AdgBiAHAAcgBvAGoALgBkAGwA
bAAAAFwAGwABAEwAZQBnAGEAbABDAG8AcAB5AHIAaQBnAGgAdAAAAEMAbwBwAHkAcgBpAGcAaAB0
ACAAQAAgAE0AaQBjAHIAbwBzAG8AZgB0ACAAMgAwADEAMgAAAAAAoAA8AAEATwByAGkAZwBpAG4A
YQBsAEYAaQBsAGUAbgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AYQA0
ADcAMQA0ADkAMwAyADMAZAAzAGMANAA2AGIANwBiADgAMgBlAGQAZQBhADAANAA4AGMANgBkAGIA
ZQA4AC4AdgBiAHAAcgBvAGoALgBkAGwAbAAAAJAAOAABAFAAcgBvAGQAdQBjAHQATgBhAG0AZQAA
AAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwBhADQANwAxADQAOQAzADIAMwBkADMA
YwA0ADYAYgA3AGIAOAAyAGUAZABlAGEAMAA0ADgAYwA2AGQAYgBlADgALgB2AGIAcAByAG8AagAA
ADQACAABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8AbgAAADEALgAwAC4AMAAuADAAAAA4AAgA
AQBBAHMAcwBlAG0AYgBsAHkAIABWAGUAcgBzAGkAbwBuAAAAMQAuADAALgAwAC4AMAAAACgAAAAg
AAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAA
gACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3d3d3d3d3
d3d3d3d3d3AERERERERERERERERERERwBP/////////////////0cAT/////////////////9HAE
//////////////////RwBP/////////////////0cAT/////////////////9HAE////////////
//////RwBP/////////////////0cAT/////////////////9HAE//////////////////RwBP//
///////////////0cAT/////////////////9HAE//////////////////RwBP//////////////
///0cAT/////////////////9HAE//////////////////RwBP/////////////////0cAT/////
////////////9HAE//////////////////RwBIiIiIiIiIiIiIiIiIiEcARERERERERERERERERE
RHAETExMTExMTExMTs7OSXRwBMzMzMzMzMzMzMzMzMzEAABEREREREREREREREREQAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////
wAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGA
AAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAADwAAAB////////////////ygA
AAAQAAAAIAAAAAEABAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAA
AIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAHd3d3
d3d3d0RERERERERHT///////+EdP///////4R0////////hHT///////+EdP///////4R0//////
//hHT///////+EdP///////4R0iIiIiIiIhHTMzMzMzMzEfEREREREREwAAAAAAAAAAAAAAAAAAA
AAD//wAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEA
AP//AAD//wAAAAABAAIAICAQAAEABADoAgAAAgAQEBAAAQAEACgBAAADAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABwAAAMAAAA8DcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA]]></arrayElement></arrayElements></property>
<property id="13" 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="1004" 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_a47149323d3c46b7b82edea048c6dbe8</property>
<property id="1005" 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>
<outputs>
<output id="262" name="Output" description="" exclusionGroup="0" synchronousInputId="0" deleteOutputOnPathDetached="false" hasSideEffects="true" dangling="false" isErrorOut="false" isSorted="false" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed"><outputColumns>
<outputColumn id="263" name="Timestamp" description="" lineageId="263" precision="0" scale="0" length="0" dataType="dbTimeStamp" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="264" name="Timezone" description="" lineageId="264" precision="0" scale="0" length="3" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="265" name="Type" description="" lineageId="265" precision="0" scale="0" length="250" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="266" name="Email" description="" lineageId="266" precision="0" scale="0" length="250" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="267" name="Name" description="" lineageId="267" precision="0" scale="0" length="250" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="268" name="TransactionId" description="" lineageId="268" precision="0" scale="0" length="20" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="269" name="Status" description="" lineageId="269" precision="0" scale="0" length="50" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="270" name="Amt" description="" lineageId="270" precision="0" scale="0" length="0" dataType="cy" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="271" name="CurrencyCode" description="" lineageId="271" precision="0" scale="0" length="3" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="272" name="FeeAmt" description="" lineageId="272" precision="0" scale="0" length="0" dataType="cy" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="273" name="NetAmt" description="" lineageId="273" precision="0" scale="0" length="0" dataType="cy" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="274" name="DetailId" description="" lineageId="274" precision="0" scale="0" length="20" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="275" name="DetailName" description="" lineageId="275" precision="0" scale="0" length="1000" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" />
<outputColumn id="276" name="DetailQty" description="" lineageId="276" precision="0" scale="0" length="1000" dataType="wstr" codePage="0" sortKeyPosition="0" comparisonFlags="0" specialFlags="0" errorOrTruncationOperation="" errorRowDisposition="NotUsed" truncationRowDisposition="NotUsed" externalMetadataColumnId="0" mappedColumnId="0" /></outputColumns><externalMetadataColumns isUsed="False" /></output>
</outputs>
</component>