<component id="15" name="PayPal Trx Source" componentClassID="Microsoft.ManagedComponentHost" description="Executes a custom script." localeId="1033" version="9" 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="16" name="SourceCode" state="cdata" dataType="System.String" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="15"><arrayElement dataType="System.String"><![CDATA[ComponentWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></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, ByVal OutputMap As OutputNameMap)

        For I As Integer = 0 To Outputs - 1
            If OutputIDs(I) = GetOutputID(OutputMap, "Output") Then
                OutputBuffer = New OutputBuffer(Me, OutputIDs(I), False, Buffers(I), OutputMap)
            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[BufferWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></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, ByVal OutputMap As OutputNameMap)
        MyBase.New(Component, ObjectID, IsInput, Buffer, OutputMap)
    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[ScriptMain.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></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", "Timeout", _
    "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) + _
                "&ENDDATE=" + GetDateString_(m_endDate) + _
                "&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("Timeout")
        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("Connection")> _
    <Description("Specify timeout for request to complete (in seconds).")> _
    <DefaultValue(100)> _
    Public Property Timeout() As Integer
        Get
            Timeout = m_timeout
        End Get
        Set(ByVal value As Integer)
            m_timeout = value
        End Set
    End Property    ' Timeout


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <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")> _
    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"
        req.Timeout = Me.Timeout
        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) As String
        Dim result As String = String.Empty

        If Not String.IsNullOrEmpty(dateStr) Then
            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_
#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_timeout As Integer
    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
#End Region ' Attributes

End Class   ' ScriptMain
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[Project]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<c:Project xmlns:c="http://schemas.microsoft.com/codeprojectml/2010/08/main" xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003" runtimeVersion="4.0" schemaVersion="1.0">
	<msb:PropertyGroup>
		<msb:Language>msBuild</msb:Language>
		<msb:CodeName>ScriptComponent_27d6c3880b784c8e8acf997642a480a6</msb:CodeName>
		<msb:DisplayName>ScriptComponent_27d6c3880b784c8e8acf997642a480a6</msb:DisplayName>
		<msb:ProjectId>{895A116E-D8AD-4618-BB26-4F4EA9EAF4F6}</msb:ProjectId>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Project Include="ScriptComponent_27d6c3880b784c8e8acf997642a480a6.vbproj"/>
		<msb:Folder Include="My Project\"/>
		<msb:File Include="ScriptMain.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="BufferWrapper.vb"/>
	</msb:ItemGroup>
</c:Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[ScriptComponent_27d6c3880b784c8e8acf997642a480a6.vbproj]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="utf-16"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectTypeGuids>{30D016F9-3734-4E33-A861-5E7D899E18F3};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>8.0.30703</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{D617D226-D276-482A-B315-C0A9DF9083DF}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_27d6c3880b784c8e8acf997642a480a6</RootNamespace>
    <AssemblyName>ScriptComponent_27d6c3880b784c8e8acf997642a480a6</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <OptionCompare>Binary</OptionCompare>
    <OptionExplicit>On</OptionExplicit>
    <OptionStrict>On</OptionStrict>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>.\bin\Debug\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>.\bin\Release\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <!-- This sections specifies references for the project. -->
  <ItemGroup>
    <Reference Include="CozyRoc.SSISPlus.2014, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\120\SDK\Assemblies\CozyRoc.SSISPlus.2014.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.TxScript, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="System">
      <Private>False</Private>
    </Reference>
    <Reference Include="System.Data">
      <Private>False</Private>
    </Reference>
    <Reference Include="Microsoft.SqlServer.ManagedDTS">
      <Private>False</Private>
    </Reference>
    <Reference Include="System.Web">
      <Private>False</Private>
    </Reference>
  </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>
  <ItemGroup>
    <AppDesigner Include="My Project\" />
  </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="{30D016F9-3734-4E33-A861-5E7D899E18F3}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{B3A685AA-7EAF-4BC6-9940-57959FA5AC07}" ApplicationType="usd" Language="vb" TemplatesPath="" />
        <Host Name="SSIS_SC120" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC120</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <ItemGroup>
    <Compile Include="ScriptMain.vb" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="My Project\" />
  </ItemGroup>
</Project>]]></arrayElement></arrayElements></property><property id="17" name="BinaryCode" state="cdata" dataType="System.String" isArray="true" description="Stores the binary representation of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="2"><arrayElement dataType="System.String"><![CDATA[ScriptComponent_27d6c3880b784c8e8acf997642a480a6.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
tBTDExoAyhQLDhoA5RQLDgYA9xQyDwYAFxUyDwYATxU1FQAAAAABAAAAAAABAAEAAAAAACkANwAF
AAEAAQAAAAAAawA3AAkAAQACAAABEAB2ADcADQABAAMABQEAAIAAAAANAAUACAAFAQAAjgAAAA0A
BQAPAAEAAACpALYAHQAGABEAAQAAAOcAtgA1AAYAMwABAAAA9QC2AA0ACQA4AAEAAAABAbYADQAK
ADkAAQAAAAsBtgAgAAsAOgACAQAAFgEAAD0ALQBjAAIBAAAiAQAAPQAwAGMAAgEAADgBAAA9AEQA
YwAxAM0BIAAxAPYBLQAxABgCOgAxAD0CRwAhABkDkAAGAPUA8QAGAAEB9QAGAKkA+QABACcICQEB
ACcICQFRgDcIEwFRgD8IEwFRgEoIEwFRgFUIEwFRgGUIEwFRgHYIEwFRgIUIEwFRgI8IEwFRgJwI
EwFRgKgIEwFRgLAIEwFRgLkIEwFRgMEIEwFRgNIIEwFRgNwIEwFRgOMIEwFRgPMIEwFRgP0IEwFR
gAcJEwFRgBQJEwFRgCMJEwEBAM4L0wMBANsLEwEBAOILEwEBAOgLEwEBAPQL1wMBAP4L2gMBAAsM
2gMBABwMEwEBACgM2gMBADcMEwEBAEEM3QMBAEwM4QMBAFUMEwEGBgQN1wNWgAwN0wNWgBcN0wMG
BgQN1wNWgB8N3QNWgCMN3QNWgCgN3QNWgDEN3QNWgDkN3QNWgEYN3QNWgFEN3QNWgGAN3QNWgGkN
3QNWgG0N3QNWgHoN3QNWgIMN3QNWgIsN3QNWgJIN3QNWgKYN3QNWgLYN3QNWgL8N3QNWgMgN3QNW
gNkN3QMGBgQN1wNWgOAN4QNWgOgN4QNWgPMN4QNWgPsN4QNWgAIO4QNQIAAAAAAGGH4BEwABAFgg
AAAAAAYYfgETAAEAYCAAAAAAERi5ARcAAQCMIAAAAAATCMABGwABAKQgAAAAABMI5gEoAAEAvCAA
AAAAEwgPAjUAAQDUIAAAAAATCC0CQgABAOwgAAAAAEYCcwJjAAEACCEAAAAARgJ8AmgAAgAcIQAA
AACDAI0CbAACADQhAAAAAEYClQJxAAIASCEAAAAAEQCeAngAAgBkIQAAAAABALwCgAADAIAhAAAA
AAYYfgETAAQAiCEAAAAAAwjQAosABAC8IQAAAAAGGH4BEwAEANAhAAAAAAYYfgGvAAQA4CEAAAAA
RgolBLsACQD0IQAAAAAGCEUEwAAJAAQiAAAAAAYIWQTGAAoAICIAAAAABghuBMsACwAsIgAAAAAG
CHsExgAMAEgiAAAAAAYIjwTLAA0AVCIAAAAABgiYBMYADgBwIgAAAAAGCKgEywAPAHwiAAAAAAYI
sgTGABAAmCIAAAAABgjDBMsAEQCkIgAAAAAGCMwExgASAMAiAAAAAAYI3ATLABMAzCIAAAAABgju
BMYAFADoIgAAAAAGCAcFywAVAPQiAAAAAAYIEgXGABYAECMAAAAABggsBdAAFwAgIwAAAAAGCDQF
xgAYADwjAAAAAAYIQwXLABkASCMAAAAABghUBcYAGgBkIwAAAAAGCGwF0AAbAHQjAAAAAAYIdwXG
ABwAkCMAAAAABgiJBdAAHQCgIwAAAAAGCJQFxgAeALwjAAAAAAYIpgXLAB8AyCMAAAAABgizBcYA
IADkIwAAAAAGCMcFywAhAPAjAAAAAAYI1gXGACIADCQAAAAABgjsBcsAIwAYJAAAAAAGCPoFxgAk
ADQkAAAAAEYKDwa7ACUAwCQAAAAAhgAnBhMAJQDIJAAAAACGAC4GEwAlANAkAAAAAIYAPQbWACUA
6CQAAAAABhh+ARMAJQAIJQAAAABGA8sHEwAlAAwlAAAAAAEA2QcTACUAKCUAAAAARgLtB/0AJQCA
JQAAAABGAxMIEwApAIQlAAAAAAYYfgENASkAlCUAAAAABhh+AQ0BKgCkJQAAAAAGGH4BEwArAKwl
AAAAAEYCEwgTACsADCkAAAAABgAqCYMDKwCoKQAAAAAGAD4JuwAsAJgqAAAAAAYITAmJAywAsCoA
AAAABghbCY4DLAC8KgAAAAAGCA8CcQAtANQqAAAAAAYIcAnLAC0A4CoAAAAABgh5CXEALgD4KgAA
AAAGCIYJywAuAAQrAAAAAAYIkwlxAC8AHCsAAAAABgihCcsALwAoKwAAAAAGCK8JaAAwAEArAAAA
AAYIuwmUAzAATCsAAAAABgjHCdYAMQBkKwAAAAAGCNYJxgAxAHArAAAAAAYI5QnWADIAiCsAAAAA
Bgj9CcYAMgCoKwAAAAAGCBUKmQMzANQrAAAAAAYIIwrAADMA5CsAAAAABggxCnEANAD8KwAAAAAG
CEcKywA0AAgsAAAAAAYIXQrWADUAICwAAAAABghzCsYANQBALAAAAAAGCIkKmQM2AGwsAAAAAAYI
lQrAADYAfCwAAAAABgihCnEANwCULAAAAAAGCLUKywA3AKAsAAAAAAYIyQqeAzgAuCwAAAAABgje
CqMDOADELAAAAAAGCPMKqQM5ANwsAAAAAAYIBwWuAzkA6CwAAAAABgj+CnEAOgAALQAAAAAGCAgL
ywA6AAwtAAAAAAEAEgvLADsANC0AAAAAAQBCC7QDPADILgAAAAABAF0LuwM+AEgvAAAAAAEAewvB
Az8A2C8AAAAAAQCNC8EDQAAUMAAAAAABAKQLxgNBAKQwAAAAAAEAvQvMA0IAAAABAHoCAAABALMC
AAABALMCAAABAPkDAAACAAMEAAADAAwEAAAEABQEAAAFABsEAAABAFMEAAABAFMEAAABAFMEAAAB
AFMEAAABAFMEAAABAFMEAAABAFMEAAABAFMEAAABAFMEAAABAFMEAAABAFMEAAABAFMEAAABAFME
AAABAFMEAAABAFMEAAABAFMEAAABAFMEAAABAFMEAAABAFMEAAABAFMEAAABAFMEAAABAFMEAAAB
AFMEAAABAFMEAAABAFMEAAABAFMEAAABAFMEAAABAFMEAAABAPkHAAACAAEIAAADAAsIAAAEABsE
AAABAPkDAAABAPkDAAABADMJAAABAGoJAAABAGoJAAABAGoJAAABAGoJAAABAGoJAAABAGoJAAAB
AGoJAAABAGoJAAABAGoJAAABAGoJAAABAGoJAAABAGoJAAABAGoJAAABAGoJAAABAGoJAAABAB0L
AAABAE8LAAACAFYLAAABAHMLAAABAFYLAAABAJwLAAABALULAAABALULAAACAMkLCQB+ARMAgQB+
AVcEkQB+AWYEEQB+ARMAmQB+ARMAJAB+ARMALAB+ARMANAB+ARMAPAB+ARMAJADQAosALADQAosA
NADQAosAPADQAosAoQB+ARMAqQB+ARMAsQB+AcsAuQBhD/sEGQBzAmMAGQB8AmgAKQCCDwgFGQCV
AnEAyQCeDxgFGQB+ARMA0QB+ASgFRAAZA5AATADID4sATADSD6UFTAB+ARMA2QB+AcYAOQB+Aa8A
OQAWEL8FOQAfEJQD6QB+AcsA8QAnBhMA8QAuBhMA8QA9BtYA+QB+AcYAaQB+ARMAQQBkEMwFeQCV
AnEA4QB6ENgF4QCCEN4F4QCPEOQFcQCWEOoFEQGVAu8FGQGzEPQFGQG+EPoF4QCCEAAG4QDIEAYG
cQDWEGMAIQHrEAsGAQH7EHEAIQEHERcAKQF+AcsAMQF+ARMAMQE4ES4GOQFIETMGMQFSEToG4QBa
ERMBGQGzEFIGWQCVAnEAQQDGEWkGSQHcEW8GAQF+AcsA4QCCEHoGaQEoEoIGUQEvEssAUQE6EssA
UQG7CZQDUQFKEokGcQFwEo8GcQF5EpUGYQGCEpsGeQGUEhMAUQGcEqMGWQGoEokGgQF+AakGgQHH
EnEAiQHbErAGcQB+ARMAkQEAE9IG4QAdE9cG4QAjE+EG4QArE+YG4QArE+wGcQAWEPEGcQBbEwkH
sQF1Ew8HoQGBEw8HoQHIDw8HkQGJE9IG4QCPEBMHsQGTE9YAWQCVAsEDuQF+ARMAwQF+AcsAyQF+
AcsA0QF+AVgH2QF+AcsA4QF+AcsA6QF+ARMA8QF+AZQD+QF+AcsAAQJ+AcYACQJ+ARMAEQJ+AS8K
IQJ+AZQDKQJ+ARMAMQJ+AcsADgAsABYBDgAwAFEBDgA0AJwBDgA4AKUBDgA8AMgBDgBAAPMBDgBE
ABACDgBIACMCDgBMAEACDgBQAFsCDgBUAG4CDgBYAIMCDgBcAJYCDgBgALsCDgBkANICDgBoAOMC
DgBsAAYDDgBwAB0DDgB0ADQDDgB4AFEDDgB8AHIDCAC4APgDCAC8AP0DCADEAPgDCADIAP0DCADM
AAIECADQAAcECADUAAwECADYABEECADcABYECADgABsECADkACAECADoACUECADsACoECADwAC8E
CAD0ADQECAD4ADkECAD8AD4ECAAAAUMECAAEAUgECAAIAU0ECAAMAVIECAAUAfgDCAAYAf0DCAAc
AQIECAAgAQcECAAkAQwEKQCDALUELgBrAyILLgBbA/oKLgBjAwMLQAArAP0DQAATAF0EQwAbAGwE
QwATAF0ESQCDANMEYwAbAGwEYwATAF0EaQCDAMYEgAArAP0DgwAbAGwEgwB7AP0DgwBzAP0DiQCD
AOcEoAArAP0DowDDADAFowATAF0EwAArAP0DwwATAF0EwwDrALQF4AArAP0D4wArAbQFAAETAF0E
AAErAP0DAwErAbQFIAErAP0DIAETAF0EQAETAF0EQAErAP0DYAErAP0DYAETAF0EYwELA0oHYwET
A14HYwErAbQFYwH7Av0DYwEDAzcHgAErAP0DoAErAP0DwAETAF0EwAErAP0D4AErAP0DAAIrAP0D
AAITAF0EiQQbA7gKiQQjA8oIqQQjA8oIqQQbAx4JyQRDAxIKyQQjA8oIyQQbAxgK6QQjA8oI6QQb
A7IICQUbA+MICQUjA8oICQUzA9oIKQUjAy8IKQUbA9wJSQVTA10ESQUbAzYKSQVLA/0DSQUjAy8I
aQUbAxYIaQUjAy8IiQUbAz8IiQUrA/0DiQUjAy8IqQVLA/0DqQUbA3gKqQUjAy8IqQVTA10EyQUj
Ay8IyQUbA24I6QUjAy8I6QUrA/0D6QUbA4UICQYbAzYJCQYjAy8IKQYzA9EKKQYbA9oKKQYjAy8I
SQYjAy8ISQY7A1UJSQYbA4AJAAcrAbQFIAcrAbQFoQSmBKsEsAQABQQFDwUUBSMFIwWrBboFxQUA
BdMFEgYmBkUGTQYUBRQFFAUEBQAFAAVYBhQFAAVYBhQFXwZkBhQFAAW3BvcGGgcqBzEHMQcEAAEA
BgAFAAcABgALACQAAACiAU8AAABbAlQAAAAKAlkAAABnAl4AAAAjA5gAAABJBtoAAABcBt8AAABm
BuQAAAB3BugAAACABuQAAACIAugAAACQBuQAAACcBugAAACiBuQAAACvBugAAAC0BuQAAADABugA
AADOBuQAAADjBugAAADqBuQAAAD4BuwAAAD8BuQAAAAHB+gAAAAUB+QAAAAoB+wAAAAvB+QAAAA9
B+wAAABEB+QAAABSB+gAAABbB+QAAABrB+gAAAB2B+QAAACIB+gAAACSB+QAAACjB9oAAABdDOUD
AAAKAugAAABoDOgAAABxDOgAAAB7DOoDAACDDOQAAACODOQAAACiDN8AAACsDOgAAAC+DOQAAADQ
DN8AAADYDOgAAADoDO4DAADjBvMDAAD5DOgAAgAEAAMAAgAFAAUAAgAGAAcAAgAHAAkAAgAPAAsA
AgASAA0AAQATAA8AAQAUABEAAQAVABMAAQAWABUAAQAXABcAAQAYABkAAQAZABsAAQAaAB0AAQAb
AB8AAQAcACEAAQAdACMAAQAeACUAAQAfACcAAQAgACkAAQAhACsAAQAiAC0AAQAjAC8AAQAkADEA
AQAlADMAAQAmADUAAQAnADcAAQAoADkAAQApADsAAQAqAD0AAQArAD8AAQAsAEEAAQAtAEMAAQAu
AEUAAgAvAEcAAgA+AEkAAQA/AEkAAgBAAEsAAQBBAEsAAgBCAE0AAQBDAE0AAgBEAE8AAQBFAE8A
AgBGAFEAAQBHAFEAAgBIAFMAAQBJAFMAAQBLAFUAAgBKAFUAAgBMAFcAAQBNAFcAAgBOAFkAAQBP
AFkAAgBQAFsAAQBRAFsAAQBTAF0AAgBSAF0AAgBUAF8AAQBVAF8AAQBXAGEAAgBWAGEAAQBZAGMA
AgBYAGMAAgBaAGUAAQBbAGUAdQB1AIgAhQSMBJMEmgSSBZkFQgYEgAAAAAAAAAAAAAAAAAAAAAC2
AAAABAAAAAAAAAAAAAAAAQAKAAAAAAAKAAAAAAAAAAAAAAAKABMAAAAAAAEAAAAAAAAAAAAAAJ0A
LwMAAAAADAAAAAAAAAAAAAAApgBtAwAAAAAMAAAAAAAAAAAAAACmALsDAAAAAAQAAAAAAAAAAAAA
AAEAqwEAAAAADAAAAAAAAAAAAAAApgBgEQAAAAAEAAAAAAAAAAAAAAAKAOkSAAAAAAUABAAGAAQA
DAALAA0ACwAOAAsAAAAQAAwAsQIAABAAGQCxAgAAAAAbALECLQAeBS0AoAUAAAA8TW9kdWxlPgBt
c2NvcmxpYgBNaWNyb3NvZnQuVmlzdWFsQmFzaWMATXlBcHBsaWNhdGlvbgBTY3JpcHRDb21wb25l
bnRfMjdkNmMzODgwYjc4NGM4ZThhY2Y5OTc2NDJhNDgwYTYuTXkATXlDb21wdXRlcgBNeVByb2pl
Y3QATXlXZWJTZXJ2aWNlcwBUaHJlYWRTYWZlT2JqZWN0UHJvdmlkZXJgMQBPdXRwdXRCdWZmZXIA
U2NyaXB0Q29tcG9uZW50XzI3ZDZjMzg4MGI3ODRjOGU4YWNmOTk3NjQyYTQ4MGE2AFVzZXJDb21w
b25lbnQAQ29ubmVjdGlvbnMAVmFyaWFibGVzAFNjcmlwdE1haW4AU2VydmVyVHlwZXMAVHJhbnNh
Y3Rpb25DbGFzc1R5cGVzAFN0YXR1c1R5cGVzAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5BcHBsaWNh
dGlvblNlcnZpY2VzAEFwcGxpY2F0aW9uQmFzZQAuY3RvcgBNaWNyb3NvZnQuVmlzdWFsQmFzaWMu
RGV2aWNlcwBDb21wdXRlcgBTeXN0ZW0AT2JqZWN0AC5jY3RvcgBnZXRfQ29tcHV0ZXIAbV9Db21w
dXRlck9iamVjdFByb3ZpZGVyAGdldF9BcHBsaWNhdGlvbgBtX0FwcE9iamVjdFByb3ZpZGVyAFVz
ZXIAZ2V0X1VzZXIAbV9Vc2VyT2JqZWN0UHJvdmlkZXIAZ2V0X1dlYlNlcnZpY2VzAG1fTXlXZWJT
ZXJ2aWNlc09iamVjdFByb3ZpZGVyAEFwcGxpY2F0aW9uAFdlYlNlcnZpY2VzAEVxdWFscwBvAEdl
dEhhc2hDb2RlAFR5cGUAR2V0VHlwZQBUb1N0cmluZwBDcmVhdGVfX0luc3RhbmNlX18AVABpbnN0
YW5jZQBEaXNwb3NlX19JbnN0YW5jZV9fAGdldF9HZXRJbnN0YW5jZQBNaWNyb3NvZnQuVmlzdWFs
QmFzaWMuTXlTZXJ2aWNlcy5JbnRlcm5hbABDb250ZXh0VmFsdWVgMQBtX0NvbnRleHQAR2V0SW5z
dGFuY2UAQ296eVJvYy5TU0lTUGx1cy4yMDE0AENvenlSb2MuU3FsU2VydmVyLlNTSVMAU2NyaXB0
QnVmZmVyUGx1cwBNaWNyb3NvZnQuU3FsU2VydmVyLlR4U2NyaXB0AE1pY3Jvc29mdC5TcWxTZXJ2
ZXIuRHRzLlBpcGVsaW5lAFNjcmlwdENvbXBvbmVudABNaWNyb3NvZnQuU3FsU2VydmVyLlBpcGVs
aW5lSG9zdABQaXBlbGluZUJ1ZmZlcgBPdXRwdXROYW1lTWFwAENvbXBvbmVudABPYmplY3RJRABJ
c0lucHV0AEJ1ZmZlcgBPdXRwdXRNYXAAZ2V0X1N0YXRpY0lucHV0Q29sdW1ucwBEYXRlVGltZQBz
ZXRfVGltZXN0YW1wAFZhbHVlAHNldF9UaW1lc3RhbXBfSXNOdWxsAHNldF9UaW1lem9uZQBzZXRf
VGltZXpvbmVfSXNOdWxsAHNldF9UeXBlAHNldF9UeXBlX0lzTnVsbABzZXRfRW1haWwAc2V0X0Vt
YWlsX0lzTnVsbABzZXRfTmFtZQBzZXRfTmFtZV9Jc051bGwAc2V0X1RyYW5zYWN0aW9uSWQAc2V0
X1RyYW5zYWN0aW9uSWRfSXNOdWxsAHNldF9TdGF0dXMAc2V0X1N0YXR1c19Jc051bGwARGVjaW1h
bABzZXRfQW10AHNldF9BbXRfSXNOdWxsAHNldF9DdXJyZW5jeUNvZGUAc2V0X0N1cnJlbmN5Q29k
ZV9Jc051bGwAc2V0X0ZlZUFtdABzZXRfRmVlQW10X0lzTnVsbABzZXRfTmV0QW10AHNldF9OZXRB
bXRfSXNOdWxsAHNldF9EZXRhaWxJZABzZXRfRGV0YWlsSWRfSXNOdWxsAHNldF9EZXRhaWxOYW1l
AHNldF9EZXRhaWxOYW1lX0lzTnVsbABzZXRfRGV0YWlsUXR5AHNldF9EZXRhaWxRdHlfSXNOdWxs
AGdldF9TdGF0aWNPdXRwdXRDb2x1bW5zAEFkZFJvdwBTZXRFbmRPZlJvd3NldABFbmRPZlJvd3Nl
dABTdGF0aWNJbnB1dENvbHVtbnMAVGltZXN0YW1wAFRpbWVzdGFtcF9Jc051bGwAVGltZXpvbmUA
VGltZXpvbmVfSXNOdWxsAFR5cGVfSXNOdWxsAEVtYWlsAEVtYWlsX0lzTnVsbABOYW1lAE5hbWVf
SXNOdWxsAFRyYW5zYWN0aW9uSWQAVHJhbnNhY3Rpb25JZF9Jc051bGwAU3RhdHVzAFN0YXR1c19J
c051bGwAQW10AEFtdF9Jc051bGwAQ3VycmVuY3lDb2RlAEN1cnJlbmN5Q29kZV9Jc051bGwARmVl
QW10AEZlZUFtdF9Jc051bGwATmV0QW10AE5ldEFtdF9Jc051bGwARGV0YWlsSWQARGV0YWlsSWRf
SXNOdWxsAERldGFpbE5hbWUARGV0YWlsTmFtZV9Jc051bGwARGV0YWlsUXR5AERldGFpbFF0eV9J
c051bGwAU3RhdGljT3V0cHV0Q29sdW1ucwBTY3JpcHRDb21wb25lbnRQbHVzAEZpbmlzaE91dHB1
dHMATWFya091dHB1dHNGaW5pc2hlZABQcmltZU91dHB1dABPdXRwdXRzAE91dHB1dElEcwBCdWZm
ZXJzAENyZWF0ZU5ld091dHB1dFJvd3MAUGFyZW50Q29tcG9uZW50AExpdmVVcmwAU2FuZGJveFVy
bABBcGlWZXJzaW9uAE1ldGhvZFRyeFNlYXJjaABNZXRob2RHZXREZXRhaWxzAFN1YnNjcmlwdGlv
bklkAFJlY2VpcHRJZABUaW1lU3RhbXBfMVAAVGltZVpvbmVfMVAAVHlwZV8xUABFbWFpbF8xUABO
YW1lXzFQAFRyYW5zYWN0aW9uSWRfMVAAU3RhdHVzXzFQAEFtdF8xUABDdXJyZW5jeUNvZGVfMVAA
RmVlQW10XzFQAE5ldEFtdF8xUABFcnJvckNvZGVfMVAATG9uZ01lc3NhZ2VfMVAAUXR5XzFQAFZh
bGlkYXRlAGVyck1lc3NhZ2UAR2V0UHJvcGVydGllcwBnZXRfU2VydmVyVHlwZQBzZXRfU2VydmVy
VHlwZQB2YWx1ZQBzZXRfVXNlcgBnZXRfUGFzc3dvcmQAc2V0X1Bhc3N3b3JkAGdldF9TaWduYXR1
cmUAc2V0X1NpZ25hdHVyZQBnZXRfVGltZW91dABzZXRfVGltZW91dABnZXRfR2V0RGV0YWlscwBz
ZXRfR2V0RGV0YWlscwBnZXRfSXNTdGFydERhdGVWYXJpYWJsZQBzZXRfSXNTdGFydERhdGVWYXJp
YWJsZQBnZXRfU3RhcnREYXRlAHNldF9TdGFydERhdGUAZ2V0X1N0YXJ0RGF0ZVZhcmlhYmxlAHNl
dF9TdGFydERhdGVWYXJpYWJsZQBnZXRfSXNFbmREYXRlVmFyaWFibGUAc2V0X0lzRW5kRGF0ZVZh
cmlhYmxlAGdldF9FbmREYXRlAHNldF9FbmREYXRlAGdldF9FbmREYXRlVmFyaWFibGUAc2V0X0Vu
ZERhdGVWYXJpYWJsZQBnZXRfVHJhbnNhY3Rpb25DbGFzcwBzZXRfVHJhbnNhY3Rpb25DbGFzcwBn
ZXRfU3RhdHVzAGdldF9PdGhlcgBzZXRfT3RoZXIARmlyZUVycm9yXwBtZXNzYWdlAFN5c3RlbS5D
b2xsZWN0aW9ucwBIYXNodGFibGUAUXVlcnlQYXlQYWxfAG1ldGhvZABwYXJhbXMAR2V0RGljdGlv
bmFyeUZyb21OVlBfAGxpc3RTdHIAR2V0RW5jb2RlZFBhcmFtc18AR2V0RGF0ZVN0cmluZ18AZGF0
ZVN0cgBHZXRFcnJvckZyb21OVlBfAHJlc0xpc3QAR2V0TlZQTGlzdF8AbmFtZQBtX3NlcnZlclR5
cGUAbV91c2VyAG1fcHdkAG1fc2lnbmF0dXJlAG1fdGltZW91dABtX2dldERldGFpbHMAbV9pc1N0
YXJ0RGF0ZVZhcgBtX3N0YXJ0RGF0ZQBtX2lzRW5kRGF0ZVZhcgBtX2VuZERhdGUAbV90cnhDbGFz
cwBtX3N0YXR1cwBtX290aGVyAFNlcnZlclR5cGUAUGFzc3dvcmQAU2lnbmF0dXJlAFRpbWVvdXQA
R2V0RGV0YWlscwBJc1N0YXJ0RGF0ZVZhcmlhYmxlAFN0YXJ0RGF0ZQBTdGFydERhdGVWYXJpYWJs
ZQBJc0VuZERhdGVWYXJpYWJsZQBFbmREYXRlAEVuZERhdGVWYXJpYWJsZQBUcmFuc2FjdGlvbkNs
YXNzAE90aGVyAEVudW0AdmFsdWVfXwBQcm9kdWN0aW9uAFNhbmRib3gAQWxsAFNlbnQAUmVjZWl2
ZWQATWFzc1BheQBNb25leVJlcXVlc3QARnVuZHNBZGRlZABGdW5kc1dpdGhkcmF3bgBSZWZlcnJh
bABGZWUAU3Vic2NyaXB0aW9uAERpdmlkZW5kAEJpbGxwYXkAUmVmdW5kAEN1cnJlbmN5Q29udmVy
c2lvbnMAQmFsYW5jZVRyYW5zZmVyAFJldmVyc2FsAFNoaXBwaW5nAEJhbGFuY2VBZmZlY3RpbmcA
RUNoZWNrAFBlbmRpbmcAUHJvY2Vzc2luZwBTdWNjZXNzAERlbmllZABSZXZlcnNlZABTeXN0ZW0u
Q29tcG9uZW50TW9kZWwARWRpdG9yQnJvd3NhYmxlQXR0cmlidXRlAEVkaXRvckJyb3dzYWJsZVN0
YXRlAFN5c3RlbS5Db2RlRG9tLkNvbXBpbGVyAEdlbmVyYXRlZENvZGVBdHRyaWJ1dGUAU3lzdGVt
LkRpYWdub3N0aWNzAERlYnVnZ2VySGlkZGVuQXR0cmlidXRlAE1pY3Jvc29mdC5WaXN1YWxCYXNp
Yy5Db21waWxlclNlcnZpY2VzAFN0YW5kYXJkTW9kdWxlQXR0cmlidXRlAEhpZGVNb2R1bGVOYW1l
QXR0cmlidXRlAFN5c3RlbS5Db21wb25lbnRNb2RlbC5EZXNpZ24ASGVscEtleXdvcmRBdHRyaWJ1
dGUAU3lzdGVtLlJ1bnRpbWUuQ29tcGlsZXJTZXJ2aWNlcwBSdW50aW1lSGVscGVycwBHZXRPYmpl
Y3RWYWx1ZQBSdW50aW1lVHlwZUhhbmRsZQBHZXRUeXBlRnJvbUhhbmRsZQBBY3RpdmF0b3IAQ3Jl
YXRlSW5zdGFuY2UATXlHcm91cENvbGxlY3Rpb25BdHRyaWJ1dGUAZ2V0X1ZhbHVlAHNldF9WYWx1
ZQBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMAQ29tVmlzaWJsZUF0dHJpYnV0ZQBTdHJp
bmcAc2V0X0l0ZW0AU2V0TnVsbABJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uAFNjcmlwdEJ1ZmZl
cgBDTFNDb21wbGlhbnRBdHRyaWJ1dGUAR2V0T3V0cHV0SUQARXhjZXB0aW9uAFJlcGxhY2UAQ29u
Y2F0AEludDMyAEZvcm1hdABnZXRfSXRlbQBDb252ZXJzaW9ucwBDb252ZXJ0AFRvRGF0ZVRpbWUA
VG9EZWNpbWFsAElzTnVsbE9yRW1wdHkAQ29udGFpbnMAUHJvamVjdERhdGEAU2V0UHJvamVjdEVy
cm9yAGdldF9NZXNzYWdlAENsZWFyUHJvamVjdEVycm9yAEFwcGxpY2F0aW9uRXhjZXB0aW9uAEFy
cmF5TGlzdABBZGQASW50ZXJhY3Rpb24ASUlmAEFycmF5AFRvQXJyYXkARW1wdHkATWljcm9zb2Z0
LlNxbFNlcnZlci5EVFNQaXBlbGluZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxp
bmUuV3JhcHBlcgBJRFRTQ29tcG9uZW50TWV0YURhdGExMDAAZ2V0X0NvbXBvbmVudE1ldGFEYXRh
AEZpcmVFcnJvcgBTeXN0ZW0uTmV0AEh0dHBXZWJSZXF1ZXN0AFdlYlJlc3BvbnNlAFN5c3RlbS5J
TwBTdHJlYW0AV2ViUmVxdWVzdABDcmVhdGUAc2V0X01ldGhvZABzZXRfQ29udGVudFR5cGUAR2V0
UmVxdWVzdFN0cmVhbQBTeXN0ZW0uVGV4dABFbmNvZGluZwBnZXRfVVRGOABHZXRCeXRlcwBXcml0
ZQBJRGlzcG9zYWJsZQBEaXNwb3NlAEdldFJlc3BvbnNlAEdldFJlc3BvbnNlU3RyZWFtAFN0cmVh
bVJlYWRlcgBSZWFkVG9FbmQAT3BlcmF0b3JzAENvbXBhcmVTdHJpbmcAU3lzdGVtLldlYgBIdHRw
VXRpbGl0eQBVcmxEZWNvZGUAU3RyaW5nU3BsaXRPcHRpb25zAFNwbGl0AEluZGV4T2YAU3Vic3Ry
aW5nAERpY3Rpb25hcnlFbnRyeQBJRGljdGlvbmFyeUVudW1lcmF0b3IAR2V0RW51bWVyYXRvcgBJ
RW51bWVyYXRvcgBnZXRfQ3VycmVudABnZXRfS2V5AFVybEVuY29kZQBNb3ZlTmV4dABTU0lTU2Ny
aXB0Q29tcG9uZW50RW50cnlQb2ludEF0dHJpYnV0ZQBDb3p5Um9jLlNxbFNlcnZlci5TU0lTLkF0
dHJpYnV0ZXMARmlsdGVyUHJvcGVydGllc0F0dHJpYnV0ZQBWYWxpZGF0ZVByb3BlcnRpZXNBdHRy
aWJ1dGUAU29ydFByb3BlcnRpZXNBdHRyaWJ1dGUARGVzY3JpcHRpb25BdHRyaWJ1dGUAQ2F0ZWdv
cnlBdHRyaWJ1dGUAVmFyaWFibGVBdHRyaWJ1dGUARGVmYXVsdFZhbHVlQXR0cmlidXRlAFRleHRE
aWFsb2dBdHRyaWJ1dGUAUGFzc3dvcmRQcm9wZXJ0eVRleHRBdHRyaWJ1dGUATm9uRXNzZW50aWFs
QXR0cmlidXRlAFJlZnJlc2hQcm9wZXJ0aWVzQXR0cmlidXRlAFJlZnJlc2hQcm9wZXJ0aWVzAENv
bXBpbGF0aW9uUmVsYXhhdGlvbnNBdHRyaWJ1dGUAUnVudGltZUNvbXBhdGliaWxpdHlBdHRyaWJ1
dGUAU3lzdGVtLlJ1bnRpbWUuVmVyc2lvbmluZwBUYXJnZXRGcmFtZXdvcmtBdHRyaWJ1dGUAU2Ny
aXB0Q29tcG9uZW50XzI3ZDZjMzg4MGI3ODRjOGU4YWNmOTk3NjQyYTQ4MGE2LmRsbAAAAAAAgJtJ
AHMATgB1AGwAbAAgAHAAcgBvAHAAZQByAHQAeQAgAGMAYQBuAG4AbwB0ACAAYgBlACAAcwBlAHQA
IAB0AG8AIABGAGEAbABzAGUALgAgAEEAcwBzAGkAZwBuACAAYQAgAHYAYQBsAHUAZQAgAHQAbwAg
AHQAaABlACAAYwBvAGwAdQBtAG4AIABpAG4AcwB0AGUAYQBkAC4AABNUAGkAbQBlAHMAdABhAG0A
cAAAEVQAaQBtAGUAegBvAG4AZQAACVQAeQBwAGUAAAtFAG0AYQBpAGwAAAlOAGEAbQBlAAAbVABy
AGEAbgBzAGEAYwB0AGkAbwBuAEkAZAAADVMAdABhAHQAdQBzAAAHQQBtAHQAABlDAHUAcgByAGUA
bgBjAHkAQwBvAGQAZQAADUYAZQBlAEEAbQB0AAANTgBlAHQAQQBtAHQAABFEAGUAdABhAGkAbABJ
AGQAABVEAGUAdABhAGkAbABOAGEAbQBlAAATRABlAHQAYQBpAGwAUQB0AHkAAA1PAHUAdABwAHUA
dAAAFyYAUwBUAEEAUgBUAEQAQQBUAEUAPQAAEyYARQBOAEQARABBAFQARQA9AAAlJgBUAFIAQQBO
AFMAQQBDAFQASQBPAE4AQwBMAEEAUwBTAD0AABEmAFMAVABBAFQAVQBTAD0AAAMmAAAJXAByAFwA
bgAAI1QAcgBhAG4AcwBhAGMAdABpAG8AbgBTAGUAYQByAGMAaAAAJUwAXwBUAFIAQQBOAFMAQQBD
AFQASQBPAE4ASQBEAHsAMAB9AAAdTABfAFQASQBNAEUAUwBUAEEATQBQAHsAMAB9AAAbTABfAFQA
SQBNAEUAWgBPAE4ARQB7ADAAfQAAE0wAXwBUAFkAUABFAHsAMAB9AAAVTABfAEUATQBBAEkATAB7
ADAAfQAAE0wAXwBOAEEATQBFAHsAMAB9AAAXTABfAFMAVABBAFQAVQBTAHsAMAB9AAARTABfAEEA
TQBUAHsAMAB9AAAjTABfAEMAVQBSAFIARQBOAEMAWQBDAE8ARABFAHsAMAB9AAAXTABfAEYARQBF
AEEATQBUAHsAMAB9AAAXTABfAE4ARQBUAEEATQBUAHsAMAB9AAAfJgBUAFIAQQBOAFMAQQBDAFQA
SQBPAE4ASQBEAD0AACtHAGUAdABUAHIAYQBuAHMAYQBjAHQAaQBvAG4ARABlAHQAYQBpAGwAcwAA
HVMAVQBCAFMAQwBSAEkAUABUAEkATwBOAEkARAAAE1IARQBDAEUASQBQAFQASQBEAAARTABfAFEA
VABZAHsAMAB9AAAlUwBwAGUAYwBpAGYAeQAgAHUAcwBlAHIAIABuAGEAbQBlAC4AACNTAHAAZQBj
AGkAZgB5ACAAcABhAHMAcwB3AG8AcgBkAC4AACVTAHAAZQBjAGkAZgB5ACAAcwBpAGcAbgBhAHQA
dQByAGUALgAAJ1MAcABlAGMAaQBmAHkAIABzAHQAYQByAHQAIABkAGEAdABlAC4AABVTAGUAcgB2
AGUAcgBUAHkAcABlAAAJVQBzAGUAcgAAEVAAYQBzAHMAdwBvAHIAZAAAE1MAaQBnAG4AYQB0AHUA
cgBlAAAPVABpAG0AZQBvAHUAdAAAFUcAZQB0AEQAZQB0AGEAaQBsAHMAACFUAHIAYQBuAHMAYQBj
AHQAaQBvAG4AQwBsAGEAcwBzAAALTwB0AGgAZQByAAAnSQBzAFMAdABhAHIAdABEAGEAdABlAFYA
YQByAGkAYQBiAGwAZQAAI1MAdABhAHIAdABEAGEAdABlAFYAYQByAGkAYQBiAGwAZQAAE1MAdABh
AHIAdABEAGEAdABlAAAjSQBzAEUAbgBkAEQAYQB0AGUAVgBhAHIAaQBhAGIAbABlAAAfRQBuAGQA
RABhAHQAZQBWAGEAcgBpAGEAYgBsAGUAAA9FAG4AZABEAGEAdABlAAAjUABhAHkAUABhAGwAIABU
AHIAeAAgAFMAbwB1AHIAYwBlAAA7aAB0AHQAcABzADoALwAvAGEAcABpAC0AMwB0AC4AcABhAHkA
cABhAGwALgBjAG8AbQAvAG4AdgBwAAFLaAB0AHQAcABzADoALwAvAGEAcABpAC0AMwB0AC4AcwBh
AG4AZABiAG8AeAAuAHAAYQB5AHAAYQBsAC4AYwBvAG0ALwBuAHYAcAABLVUAbgBoAGEAbgBkAGwA
ZQBkACAAcwBlAHIAdgBlAHIAIAB0AHkAcABlAC4AAAtVAFMARQBSAD0AAAsmAFAAVwBEAD0AABcm
AFMASQBHAE4AQQBUAFUAUgBFAD0AAA9NAEUAVABIAE8ARAA9AAAdJgBWAEUAUgBTAEkATwBOAD0A
OAA1AC4AMAAmAAAJUABPAFMAVAAAQ2EAcABwAGwAaQBjAGEAdABpAG8AbgAvAHgALQB3AHcAdwAt
AGYAbwByAG0ALQB1AHIAbABlAG4AYwBvAGQAZQBkAAEHQQBDAEsAAA9TAHUAYwBjAGUAcwBzAAAD
PQAAD3sAMAB9AD0AewAxAH0AABV5AHkAeQB5AC0ATQBNAC0AZABkAAEVVAAwADAAOgAwADAAOgAw
ADAAWgAAO0UAcgByAG8AcgAgAGMAbwBkAGUAOgAgAHsAMAB9ACwAIABNAGUAcwBzAGEAZwBlADoA
IAB7ADEAfQAAHUwAXwBFAFIAUgBPAFIAQwBPAEQARQB7ADAAfQAAIUwAXwBMAE8ATgBHAE0ARQBT
AFMAQQBHAEUAewAwAH0AAAN8AAC1ASyhPNeOR5NHfUQNpXbwAAi3elxWGTTgiQiwP19/EdUKOgMg
AAEDAAABBAAAEgwHBhUSGAESDAQAABIIBwYVEhgBEggEAAASEQcGFRIYARIRBAAAEhQHBhUSGAES
FAQIABIMBAgAEggECAASEQQIABIUBCABAhwDIAAIBCAAEhUDIAAOAh4ABxABAR4AHgAHMAEBARAe
AAITAAQgABMABwYVEhkBEwAEKAATAAgWz0kLuAw06giJhF3NgIDMkQsgBQESIQgCEiUSKQQgAB0O
BSABAREtBCABAQIEIAEBDgUgAQERMQMgAAIEKAAdDgQoABEtAygAAgMoAA4EKAARMQMGEiQDBhIo
AwYSHAsgBAEIHQgdEiUSKQMGEiEFIAEBEiECBg46aAB0AHQAcABzADoALwAvAGEAcABpAC0AMwB0
AC4AcABhAHkAcABhAGwALgBjAG8AbQAvAG4AdgBwAEpoAHQAdABwAHMAOgAvAC8AYQBwAGkALQAz
AHQALgBzAGEAbgBkAGIAbwB4AC4AcABhAHkAcABhAGwALgBjAG8AbQAvAG4AdgBwAAg4ADUALgAw
ACJUAHIAYQBuAHMAYQBjAHQAaQBvAG4AUwBlAGEAcgBjAGgAKkcAZQB0AFQAcgBhAG4AcwBhAGMA
dABpAG8AbgBEAGUAdABhAGkAbABzABxTAFUAQgBTAEMAUgBJAFAAVABJAE8ATgBJAEQAElIARQBD
AEUASQBQAFQASQBEABxMAF8AVABJAE0ARQBTAFQAQQBNAFAAewAwAH0AGkwAXwBUAEkATQBFAFoA
TwBOAEUAewAwAH0AEkwAXwBUAFkAUABFAHsAMAB9ABRMAF8ARQBNAEEASQBMAHsAMAB9ABJMAF8A
TgBBAE0ARQB7ADAAfQAkTABfAFQAUgBBAE4AUwBBAEMAVABJAE8ATgBJAEQAewAwAH0AFkwAXwBT
AFQAQQBUAFUAUwB7ADAAfQAQTABfAEEATQBUAHsAMAB9ACJMAF8AQwBVAFIAUgBFAE4AQwBZAEMA
TwBEAEUAewAwAH0AFkwAXwBGAEUARQBBAE0AVAB7ADAAfQAWTABfAE4ARQBUAEEATQBUAHsAMAB9
ABxMAF8ARQBSAFIATwBSAEMATwBEAEUAewAwAH0AIEwAXwBMAE8ATgBHAE0ARQBTAFMAQQBHAEUA
ewAwAH0AEEwAXwBRAFQAWQB7ADAAfQAFIAECEA4EIAARMAUgAQERMAQgAQEIBCAAES0EIAARNAUg
AQERNAQgABE4BSABARE4BiACEjkODgUgARI5DgQgAQ4OBSABDhI5BiACDhI5DgMGETACBggCBgID
BhE0AwYROAQoABEwAygACAQoABE0BCgAETgEAAAAAAQBAAAABAIAAAAEAwAAAAQEAAAABAUAAAAE
BgAAAAQHAAAABAgAAAAECQAAAAQKAAAABAsAAAAEDAAAAAQNAAAABA4AAAAEDwAAAAQQAAAABBEA
AAAEEgAAAAUgAQERRQgBAAEAAAAAAAUgAgEODhgBAApNeVRlbXBsYXRlCDEwLjAuMC4wAAAGFRIY
ARIMBhUSGAESCAYVEhgBEhEGFRIYARIUBAcBEgwEBwESCAQHARIRBAcBEhQQAQALTXkuQ29tcHV0
ZXIAAAwBAAdNeS5Vc2VyAAATAQAOTXkuQXBwbGljYXRpb24AABMBAA5NeS5XZWJTZXJ2aWNlcwAA
BAABHBwDBwECAwcBCAYAARIVEWEEBwESFQMHAQ4FEAEAHgAECgEeAAQHAR4AByAEAQ4ODg5hAQA0
U3lzdGVtLldlYi5TZXJ2aWNlcy5Qcm90b2NvbHMuU29hcEh0dHBDbGllbnRQcm90b2NvbBJDcmVh
dGVfX0luc3RhbmNlX18TRGlzcG9zZV9fSW5zdGFuY2VfXwAAAAYVEhgBEwAGFRIZARMABAoBEwAF
IAEBEwAIBwMTABMAEwAFAQAAAAAEBwEdDgUgAgEIHAYHAh0OHQ4GAAIIEikOBAcCCAgFIAIODg4F
AAEOHQ4FAAIODhwEIAEcHAQAAQ4cBQABES0cBQABETEcBQACDg4OBAABAg4GAAEBEoCBEwcLCBI5
Dg4ODg4SORKAgR0OEhwHBwMCAhKAgQQgAQgcBgADHAIcHAcgARKAoRIVAh0OBwcCHQ4SgJkEBwER
MAUAAREtDgYHAhEtES0EBwERNAQHARE4BSAAEoClCiAGAQgODg4IEAIHAAQODg4ODgYAARKAtQ4F
IAASgLEFAAASgLkFIAEdBQ4HIAMBHQUICAUgABKArQYgAQESgLEGAAMIDg4CGgcLEjkSgKkSgK0O
EjkOEoCxHQUSgLERMB0OBAABDg4JIAIdDh0OEYDNBCABCA4FIAIOCAgEIAEOCAUgAgEcHBEHChI5
HQ4SOQ4OCA4dDggdDgUgABKA1QMgABwGAAMODhwcDwcGDhI5DhGA0RKA1RGA0QYHAw4OES0FBwMO
CA4SAQANR2V0UHJvcGVydGllcwAADQEACFZhbGlkYXRlAAAFIAEBHQ6AtgEADwAAAApTZXJ2ZXJU
eXBlBFVzZXIIUGFzc3dvcmQJU2lnbmF0dXJlB1RpbWVvdXQKR2V0RGV0YWlscxNJc1N0YXJ0RGF0
ZVZhcmlhYmxlCVN0YXJ0RGF0ZRFTdGFydERhdGVWYXJpYWJsZRFJc0VuZERhdGVWYXJpYWJsZQdF
bmREYXRlD0VuZERhdGVWYXJpYWJsZRBUcmFuc2FjdGlvbkNsYXNzBlN0YXR1cwVPdGhlcgAAGAEA
E1NwZWNpZnkgc3RhcnQgZGF0ZS4AAA8BAApQYXJhbWV0ZXJzAAAuAQApU3BlY2lmaWVzIHZhcmlh
YmxlIGNvbnRhaW5pbmcgc3RhcnQgZGF0ZS4AABYBABFTcGVjaWZ5IGVuZCBkYXRlLgAALAEAJ1Nw
ZWNpZmllcyB2YXJpYWJsZSBjb250YWluaW5nIGVuZCBkYXRlLgAAFwEAElNwZWNpZnkgc2lnbmF0
dXJlLgAADwEACkNvbm5lY3Rpb24AAAgBAGQAAAAAADoBADVTcGVjaWZ5IHRpbWVvdXQgZm9yIHJl
cXVlc3QgdG8gY29tcGxldGUgKGluIHNlY29uZHMpLgAAFwEAElNwZWNpZnkgdXNlciBuYW1lLgAA
HgEAGVNlbGVjdCB0cmFuc2FjdGlvbiBjbGFzcy4AACoBACVTcGVjaWZ5IHRyYW5zYWN0aW9uIHNl
YXJjaCBwYXJhbWV0ZXJzAABbAQBWU2VsZWN0IG90aGVyIHRyYW5zYWN0aW9uIHNlYXJjaCBwYXJh
bWV0ZXJzLiBTZXBhcmF0ZSBtdWx0aXBsZSBwYXJhbWV0ZXJzIHdpdGggbmV3bGluZS4AADUBADBT
cGVjaWZpZXMgaWYgdHJhbnNhY3Rpb25zIGRldGFpbHMgYXJlIHJldHJpZXZlZC4AAAUBAAEAABYB
ABFTcGVjaWZ5IHBhc3N3b3JkLgAABiABARGBDUEBADxTcGVjaWZpZXMgaWYgU3RhcnREYXRlIHBy
b3BlcnR5IHJlZmVyZW5jZXMgcGFja2FnZSB2YXJpYWJsZS4AAD8BADpTcGVjaWZpZXMgaWYgRW5k
RGF0ZSBwcm9wZXJ0eSByZWZlcmVuY2VzIHBhY2thZ2UgdmFyaWFibGUuAAAYAQATU2VsZWN0IHNl
cnZlciB0eXBlLgAACAEAAgAAAAAAHwEAGlNlbGVjdCB0cmFuc2FjdGlvbiBzdGF0dXMuAAAIAQAI
AAAAAAAeAQABAFQCFldyYXBOb25FeGNlcHRpb25UaHJvd3MBRwEAGi5ORVRGcmFtZXdvcmssVmVy
c2lvbj12NC4wAQBUDhRGcmFtZXdvcmtEaXNwbGF5TmFtZRAuTkVUIEZyYW1ld29yayA0AAAUcAAA
AAAAAAAAAAAucAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIHAAAAAAAAAAAAAAAABfQ29yRGxs
TWFpbgBtc2NvcmVlLmRsbAAAAAAA/yUAIAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABABAAAAAYAACAAAAAAAAAAAAAAAAAAAABAAEA
AAAwAACAAAAAAAAAAAAAAAAAAAABAAAAAABIAAAAWIAAAOwCAAAAAAAAAAAAAOwCNAAAAFYAUwBf
AFYARQBSAFMASQBPAE4AXwBJAE4ARgBPAAAAAAC9BO/+AAABAAAAAAAAAAAAAAAAAAAAAAA/AAAA
AAAAAAQAAAACAAAAAAAAAAAAAAAAAAAARAAAAAEAVgBhAHIARgBpAGwAZQBJAG4AZgBvAAAAAAAk
AAQAAABUAHIAYQBuAHMAbABhAHQAaQBvAG4AAAAAAAAAsARMAgAAAQBTAHQAcgBpAG4AZwBGAGkA
bABlAEkAbgBmAG8AAAAoAgAAAQAwADAAMAAwADAANABiADAAAAAsAAIAAQBGAGkAbABlAEQAZQBz
AGMAcgBpAHAAdABpAG8AbgAAAAAAIAAAADAACAABAEYAaQBsAGUAVgBlAHIAcwBpAG8AbgAAAAAA
MAAuADAALgAwAC4AMAAAAIwANQABAEkAbgB0AGUAcgBuAGEAbABOAGEAbQBlAAAAUwBjAHIAaQBw
AHQAQwBvAG0AcABvAG4AZQBuAHQAXwAyADcAZAA2AGMAMwA4ADgAMABiADcAOAA0AGMAOABlADgA
YQBjAGYAOQA5ADcANgA0ADIAYQA0ADgAMABhADYALgBkAGwAbAAAAAAAKAACAAEATABlAGcAYQBs
AEMAbwBwAHkAcgBpAGcAaAB0AAAAIAAAAJQANQABAE8AcgBpAGcAaQBuAGEAbABGAGkAbABlAG4A
YQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADIANwBkADYAYwAzADgAOAAw
AGIANwA4ADQAYwA4AGUAOABhAGMAZgA5ADkANwA2ADQAMgBhADQAOAAwAGEANgAuAGQAbABsAAAA
AAA0AAgAAQBQAHIAbwBkAHUAYwB0AFYAZQByAHMAaQBvAG4AAAAwAC4AMAAuADAALgAwAAAAOAAI
AAEAQQBzAHMAZQBtAGIAbAB5ACAAVgBlAHIAcwBpAG8AbgAAADAALgAwAC4AMAAuADAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABwAAAMAAAAQDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA]]></arrayElement></arrayElements></property><property id="22" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2014, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property><property id="24" name="VSTAProjectName" dataType="System.String" description="Specifies the name of the Microsoft Visual Studio Tools for Applications project. Project names must be unique within a package." typeConverter="NOTBROWSABLE">ScriptComponent_27d6c3880b784c8e8acf997642a480a6</property><property id="25" name="ScriptLanguage" dataType="System.String" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property></properties><outputs><output id="27" name="Output" hasSideEffects="true"><outputColumns><outputColumn id="28" name="Timestamp" lineageId="28" dataType="dbTimeStamp" /><outputColumn id="29" name="Timezone" lineageId="29" length="3" dataType="wstr" /><outputColumn id="30" name="Type" lineageId="30" length="250" dataType="wstr" /><outputColumn id="31" name="Email" lineageId="31" length="250" dataType="wstr" /><outputColumn id="32" name="Name" lineageId="32" length="250" dataType="wstr" /><outputColumn id="33" name="TransactionId" lineageId="33" length="20" dataType="wstr" /><outputColumn id="34" name="Status" lineageId="34" length="50" dataType="wstr" /><outputColumn id="35" name="Amt" lineageId="35" dataType="cy" /><outputColumn id="36" name="CurrencyCode" lineageId="36" length="3" dataType="wstr" /><outputColumn id="37" name="FeeAmt" lineageId="37" dataType="cy" /><outputColumn id="38" name="NetAmt" lineageId="38" dataType="cy" /><outputColumn id="39" name="DetailId" lineageId="39" length="20" dataType="wstr" /><outputColumn id="40" name="DetailName" lineageId="40" length="1000" dataType="wstr" /><outputColumn id="41" name="DetailQty" lineageId="41" length="1000" dataType="wstr" /></outputColumns><externalMetadataColumns /></output></outputs></component>