<component id="26" name="Salesforce Bulk Result" componentClassID="{874F7595-FB5F-40FF-96AF-FBFF8250E3EF}" description="Executes a custom script." localeId="1033" version="7" 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="27" name="SourceCode" state="cdata" dataType="System.String" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="30"><arrayElement dataType="System.String"><![CDATA[My Project\AssemblyInfo.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></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_641c7f94cf21403b8e5d87b4eae38176.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_641c7f94cf21403b8e5d87b4eae38176.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2014")> 
<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("f864933e-125b-4f8f-b42e-4593312f7068")> 

' 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[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 Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal InputName As String, ByVal Buffer As PipelineBuffer, ByVal OutputMap As OutputNameMap)

        If InputID = MyBase.ComponentMetaData.InputCollection("Input").ID Then
            Input_ProcessInput(New InputBuffer(Me, InputID, True, Buffer, OutputMap))
        End If

    End Sub

    Public Overridable Sub Input_ProcessInput(ByVal Buffer As InputBuffer)

        While Buffer.NextRow()
            Input_ProcessInputRow(Buffer)
        End While

    End Sub

    Public Overridable Sub Input_ProcessInputRow(ByVal Row As InputBuffer)

    End Sub

End Class

Public Class Connections

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

    Public ReadOnly Property Connection() As IDTSConnectionManager100
        Get
            Return ParentComponent.ComponentMetaData.RuntimeConnectionCollection("Connection").ConnectionManager
        End Get
    End Property

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[main.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-2014 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.Xml
Imports System.Net
Imports System.IO
Imports System.Threading
Imports System.Globalization

Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports Microsoft.VisualBasic.FileIO
Imports CozyRoc.SqlServer.SSIS
Imports CozyRoc.SqlServer.SSIS.Attributes
Imports CozyRoc.Sforce.Service


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<SortProperties(New String() {"Connection", "JobIdVariable"})> _
<ValidateProperties("Validate")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent

    Private JobUrl_3P As String = "{0}://{1}/services/async/{2}/job/"
    Private BulkNS As String = "http://www.force.com/2009/06/asyncapi/dataload"


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Dim batchId As String = CStr(Row.Buffer(m_batchIdx))

        Try
            If m_batchId <> batchId Then
                ' Load next batch.
                m_batchId = batchId

                If String.IsNullOrEmpty(m_jobId) Then
                    ' Load job identifier.
                    m_jobId = CStr(GetVariable_(Me.JobIdVariable))
                End If

                If Not m_batchRes Is Nothing Then
                    Call m_batchRes.Dispose()
                End If

                m_batchRes = GetBatchResult_(m_service, m_jobId, m_batchId)
            End If

            ' Get batch result.
            Dim record() As String = m_batchRes.ReadFields()
            If record Is Nothing Then
                ' There is no more data.
                Exit Sub
            End If

            With Row
                .ResultId = record(0)
                .Success = Convert.ToBoolean(record(1))
                .Created = Convert.ToBoolean(record(2))
                .Error = record(3)
            End With
        Catch ex As Exception
            Call FireError_(ex.ToString())
        End Try
    End Sub ' Input_ProcessInputRow


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

        m_connection = CType( _
            MyBase.Connections.Connection.AcquireConnection(Nothing), _
            ISforceConnection)
        m_service = CType(m_connection.Connect(), SforceService)

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

        ' Get batch column index.
        Dim inputCol As IDTSInputColumn100 = input.InputColumnCollection(Me.BatchIdColumn)
        m_batchIdx = Me.HostComponent.BufferManager.FindColumnByLineageID(input.Buffer,  inputCol.LineageID)
    End Sub ' PreExecute


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

        Call m_connection.Close()
    End Sub ' PostExecute


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

        Try
            If String.IsNullOrEmpty(Me.Connection) Then
                Throw New ApplicationException("Select Salesforce connection.")
            End If

            If String.IsNullOrEmpty(Me.JobIdVariable) Then
                Throw New ApplicationException("Select job id variable.")
            End If

            If String.IsNullOrEmpty(Me.BatchIdColumn) Then
                Throw New ApplicationException("Select batch id column.")
            End If

            ' Setup batch id column.
            Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)
            Call input.InputColumnCollection.RemoveAll()
            Dim virtInput As IDTSVirtualInput100 = input.GetVirtualInput()
            Dim virtColumn As IDTSVirtualInputColumn100 = virtInput.VirtualInputColumnCollection(Me.BatchIdColumn)
            Call virtInput.SetUsageType(virtColumn.LineageID, DTSUsageType.UT_READONLY)

            ' Store connection information in the runtime connection collection, too.
            ' Cannot directly use RuntimeConnectionCollection in the property get/set
            ' because of issues with multi-threading.
            Me.ComponentMetaData.RuntimeConnectionCollection("Connection").ConnectionManagerID = Me.Connection

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

        Validate = result
    End Function    'Validate


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Select Salesforce Connection Manager.")> _
    <Connection("ConnectionType")> _
    Public Property Connection() As String
        Get
            Connection = m_sforceConnection
        End Get
        Set(ByVal value As String)
            m_sforceConnection = value
        End Set
    End Property    ' Connection


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Select job id variable.")> _
    <Variable()> _
    Public Property JobIdVariable() As String
        Get
            JobIdVariable = m_jobIdVar
        End Get
        Set(ByVal value As String)
            m_jobIdVar = value
        End Set
    End Property    ' JobIdVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Settings")> _
    <Description("Select batch id column.")> _
    <InputVirtualColumn()> _
    Public Property BatchIdColumn() As String
        Get
            BatchIdColumn = m_batchIdCol
        End Get
        Set(ByVal value As String)
            m_batchIdCol = value
        End Set
    End Property    ' BatchIdColumn
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private ReadOnly Property ConnectionType() As String()
        Get
            ConnectionType = New String() {"SFORCE"}
        End Get
    End Property    ' ConnectionType


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub FireError_(ByVal message As String)
        Dim cancel As Boolean = False
        Call MyBase.ComponentMetaData.FireError( _
            0, _
            "Salesforce Bulk Result", _
            message, _
            String.Empty, _
            0, _
            cancel)
    End Sub ' FireError_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    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_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Find the API version in use by stepping the service URL from the back.
    ' The first segment which can be converted to number is the version.
    Private Function GetServiceVersion_(ByVal url As Uri) As Double
        Dim result As Double = 27
        Dim segments As String() = url.Segments
        Dim segsCount As Integer = segments.Length

        For segIndex As Integer = segsCount - 1 To 0 Step -1
            Dim segment As String = segments(segIndex).Trim("/"c)
            If Double.TryParse(segment, NumberStyles.Any, CultureInfo.InvariantCulture, result) Then
                Exit For
            End If
        Next

        GetServiceVersion_ = result
    End Function    ' GetServiceVersion_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function PrepareRequest_( _
        ByVal service As SforceService, _
        ByVal url As String) As HttpWebRequest

        ' Setup base job request url.
        Dim serviceUri As Uri = New Uri(service.Url)
        Dim jobUrl As String = String.Format( _
            JobUrl_3P, _
            serviceUri.Scheme, _
            serviceUri.Host, _
            GetServiceVersion_(serviceUri))

        Dim result As HttpWebRequest = CType(WebRequest.Create(jobUrl + url), HttpWebRequest)
        Call result.Headers.Add("X-SFDC-Session", service.SessionHeaderValue.sessionId)

        PrepareRequest_ = result
    End Function    ' PrepareRequest_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetXmlResult_(ByVal req As HttpWebRequest) As XmlDocument
        Dim result As New XmlDocument

        Try
            Using res As WebResponse = req.GetResponse()
                Call result.Load(res.GetResponseStream())
            End Using
        Catch ex As WebException
            ' The regular exception information is not very useful. Extract error information.
            If ex.Response Is Nothing Then
                ' Error happened before server was able to respond.
                Throw
            End If

            Using errorStream As Stream = ex.Response.GetResponseStream()
                Throw New Exception(New StreamReader(errorStream).ReadToEnd(), ex)
            End Using
        End Try

        GetXmlResult_ = result
    End Function    ' GetXmlResult_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetCsvResult_(ByVal req As HttpWebRequest) As TextFieldParser
        Dim result As TextFieldParser

        Try
            m_readRes = req.GetResponse()
            result = New TextFieldParser(m_readRes.GetResponseStream())
            result.HasFieldsEnclosedInQuotes = True
            Call result.SetDelimiters(",")

            ' Skip first row which is header.
            Call result.ReadFields()
        Catch ex As WebException
            ' The regular exception information is not very useful. Extract error information.
            If ex.Response Is Nothing Then
                ' Error happened before server was able to respond.
                Throw
            End If

            Using errorStream As Stream = ex.Response.GetResponseStream()
                Throw New Exception(New StreamReader(errorStream).ReadToEnd(), ex)
            End Using
        End Try

        GetCsvResult_ = result
    End Function    ' GetCsvResult_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetBatchResult_( _
        ByVal service As SforceService, _
        ByVal jobId As String, _
        ByVal batchId As String) As TextFieldParser

        ' Loop until batch result is ready.
        While True
            Dim doc As XmlDocument = GetXmlResult_(PrepareRequest_(service, jobId + "/batch/" + batchId))
            Dim ns As XmlNamespaceManager = New XmlNamespaceManager(doc.NameTable)
            Call ns.AddNamespace("bl", BulkNS)
            Dim state As String = doc.SelectSingleNode("/bl:batchInfo/bl:state", ns).InnerText
            Select Case state
                Case "Completed"
                    ' Ready.
                    Exit While

                Case "InProgress", "Queued"
                    ' Have to wait.

                Case "Failed", "Not Processed"
                    Throw New Exception(String.Format("'{0}' batch failed or aborted.", batchId))
            End Select

            ' Wait 5 seconds and try again.
            Call Thread.Sleep(5 * 1000)
        End While

        GetBatchResult_ = GetCsvResult_(PrepareRequest_(service, jobId + "/batch/" + batchId + "/result"))
    End Function    ' GetBatchResult_
#End Region ' Internals


#Region "Attributes"
    Private m_sforceConnection As String
    Private m_jobIdVar As String
    Private m_batchIdCol As String

    Private m_connection As ISforceConnection
    Private m_service As SforceService
    Private m_batchIdx As Integer
    Private m_jobId As String
    Private m_batchId As String
    Private m_readRes As WebResponse
    Private m_batchRes As TextFieldParser
#End Region 'Attributes

End Class   ' ScriptMain
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[scriptcomponent_641c7f94cf21403b8e5d87b4eae38176.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">
  <!-- 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>{30D016F9-3734-4E33-A861-5E7D899E18F3};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <OutputType>Library</OutputType>
    <RootNamespace>ScriptComponent_641c7f94cf21403b8e5d87b4eae38176.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_641c7f94cf21403b8e5d87b4eae38176.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{CCB3237D-661B-4E42-A306-9941C5A22A8D}</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,42353,42354,42355</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,42353,42354,42355</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.Sforce, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL" />
    <Reference Include="CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies\CozyRoc.SSISPlus.2012.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.SqlServer.ManagedDTS, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SqlServer.ManagedDTS\v4.0_11.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.ManagedDTS.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Web.Services" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.TxScript, Version=11.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=11.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=11.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=11.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="{30D016F9-3734-4E33-A861-5E7D899E18F3}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{B3A685AA-7EAF-4BC6-9940-57959FA5AC07}" ApplicationType="usd" Language="vb" TemplatesPath="" DebugInfoExeName="devenv.exe" DebugInfoCommandLine="/vstaHostDebugUri:&quot;vstadebug6d04f261-8af8-4ad7-8dd0-4405c0bd80c7/3bc03a18-a32e-41b3-adbc-f711335dbe40&quot;" />
        <Host Name="SSIS_ScriptComponent" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC110</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <PropertyGroup>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
  </PropertyGroup>
  <PropertyGroup>
    <TargetFrameworkProfile>
    </TargetFrameworkProfile>
  </PropertyGroup>
</Project>]]></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 InputBuffer
    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 [ResultId]() As String
        Set
            Me(0) = Value
        End Set
    End Property
    Public WriteOnly Property [ResultId_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 [Success]() As Boolean
        Set
            Me(1) = Value
        End Set
    End Property
    Public WriteOnly Property [Success_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 [Created]() As Boolean
        Set
            Me(2) = Value
        End Set
    End Property
    Public WriteOnly Property [Created_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 [Error]() As String
        Set
            Me(3) = Value
        End Set
    End Property
    Public WriteOnly Property [Error_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 Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {"ResultId", "Success", "Created", "Error"}
        End Get
    End Property

    Public Overloads Function NextRow() As Boolean
        NextRow = MyBase.NextRow()
    End Function

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\Settings.settings]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></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[My Project\Settings.Designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></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[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:NoContent>Reference;Import;Folder</msb:NoContent>
		<msb:ProjectId>{95ABA433-AB93-43FE-8958-4898B1C97B43}</msb:ProjectId>
		<msb:DisplayName>scriptcomponent_641c7f94cf21403b8e5d87b4eae38176</msb:DisplayName>
		<msb:CodeName>scriptcomponent_641c7f94cf21403b8e5d87b4eae38176</msb:CodeName>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:File Include="BufferWrapper.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="main.vb"/>
		<msb:File Include="My Project\AssemblyInfo.vb"/>
		<msb:File Include="My Project\Resources.Designer.vb"/>
		<msb:File Include="My Project\Settings.Designer.vb"/>
		<msb:File Include="My Project\Resources.resx"/>
		<msb:File Include="My Project\Settings.settings"/>
		<msb:Project Include="scriptcomponent_641c7f94cf21403b8e5d87b4eae38176.vbproj"/>
	</msb:ItemGroup>
</c:Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\Resources.resx]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></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[My Project\Resources.Designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></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></arrayElements></property><property id="28" 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_641c7f94cf21403b8e5d87b4eae38176.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
CglzawAACnoRBCwHEQRvZwAACtwoNwAACt4ABwoGKgABKAAAAgANAA4bAAoAAAAAAgBFABNYAAwA
AAAAAAAGACEnAERGAAABGzAEAIoAAAAdAAARAgNvZAAACn0UAAAEAnsUAAAEb2UAAApzbAAACgsH
F29tAAAKBxeNIwAAARMEEQQWcpYCAHCiEQRvbgAACgdvMwAACibeQCUoNQAACgwIb2gAAAotAv4a
CG9oAAAKb2UAAAoNCXNpAAAKb2oAAAoIc2sAAAp6CSwGCW9nAAAK3Cg3AAAK3gAHCgYqAAABHAAA
AgBjABJ1AAoAAAAAAAAAAEZGAEBGAAABEzAHAOEAAAAeAAARAgIDBHKaAgBwBShvAAAKbzQAAAZv
NQAABgsHb3AAAApzcQAACgwIcqoCAHACewsAAARvcgAACgdysAIAcAhvcwAACm90AAAKDQkTBBEE
ct4CAHAWKDAAAAoWMwIrYhEEcvICAHAWKDAAAAoWLkMRBHIIAwBwFigwAAAKFjMCKzERBHIWAwBw
FigwAAAKFi4QEQRyJAMAcBYoMAAAChYzEXJAAwBwBSh1AAAKc3YAAAp6IIgTAAAodwAACjhA////
AgIDBHKaAgBwBXJ+AwBwKHgAAApvNAAABm82AAAGCgYqAAAAHgIoFwAACioTMAIALQAAAB8AABF+
FgAABC0gco4DAHDQDAAAAigUAAAKb4EAAApzggAACgsHgBYAAAR+FgAABCoAAAATMAEABgAAACAA
ABF+FwAABCoAAB4CgBcAAAQqQnMXAAAKKBEAAAqAGQAABCoAAAAeAiiDAAAKKhswAQA/AAAAIQAA
EX4YAAAELTJ+GQAABCgRAAAKKIQAAAp+GAAABC0ccz0AAAaAGAAABN4QfhkAAAQoEQAACiiFAAAK
3H4YAAAEKgABEAAAAgAdAAwpABAAAAAAtAAAAM7K774BAAAAkQAAAGxTeXN0ZW0uUmVzb3VyY2Vz
LlJlc291cmNlUmVhZGVyLCBtc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRy
YWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkjU3lzdGVtLlJlc291cmNlcy5SdW50
aW1lUmVzb3VyY2VTZXQCAAAAAAAAAAAAAABQQURQQURQtAAAAEJTSkIBAAEAAAAAAAwAAAB2NC4w
LjMwMzE5AAAAAAUAbAAAABQQAAAjfgAAgBAAAGAVAAAjU3RyaW5ncwAAAADgJQAAwAMAACNVUwCg
KQAAEAAAACNHVUlEAAAAsCkAAJwGAAAjQmxvYgAAAAAAAAACAAABVxWiCQkPAAAA+iUzABYAAAEA
AABjAAAADQAAABkAAAA+AAAAKAAAAJEAAABFAAAAIQAAAAcAAAAXAAAAGwAAAAkAAAABAAAACgAA
AAEAAAACAAAAAwAAAAIAAAAAACQVAQAAAAAACgCpAX8BCgDdAb8BBgDtAeYBCgBFAn8BBgDDAuYB
CgBFAxsDDgCXA4ADEgDmA8UDFgAXBMUDEgAmBMUDDgCkBYADGgBfBjcGHgBmB+YBHgCMB4EHIgDB
B6oHJgDyB+cHCgAtCBAIDgCUCIADHgDaCIEHBgA3CSYJBgBkCU8JHgDFCbAJHgASCvwJHgArCvwJ
HgBYCkAKBgCCCm8KCgDBCpoKCgDZChMAHgAOC/EKBgBDCyMLBgBhC+YBBgCFC+YBCgCeCxMABgDi
C8MLBgD2C+YBBgAODOYBBgAoDOYBEgAwDMUDBgA9DOYBKgCgDHcMKgDPDHcMKgD6DHcMKgAXDXcM
KgBaDXcMBgCJDeYBCgCeDZoKCgCqDZoKBgDjDeYBCgD1DZoKKgAjDncMBgBQDuYBKgBWDncMFgCN
DsUDKgCxDncMKgACD3cMKgAcD3cMBgAwD+YBKgBfD3cMKgCkD3cMGgDyDzcGGgADEDcGGgBBEDcG
BgBlEOYBBgCEEOYBBgCLEE8JBgCYEOYBHgDbEIEHHgDtEIEHIgANEaoHHgBEEYEHBgBbEVERBgCF
EeYBBgCeEVERJgDhEecHJgD1EecHJgAdEucHBgBVEkQSEgBiEsUDDgCrEokSDgDHEokSDgDfEokS
HgD7EvwJHgAQE/wJDgAiE4kSDgA2E4kSBgBaE0gTBgBwE0QSBgCDE28KBgDsEyMLBgAMFCMLBgBE
FCoUBgBdFEgTBgB6FMMLBgCIFEgTBgCjFEgTBgC+FEgTBgDXFEgTBgDwFEgTBgANFUgTAAAAAAEA
AAAAAAEAAQAAAAAAKQA3AAUAAQABAAAAAAByADcACQABAAIAAAEQAH0ANwANAAEAAwAFAQAAhwAA
AA0ABQAIAAUBAACVAAAADQAFAA8AAQAAALAAvAAdAAYAEQABAAAA9AC8AC0ABgAeAAEAAAACAbwA
DQAIACIAAQAAAA4BvAANAAkAJAABAAAAGAG8ACAACgAlAAAAAAAjAS8BDQAWADgAAAEQAHQBvABZ
ABgAPAAxAAgCIAAxADECLQAxAFMCOgAxAHgCRwAhAFQDkAAGAAIB2wAGAA4B3wABAAQG8wABAAQG
8wABAJIGBwEBAJwGBwEBAGkIBwEBAHwIBwEBAIcIBwEBAKYIOgEBALMIPgEBAL0IQgEBAMgIBwEB
ANAIBwEBAOYIRQEBAPAISQERAEcJTQERAHAJUQERAN0JbwERAOUJcwFQIAAAAAAGGLkBEwABAFgg
AAAAAAYYuQETAAEAYCAAAAAAERj0ARcAAQCMIAAAAAATCPsBGwABAKQgAAAAABMIIQIoAAEAvCAA
AAAAEwhKAjUAAQDUIAAAAAATCGgCQgABAOwgAAAAAEYCrgJjAAEACCEAAAAARgK3AmgAAgAcIQAA
AACDAMgCbAACADQhAAAAAEYC0AJxAAIASCEAAAAAEQDZAngAAgBkIQAAAAABAPcCgAADAIAhAAAA
AAYYuQETAAQAiCEAAAAAAwgLA4sABAC8IQAAAAAGGLkBEwAEANAhAAAAAAYYuQGvAAQA4CEAAAAA
RgpgBLsACQD0IQAAAAAGCHcEwAAJAAAiAAAAAAYIigTFAAoAHCIAAAAABgieBMUACwAsIgAAAAAG
CKoExQAMAEgiAAAAAAYIvQTFAA0AWCIAAAAABgjJBMUADgB0IgAAAAAGCNwEwAAPAIAiAAAAAAYI
5gTFABAAnCIAAAAARgr3BLsAEQDUIgAAAACGAA8FygARAOwiAAAAAIYAFwXKABEABCMAAAAABhi5
ARMAEQAkIwAAAABGArgF4wARAFQjAAAAAEYD1wXtABUAaCMAAAAARgPqBe0AFgBsIwAAAAAGGLkB
9wAXAHwjAAAAAAYIeAb9ABgAqCMAAAAABhi5AfcAGAC4IwAAAAAGGLkBEwAZANgjAAAAAEYC6gXt
ABkA2CQAAAAARgKjBhMAGgBoJQAAAABGAq4GEwAaAHwlAAAAAAYAugYKARoAcCYAAAAABgh4BnEA
GwCIJgAAAAAGCM4GwAAbAJQmAAAAAAYI4wZxABwArCYAAAAABgj1BsAAHAC4JgAAAAAGCAcHcQAd
ANAmAAAAAAYIGQfAAB0A3CYAAAAAAQgrB7sAHgD8JgAAAAABAD4HwAAeACgnAAAAAAEAUQcQAR8A
eCcAAAAAAQBqBxUBIADkJwAAAAABAM8HGwEhAFQoAAAAAAEA/gcjASMA+CgAAAAAAQA9CCoBJACs
KQAAAAABAEsIMQElAJwqAAAAAAMYuQETACgApCoAAAAAFgh8CVUBKADgKgAAAAAWCJAJWgEoAPQq
AAAAABYInAlfASgA/CoAAAAAERj0ARcAKQAQKwAAAAAGGLkBEwApABgrAAAAABYI8gl2ASkAAAAB
ALUCAAABAO4CAAABAO4CAAABADQEAAACAD4EAAADAEcEAAAEAE8EAAAFAFYEAAABAIQEAAABAIQE
AAABAIQEAAABAIQEAAABAIQEAAABAIQEAAABAIQEAAABAIQEAAABAMUFAAACAM0FAAADAE8EAAAE
AFYEAAABAE8EAAABAAAGAAABADQEAAABADQEAAABAAAGAAABAMMGAAABAN0GAAABAN0GAAABAN0G
AAABAEkHAAABAF4HAAABAH0HAAABAN8HAAACAH0HAAABAAwIAAABAAwIAAABAN8HAAACAFsIAAAD
AGEIAAABAIQECQC5ARMAuQC5AYAByQC5AY8BEQC5ARMA0QC5ARMAJAC5ARMALAC5ARMANAC5ARMA
PAC5ARMAJAALA4sALAALA4sANAALA4sAPAALA4sA2QC5ARMA4QC5ARMA6QC5AcAA8QBSCykCGQCu
AmMAGQC3AmgAKQBzCzYCGQDQAnEAAQGPC0YCGQC5ARMACQG5AVYCRABUA5AATADyCYsATAC5C9MC
TAC5ARMAEQG5AcUAOQC5Aa8AOQD9C+0COQAGDPMCIQG5AcAAMQEPBcoAMQEXBcoAOQG5AcUAWQC5
ARMAQQC5DP8CQQHmDAUDSQEHDQsDUQEQDWgAQQE6DRIDWQEHDRgDYQFzDf0AOQCTDSQDSQAHDSkD
cQHQAi4DeQG0DTMDGQHCDToDiQDQDRMAiQDYDbsAgQHrDToDiQEBDj8DaQHQAnEAiQERDhcAQQCj
BhMAYQA2DlEDkQBIDlYDUQFzDloDoQEHDWADWQCfDmcDqQHGDm0DUQGTDWgAkQHYDmgAsQHmDnMD
QQCuBhMAkQD8DhMAyQG5AcAAoQFFDxMAUQFPD4IDwQGDD4gD0QEHDY4DuQHYDmgAwQGxD5UDYQG+
D8AAaQHWD3EAGQHiDwcBQQHoD64DQQAcELkD6QEyEL8D4QEHDcgD8QHyCVYD4QFREBMAaQBYELsA
GQFqENcDqQBvEFoBAQKoEN0DeQCxEHEAaQC5AcAAaQC5EHEAaQDEEHEAGQHNEPYDGQHUEP4DGQLm
EAQEcQABEQsEeQAbEREEKQIyEXEAIQJAEY8BgQC5ARMAcQBiESEEmQBuESYEgQCAESwEQQLQDRMA
MQKRESEESQK5ASwESQKrEXEAaQG5ATMEiQC5ASwEiQC1EcUAiQDTEUoEGQHUEF8EgQACEmYEUQK5
AWwEUQIQEo8BYQIlEnMEYQI2EnEAGQHNEH0EaQG5AcAAaQJcEoMEGQHUEIgEcQK5ARMAeQK5AcAA
gQK5AUoEiQK5ARMAkQK5AcAAmQK5AcAAoQK5AcAAqQK5ARMAKQBjE1MFoQC5AVkFsQC5ARMAuQJ4
E3YFuQJ+E3YFwQK5ARMAyQK5AfMC0QK5ARMA2QK5AcAA4QK5AcAA6QK5AcAA8QK5AcAA+QK5AcAA
AQO5AcAACQO5AcAAEQO5AcAAGQO5AcAAKQCDABgCLgBjBOICLgB7BIoGLgCDBOICLgAjAScGLgCL
BE0GLgBbBP0FLgBrBC0GLgBzBE0GLgDrAOICLgA7BIAFLgBDBIkFLgBLBKgFLgBTBPAFQAArAK4B
QAATAIYBQwATAIYBQwAbAJUBSQCDAAQCYwAbAJUBYwATAIYBaQCDAOMBgAArAK4BgwB7AK4BgwBz
AK4BgwAbAJUBiQCDAPABoAArAK4BowATAIYBowDDAF4CwAArAK4BwwDrAOICwwATAIYB4AArAK4B
4wAjAeICAAETAIYBAAErAK4BAwEjAeICIAETAIYBIAErAK4BQAErAK4BQAETAIYBYAETAIYBYAEr
AK4BYwEjAeICYwHbA6oEYwHTA5wEYwHLA64BgAErAK4BoAErAK4BwAETAIYBwAErAK4B4AErAK4B
AAIrAK4BAAITAIYBKQLrAwsFKQL7A/cEKQLzA+kESQLzA+kESQIDBK4BSQLrAzYFaQLzA+kEaQLj
A64BaQLrA8wEqQITAG0FyQITAG0F6QIzBK4BQAQjAeICgAQjAeICzwHUAdkB3gEuAjICPQJCAlEC
UQLZAugC+AIuAi4CHwNGA3kDnQNCAkICQgL4Ai4CzwPqAxcEOwRQBJAEYQVoBXsFBAABAAYABQAH
AAYACQAQAAsAEQAMABUADQAXAAAA3QFPAAAAlgJUAAAARQJZAAAAogJeAAAAXgOYAAAAIwXOAAAA
NgXTAAAAPwXXAAAATwXXAAAAVwXXAAAAZgXXAAAAbgXXAAAAfQXTAAAAgwXXAAAAkAXOAAAAhwYC
AQAAhwbTAAAA+wjTAAAACQnTAAAAFwnOAAAANwllAQAAqAlqAQAAhAR7AQIABAADAAIABQAFAAIA
BgAHAAIABwAJAAIADwALAAIAEgANAAEAEwAPAAEAFAARAAEAFQATAAEAFgAVAAEAFwAXAAEAGAAZ
AAEAGQAbAAEAGgAdAAIAGwAfAAIAIwAhAAIAKgAjAAEAKwAjAAIALAAlAAEALQAlAAIALgAnAAEA
LwAnAAIAMAApAAIAOQArAAIAOgAtAAEAOwAtAAIAPgAvAHUAdQCIALMBugHBAcgBwALHAgSAAAAB
AAAAAAAAAAAAAAAAALwAAAAEAAAAAAAAAAAAAAABAAoAAAAAAAoAAAAAAAAAAAAAAAoAEwAAAAAA
AQAAAAAAAAAAAAAAnQBqAwAAAAALAAAAAAAAAAAAAACmAKgDAAAAAAsAAAAAAAAAAAAAAKYA9gMA
AAAACwAAAAAAAAAAAAAApgAUBgAAAAAEAAAAAAAAAAAAAAABAOYBAAAAAAEAAAAAAAAAAAAAAJ0A
mwcAAAAABAAAAAAAAAAAAAAAAQDnBwAAAAALAAAAAAAAAAAAAACmAFMMAAAAAAAAAAABAAAAoBMA
AAUABAAGAAQAAAAQAAwA7AIAABAAGQDsAgAAAAAbAOwCLQBMAi0AzgIAAAA8TW9kdWxlPgBtc2Nv
cmxpYgBNaWNyb3NvZnQuVmlzdWFsQmFzaWMATXlBcHBsaWNhdGlvbgBTY3JpcHRDb21wb25lbnRf
NjQxYzdmOTRjZjIxNDAzYjhlNWQ4N2I0ZWFlMzgxNzYudmJwcm9qLk15AE15Q29tcHV0ZXIATXlQ
cm9qZWN0AE15V2ViU2VydmljZXMAVGhyZWFkU2FmZU9iamVjdFByb3ZpZGVyYDEASW5wdXRCdWZm
ZXIAU2NyaXB0Q29tcG9uZW50XzY0MWM3Zjk0Y2YyMTQwM2I4ZTVkODdiNGVhZTM4MTc2LnZicHJv
agBVc2VyQ29tcG9uZW50AENvbm5lY3Rpb25zAFZhcmlhYmxlcwBTY3JpcHRNYWluAE15UmVzb3Vy
Y2VzAFNjcmlwdENvbXBvbmVudF82NDFjN2Y5NGNmMjE0MDNiOGU1ZDg3YjRlYWUzODE3Ni52YnBy
b2ouTXkuUmVzb3VyY2VzAE15U2V0dGluZ3MATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkFwcGxpY2F0
aW9uU2VydmljZXMAQXBwbGljYXRpb25CYXNlAC5jdG9yAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5E
ZXZpY2VzAENvbXB1dGVyAFN5c3RlbQBPYmplY3QALmNjdG9yAGdldF9Db21wdXRlcgBtX0NvbXB1
dGVyT2JqZWN0UHJvdmlkZXIAZ2V0X0FwcGxpY2F0aW9uAG1fQXBwT2JqZWN0UHJvdmlkZXIAVXNl
cgBnZXRfVXNlcgBtX1VzZXJPYmplY3RQcm92aWRlcgBnZXRfV2ViU2VydmljZXMAbV9NeVdlYlNl
cnZpY2VzT2JqZWN0UHJvdmlkZXIAQXBwbGljYXRpb24AV2ViU2VydmljZXMARXF1YWxzAG8AR2V0
SGFzaENvZGUAVHlwZQBHZXRUeXBlAFRvU3RyaW5nAENyZWF0ZV9fSW5zdGFuY2VfXwBUAGluc3Rh
bmNlAERpc3Bvc2VfX0luc3RhbmNlX18AZ2V0X0dldEluc3RhbmNlAE1pY3Jvc29mdC5WaXN1YWxC
YXNpYy5NeVNlcnZpY2VzLkludGVybmFsAENvbnRleHRWYWx1ZWAxAG1fQ29udGV4dABHZXRJbnN0
YW5jZQBDb3p5Um9jLlNTSVNQbHVzLjIwMTIAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJUwBTY3JpcHRC
dWZmZXJQbHVzAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuVHhTY3JpcHQATWljcm9zb2Z0LlNxbFNlcnZl
ci5EdHMuUGlwZWxpbmUAU2NyaXB0Q29tcG9uZW50AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuUGlwZWxp
bmVIb3N0AFBpcGVsaW5lQnVmZmVyAE91dHB1dE5hbWVNYXAAQ29tcG9uZW50AE9iamVjdElEAElz
SW5wdXQAQnVmZmVyAE91dHB1dE1hcABnZXRfU3RhdGljSW5wdXRDb2x1bW5zAHNldF9SZXN1bHRJ
ZABWYWx1ZQBzZXRfUmVzdWx0SWRfSXNOdWxsAHNldF9TdWNjZXNzAHNldF9TdWNjZXNzX0lzTnVs
bABzZXRfQ3JlYXRlZABzZXRfQ3JlYXRlZF9Jc051bGwAc2V0X0Vycm9yAHNldF9FcnJvcl9Jc051
bGwAZ2V0X1N0YXRpY091dHB1dENvbHVtbnMATmV4dFJvdwBFbmRPZlJvd3NldABTdGF0aWNJbnB1
dENvbHVtbnMAUmVzdWx0SWQAUmVzdWx0SWRfSXNOdWxsAFN1Y2Nlc3MAU3VjY2Vzc19Jc051bGwA
Q3JlYXRlZABDcmVhdGVkX0lzTnVsbABFcnJvcgBFcnJvcl9Jc051bGwAU3RhdGljT3V0cHV0Q29s
dW1ucwBTY3JpcHRDb21wb25lbnRQbHVzAFByb2Nlc3NJbnB1dABJbnB1dElEAElucHV0TmFtZQBJ
bnB1dF9Qcm9jZXNzSW5wdXQASW5wdXRfUHJvY2Vzc0lucHV0Um93AFJvdwBQYXJlbnRDb21wb25l
bnQATWljcm9zb2Z0LlNxbFNlcnZlci5EVFNSdW50aW1lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVy
LkR0cy5SdW50aW1lLldyYXBwZXIASURUU0Nvbm5lY3Rpb25NYW5hZ2VyMTAwAGdldF9Db25uZWN0
aW9uAENvbm5lY3Rpb24ASm9iVXJsXzNQAEJ1bGtOUwBQcmVFeGVjdXRlAFBvc3RFeGVjdXRlAFZh
bGlkYXRlAGVyck1lc3NhZ2UAc2V0X0Nvbm5lY3Rpb24AdmFsdWUAZ2V0X0pvYklkVmFyaWFibGUA
c2V0X0pvYklkVmFyaWFibGUAZ2V0X0JhdGNoSWRDb2x1bW4Ac2V0X0JhdGNoSWRDb2x1bW4AZ2V0
X0Nvbm5lY3Rpb25UeXBlAEZpcmVFcnJvcl8AbWVzc2FnZQBHZXRWYXJpYWJsZV8AdmFyTmFtZQBV
cmkAR2V0U2VydmljZVZlcnNpb25fAHVybABTeXN0ZW0uTmV0AEh0dHBXZWJSZXF1ZXN0AENvenlS
b2MuU2ZvcmNlAENvenlSb2MuU2ZvcmNlLlNlcnZpY2UAU2ZvcmNlU2VydmljZQBQcmVwYXJlUmVx
dWVzdF8Ac2VydmljZQBTeXN0ZW0uWG1sAFhtbERvY3VtZW50AEdldFhtbFJlc3VsdF8AcmVxAE1p
Y3Jvc29mdC5WaXN1YWxCYXNpYy5GaWxlSU8AVGV4dEZpZWxkUGFyc2VyAEdldENzdlJlc3VsdF8A
R2V0QmF0Y2hSZXN1bHRfAGpvYklkAGJhdGNoSWQAbV9zZm9yY2VDb25uZWN0aW9uAG1fam9iSWRW
YXIAbV9iYXRjaElkQ29sAElTZm9yY2VDb25uZWN0aW9uAG1fY29ubmVjdGlvbgBtX3NlcnZpY2UA
bV9iYXRjaElkeABtX2pvYklkAG1fYmF0Y2hJZABXZWJSZXNwb25zZQBtX3JlYWRSZXMAbV9iYXRj
aFJlcwBKb2JJZFZhcmlhYmxlAEJhdGNoSWRDb2x1bW4AQ29ubmVjdGlvblR5cGUAU3lzdGVtLlJl
c291cmNlcwBSZXNvdXJjZU1hbmFnZXIAX3Jlc01ncgBTeXN0ZW0uR2xvYmFsaXphdGlvbgBDdWx0
dXJlSW5mbwBfcmVzQ3VsdHVyZQBnZXRfUmVzb3VyY2VNYW5hZ2VyAGdldF9DdWx0dXJlAHNldF9D
dWx0dXJlAEN1bHR1cmUAU3lzdGVtLkNvbmZpZ3VyYXRpb24AQXBwbGljYXRpb25TZXR0aW5nc0Jh
c2UAbV9WYWx1ZQBtX1N5bmNPYmplY3QAZ2V0X1ZhbHVlAFN5c3RlbS5Db21wb25lbnRNb2RlbABF
ZGl0b3JCcm93c2FibGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxlU3RhdGUAU3lzdGVtLkNvZGVE
b20uQ29tcGlsZXIAR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBTeXN0ZW0uRGlhZ25vc3RpY3MARGVi
dWdnZXJIaWRkZW5BdHRyaWJ1dGUATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkNvbXBpbGVyU2Vydmlj
ZXMAU3RhbmRhcmRNb2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5hbWVBdHRyaWJ1dGUAU3lzdGVt
LkNvbXBvbmVudE1vZGVsLkRlc2lnbgBIZWxwS2V5d29yZEF0dHJpYnV0ZQBTeXN0ZW0uUnVudGlt
ZS5Db21waWxlclNlcnZpY2VzAFJ1bnRpbWVIZWxwZXJzAEdldE9iamVjdFZhbHVlAFJ1bnRpbWVU
eXBlSGFuZGxlAEdldFR5cGVGcm9tSGFuZGxlAEFjdGl2YXRvcgBDcmVhdGVJbnN0YW5jZQBNeUdy
b3VwQ29sbGVjdGlvbkF0dHJpYnV0ZQBzZXRfVmFsdWUAU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNl
cnZpY2VzAENvbVZpc2libGVBdHRyaWJ1dGUAU3RyaW5nAHNldF9JdGVtAFNldE51bGwASW52YWxp
ZE9wZXJhdGlvbkV4Y2VwdGlvbgBCb29sZWFuAFNjcmlwdEJ1ZmZlcgBDTFNDb21wbGlhbnRBdHRy
aWJ1dGUATWljcm9zb2Z0LlNxbFNlcnZlci5EVFNQaXBlbGluZVdyYXAATWljcm9zb2Z0LlNxbFNl
cnZlci5EdHMuUGlwZWxpbmUuV3JhcHBlcgBJRFRTQ29tcG9uZW50TWV0YURhdGExMDAAZ2V0X0Nv
bXBvbmVudE1ldGFEYXRhAElEVFNJbnB1dENvbGxlY3Rpb24xMDAAZ2V0X0lucHV0Q29sbGVjdGlv
bgBJRFRTSW5wdXQxMDAAZ2V0X0l0ZW0AZ2V0X0lEAElEVFNSdW50aW1lQ29ubmVjdGlvbkNvbGxl
Y3Rpb24xMDAAZ2V0X1J1bnRpbWVDb25uZWN0aW9uQ29sbGVjdGlvbgBJRFRTUnVudGltZUNvbm5l
Y3Rpb24xMDAAZ2V0X0Nvbm5lY3Rpb25NYW5hZ2VyAEV4Y2VwdGlvbgBnZXRfQnVmZmVyAENvbnZl
cnNpb25zAE9wZXJhdG9ycwBDb21wYXJlU3RyaW5nAElzTnVsbE9yRW1wdHkARGlzcG9zZQBSZWFk
RmllbGRzAENvbnZlcnQAVG9Cb29sZWFuAFByb2plY3REYXRhAFNldFByb2plY3RFcnJvcgBDbGVh
clByb2plY3RFcnJvcgBJRFRTSW5wdXRDb2x1bW4xMDAAQWNxdWlyZUNvbm5lY3Rpb24AQ29ubmVj
dABJbnQzMgBJRFRTSW5wdXRDb2x1bW5Db2xsZWN0aW9uMTAwAGdldF9JbnB1dENvbHVtbkNvbGxl
Y3Rpb24AUGlwZWxpbmVDb21wb25lbnQAZ2V0X0hvc3RDb21wb25lbnQASURUU0J1ZmZlck1hbmFn
ZXIxMDAAZ2V0X0J1ZmZlck1hbmFnZXIAZ2V0X0xpbmVhZ2VJRABGaW5kQ29sdW1uQnlMaW5lYWdl
SUQAQ2xvc2UASURUU1ZpcnR1YWxJbnB1dENvbHVtbjEwMABJRFRTVmlydHVhbElucHV0MTAwAEFw
cGxpY2F0aW9uRXhjZXB0aW9uAFJlbW92ZUFsbABHZXRWaXJ0dWFsSW5wdXQASURUU1ZpcnR1YWxJ
bnB1dENvbHVtbkNvbGxlY3Rpb24xMDAAZ2V0X1ZpcnR1YWxJbnB1dENvbHVtbkNvbGxlY3Rpb24A
RFRTVXNhZ2VUeXBlAFNldFVzYWdlVHlwZQBzZXRfQ29ubmVjdGlvbk1hbmFnZXJJRABnZXRfTWVz
c2FnZQBFbXB0eQBGaXJlRXJyb3IASURUU1ZhcmlhYmxlczEwMABJRFRTVmFyaWFibGVEaXNwZW5z
ZXIxMDAAZ2V0X1ZhcmlhYmxlRGlzcGVuc2VyAExvY2tPbmVGb3JSZWFkAElEVFNWYXJpYWJsZTEw
MABVbmxvY2sAZ2V0X1NlZ21lbnRzAENoYXIAVHJpbQBnZXRfSW52YXJpYW50Q3VsdHVyZQBEb3Vi
bGUATnVtYmVyU3R5bGVzAElGb3JtYXRQcm92aWRlcgBUcnlQYXJzZQBnZXRfVXJsAGdldF9TY2hl
bWUAZ2V0X0hvc3QARm9ybWF0AENvbmNhdABXZWJSZXF1ZXN0AENyZWF0ZQBXZWJIZWFkZXJDb2xs
ZWN0aW9uAGdldF9IZWFkZXJzAFNlc3Npb25IZWFkZXIAZ2V0X1Nlc3Npb25IZWFkZXJWYWx1ZQBn
ZXRfc2Vzc2lvbklkAEFkZABXZWJFeGNlcHRpb24AU3lzdGVtLklPAFN0cmVhbQBHZXRSZXNwb25z
ZQBHZXRSZXNwb25zZVN0cmVhbQBMb2FkAElEaXNwb3NhYmxlAGdldF9SZXNwb25zZQBTdHJlYW1S
ZWFkZXIAUmVhZFRvRW5kAHNldF9IYXNGaWVsZHNFbmNsb3NlZEluUXVvdGVzAFNldERlbGltaXRl
cnMAWG1sTmFtZXNwYWNlTWFuYWdlcgBYbWxOYW1lVGFibGUAZ2V0X05hbWVUYWJsZQBBZGROYW1l
c3BhY2UAWG1sTm9kZQBTZWxlY3RTaW5nbGVOb2RlAGdldF9Jbm5lclRleHQAU3lzdGVtLlRocmVh
ZGluZwBUaHJlYWQAU2xlZXAAU1NJU1NjcmlwdENvbXBvbmVudEVudHJ5UG9pbnRBdHRyaWJ1dGUA
Q296eVJvYy5TcWxTZXJ2ZXIuU1NJUy5BdHRyaWJ1dGVzAFZhbGlkYXRlUHJvcGVydGllc0F0dHJp
YnV0ZQBTb3J0UHJvcGVydGllc0F0dHJpYnV0ZQBJbnB1dFZpcnR1YWxDb2x1bW5BdHRyaWJ1dGUA
RGVzY3JpcHRpb25BdHRyaWJ1dGUAQ2F0ZWdvcnlBdHRyaWJ1dGUAQ29ubmVjdGlvbkF0dHJpYnV0
ZQBWYXJpYWJsZUF0dHJpYnV0ZQBTeXN0ZW0uUmVmbGVjdGlvbgBBc3NlbWJseQBnZXRfQXNzZW1i
bHkATW9uaXRvcgBFbnRlcgBFeGl0AERlYnVnZ2VyTm9uVXNlckNvZGVBdHRyaWJ1dGUAU2NyaXB0
Q29tcG9uZW50XzY0MWM3Zjk0Y2YyMTQwM2I4ZTVkODdiNGVhZTM4MTc2LnZicHJvai5SZXNvdXJj
ZXMucmVzb3VyY2VzAENvbXBpbGF0aW9uUmVsYXhhdGlvbnNBdHRyaWJ1dGUAUnVudGltZUNvbXBh
dGliaWxpdHlBdHRyaWJ1dGUAU3lzdGVtLlJ1bnRpbWUuVmVyc2lvbmluZwBUYXJnZXRGcmFtZXdv
cmtBdHRyaWJ1dGUAQXNzZW1ibHlGaWxlVmVyc2lvbkF0dHJpYnV0ZQBHdWlkQXR0cmlidXRlAEFz
c2VtYmx5VHJhZGVtYXJrQXR0cmlidXRlAEFzc2VtYmx5Q29weXJpZ2h0QXR0cmlidXRlAEFzc2Vt
Ymx5UHJvZHVjdEF0dHJpYnV0ZQBBc3NlbWJseUNvbXBhbnlBdHRyaWJ1dGUAQXNzZW1ibHlEZXNj
cmlwdGlvbkF0dHJpYnV0ZQBBc3NlbWJseVRpdGxlQXR0cmlidXRlAFNjcmlwdENvbXBvbmVudF82
NDFjN2Y5NGNmMjE0MDNiOGU1ZDg3YjRlYWUzODE3Ni52YnByb2ouZGxsAACAm0kAcwBOAHUAbABs
ACAAcAByAG8AcABlAHIAdAB5ACAAYwBhAG4AbgBvAHQAIABiAGUAIABzAGUAdAAgAHQAbwAgAEYA
YQBsAHMAZQAuACAAQQBzAHMAaQBnAG4AIABhACAAdgBhAGwAdQBlACAAdABvACAAdABoAGUAIABj
AG8AbAB1AG0AbgAgAGkAbgBzAHQAZQBhAGQALgAAEVIAZQBzAHUAbAB0AEkAZAAAD1MAdQBjAGMA
ZQBzAHMAAA9DAHIAZQBhAHQAZQBkAAALRQByAHIAbwByAAALSQBuAHAAdQB0AAAVQwBvAG4AbgBl
AGMAdABpAG8AbgAAQ3sAMAB9ADoALwAvAHsAMQB9AC8AcwBlAHIAdgBpAGMAZQBzAC8AYQBzAHkA
bgBjAC8AewAyAH0ALwBqAG8AYgAvAABdaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGYAbwByAGMAZQAu
AGMAbwBtAC8AMgAwADAAOQAvADAANgAvAGEAcwB5AG4AYwBhAHAAaQAvAGQAYQB0AGEAbABvAGEA
ZAAAO1MAZQBsAGUAYwB0ACAAUwBhAGwAZQBzAGYAbwByAGMAZQAgAGMAbwBuAG4AZQBjAHQAaQBv
AG4ALgAAL1MAZQBsAGUAYwB0ACAAagBvAGIAIABpAGQAIAB2AGEAcgBpAGEAYgBsAGUALgAAL1MA
ZQBsAGUAYwB0ACAAYgBhAHQAYwBoACAAaQBkACAAYwBvAGwAdQBtAG4ALgAADVMARgBPAFIAQwBF
AAAtUwBhAGwAZQBzAGYAbwByAGMAZQAgAEIAdQBsAGsAIABSAGUAcwB1AGwAdAAAHVgALQBTAEYA
RABDAC0AUwBlAHMAcwBpAG8AbgABAywAAA8vAGIAYQB0AGMAaAAvAAAFYgBsAAAtLwBiAGwAOgBi
AGEAdABjAGgASQBuAGYAbwAvAGIAbAA6AHMAdABhAHQAZQAAE0MAbwBtAHAAbABlAHQAZQBkAAAV
SQBuAFAAcgBvAGcAcgBlAHMAcwAADVEAdQBlAHUAZQBkAAANRgBhAGkAbABlAGQAABtOAG8AdAAg
AFAAcgBvAGMAZQBzAHMAZQBkAAA9JwB7ADAAfQAnACAAYgBhAHQAYwBoACAAZgBhAGkAbABlAGQA
IABvAHIAIABhAGIAbwByAHQAZQBkAC4AAQ8vAHIAZQBzAHUAbAB0AAAxTQB5AC4AUgBlAHMAbwB1
AHIAYwBlAHMALgBNAHkAUgBlAHMAbwB1AHIAYwBlAHMAAKiGAdtMiz5BrMZ/71C/B8IACLd6XFYZ
NOCJCLA/X38R1Qo6AyAAAQMAAAEEAAASDAcGFRIYARIMBAAAEggHBhUSGAESCAQAABIRBwYVEhgB
EhEEAAASFAcGFRIYARIUBAgAEgwECAASCAQIABIRBAgAEhQEIAECHAMgAAgEIAASFQMgAA4CHgAH
EAEBHgAeAAcwAQEBEB4AAhMABCAAEwAHBhUSGQETAAQoABMACBbPSQu4DDTqCImEXc2AgMyRCyAF
ARIhCAISJRIpBCAAHQ4EIAEBDgQgAQECAyAAAgQoAB0OAygADgMoAAIDBhIkAwYSKAkgBAEIDhIl
EikFIAEBEhwDBhIhBSABARIhBCAAEjEEKAASMQIGDgUgAQIQDgQgARwOBSABDRI1ByACEjkSPQ4G
IAESQRI5BiABEkUSOQggAxJFEj0ODgMGEkkDBhI9AgYIAwYSTQMGEkUDBhJRAwYSVQQAABJRBAAA
ElUFAAEBElUECAASUQQIABJVAwYSNAIGHAQAABI0BAgAEjQFIAEBEWEIAQABAAAAAAAFIAIBDg4Y
AQAKTXlUZW1wbGF0ZQgxMC4wLjAuMAAABAEAAAAGFRIYARIMBhUSGAESCAYVEhgBEhEGFRIYARIU
BAcBEgwEBwESCAQHARIRBAcBEhQMAQAHTXkuVXNlcgAAEwEADk15LldlYlNlcnZpY2VzAAATAQAO
TXkuQXBwbGljYXRpb24AABABAAtNeS5Db21wdXRlcgAABAABHBwDBwECAwcBCAYAARIVEX0EBwES
FQMHAQ4FEAEAHgAECgEeAAQHAR4AByAEAQ4ODg5hAQA0U3lzdGVtLldlYi5TZXJ2aWNlcy5Qcm90
b2NvbHMuU29hcEh0dHBDbGllbnRQcm90b2NvbBJDcmVhdGVfX0luc3RhbmNlX18TRGlzcG9zZV9f
SW5zdGFuY2VfXwAAAAYVEhgBEwAGFRIZARMABAoBEwAFIAEBEwAIBwMTABMAEwAFAQAAAAAEBwEd
DgUgAgEIHAQgAQEIBgcCHQ4dDgUgABKAoQUgABKApQYgARKAqRwFIAASgK0GIAESgLEcBAcBEjEE
IAASJQQgARwIBAABDhwGAAMIDg4CBAABAg4GAAEBEoC1CgcEDh0OEoC1EhwEIAEcHAMgABwFIAAS
gNEGIAESgMkcBSAAEoDVBSAAEoDZBSACCAgICAcCEoCpEoDJBSAAEoDhBSAAEoDpBiABEoDdHAcg
AggIEYDtEAcGAgISgKkSgN0SgOESgLUKIAYBCA4ODggQAgUgABKA9QggAgEOEBKA8QYgARKA+RwH
BwMcHBKA8QUgAQ4dAwwABAIOEYEFEoEJEA0LBwcNDR0OCAgOHQMHAAQODhwcHAUAAg4ODgYAARKB
DQ4FIAASgREFIAASgRUJBwQOEjkSORI1BCAAEk0FIAASgR0GIAEBEoEdByACAQ4SgLUOBwUSQRJB
Ek0SgRkSgR0FIAEBHQ4OBwUSRRJFEoEZEoEdHQ4GAAMODg4OBSAAEoEtBiABARKBLQkgAhKBMQ4S
gSkFAAIODhwEAAEBCAcABA4ODg4OCwcFEkUSQRKBKQ4ODQEACFZhbGlkYXRlAAAhAQACAAAACkNv
bm5lY3Rpb24NSm9iSWRWYXJpYWJsZQAAHAEAF1NlbGVjdCBiYXRjaCBpZCBjb2x1bW4uAAANAQAI
U2V0dGluZ3MAABMBAA5Db25uZWN0aW9uVHlwZQAAKgEAJVNlbGVjdCBTYWxlc2ZvcmNlIENvbm5l
Y3Rpb24gTWFuYWdlci4AABwBABdTZWxlY3Qgam9iIGlkIHZhcmlhYmxlLgAABSAAEoFZByACAQ4S
gVkGBwISURJRBAcBElUIAQACAAAAAAAEAAEBHAQHARI0CAEACAAAAAAAHgEAAQBUAhZXcmFwTm9u
RXhjZXB0aW9uVGhyb3dzAUcBABouTkVURnJhbWV3b3JrLFZlcnNpb249djQuMAEAVA4URnJhbWV3
b3JrRGlzcGxheU5hbWUQLk5FVCBGcmFtZXdvcmsgNAwBAAcxLjAuMC4wAAApAQAkZjg2NDkzM2Ut
MTI1Yi00ZjhmLWI0MmUtNDU5MzMxMmY3MDY4AAAFAQABAAAfAQAaQ29weXJpZ2h0IEAgTWljcm9z
b2Z0IDIwMTQAADwBADdTY3JpcHRDb21wb25lbnRfNjQxYzdmOTRjZjIxNDAzYjhlNWQ4N2I0ZWFl
MzgxNzYudmJwcm9qAAAOAQAJTWljcm9zb2Z0AAAAAACgXAAAAAAAAAAAAAC+XAAAACAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAsFwAAAAAAAAAAAAAAAAAAAAAX0NvckRsbE1haW4AbXNjb3JlZS5kbGwA
AAAAAP8lACAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAQAAAAGAAAgAAAAAAAAAAA
AAAAAAAAAQABAAAAMAAAgAAAAAAAAAAAAAAAAAAAAQAAAAAASAAAAFhgAABoBAAAAAAAAAAAAABo
BDQAAABWAFMAXwBWAEUAUgBTAEkATwBOAF8ASQBOAEYATwAAAAAAvQTv/gAAAQAAAAEAAAAAAAAA
AQAAAAAAPwAAAAAAAAAEAAAAAgAAAAAAAAAAAAAAAAAAAEQAAAABAFYAYQByAEYAaQBsAGUASQBu
AGYAbwAAAAAAJAAEAAAAVAByAGEAbgBzAGwAYQB0AGkAbwBuAAAAAAAAALAEyAMAAAEAUwB0AHIA
aQBuAGcARgBpAGwAZQBJAG4AZgBvAAAApAMAAAEAMAAwADAAMAAwADQAYgAwAAAANAAKAAEAQwBv
AG0AcABhAG4AeQBOAGEAbQBlAAAAAABNAGkAYwByAG8AcwBvAGYAdAAAAJgAOAABAEYAaQBsAGUA
RABlAHMAYwByAGkAcAB0AGkAbwBuAAAAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABf
ADYANAAxAGMANwBmADkANABjAGYAMgAxADQAMAAzAGIAOABlADUAZAA4ADcAYgA0AGUAYQBlADMA
OAAxADcANgAuAHYAYgBwAHIAbwBqAAAAMAAIAAEARgBpAGwAZQBWAGUAcgBzAGkAbwBuAAAAAAAx
AC4AMAAuADAALgAwAAAAmAA8AAEASQBuAHQAZQByAG4AYQBsAE4AYQBtAGUAAABTAGMAcgBpAHAA
dABDAG8AbQBwAG8AbgBlAG4AdABfADYANAAxAGMANwBmADkANABjAGYAMgAxADQAMAAzAGIAOABl
ADUAZAA4ADcAYgA0AGUAYQBlADMAOAAxADcANgAuAHYAYgBwAHIAbwBqAC4AZABsAGwAAABcABsA
AQBMAGUAZwBhAGwAQwBvAHAAeQByAGkAZwBoAHQAAABDAG8AcAB5AHIAaQBnAGgAdAAgAEAAIABN
AGkAYwByAG8AcwBvAGYAdAAgADIAMAAxADQAAAAAAKAAPAABAE8AcgBpAGcAaQBuAGEAbABGAGkA
bABlAG4AYQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADYANAAxAGMANwBm
ADkANABjAGYAMgAxADQAMAAzAGIAOABlADUAZAA4ADcAYgA0AGUAYQBlADMAOAAxADcANgAuAHYA
YgBwAHIAbwBqAC4AZABsAGwAAACQADgAAQBQAHIAbwBkAHUAYwB0AE4AYQBtAGUAAAAAAFMAYwBy
AGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8ANgA0ADEAYwA3AGYAOQA0AGMAZgAyADEANAAwADMA
YgA4AGUANQBkADgANwBiADQAZQBhAGUAMwA4ADEANwA2AC4AdgBiAHAAcgBvAGoAAAA0AAgAAQBQ
AHIAbwBkAHUAYwB0AFYAZQByAHMAaQBvAG4AAAAxAC4AMAAuADAALgAwAAAAOAAIAAEAQQBzAHMA
ZQBtAGIAbAB5ACAAVgBlAHIAcwBpAG8AbgAAADEALgAwAC4AMAAuADAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAMAAAA0DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAA]]></arrayElement></arrayElements></property><property id="33" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property><property id="35" 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_641c7f94cf21403b8e5d87b4eae38176</property><property id="36" name="ScriptLanguage" dataType="System.String" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property></properties><connections><connection id="38" name="Connection" connectionManagerID="{80C28A1F-DADE-4895-8DB2-E6FB5EE89AB4}" /></connections><inputs><input id="39" name="Input" hasSideEffects="true"></input></inputs><outputs><output id="41" name="Output" synchronousInputId="39"><outputColumns><outputColumn id="42" name="ResultId" lineageId="42" length="50" dataType="wstr" /><outputColumn id="43" name="Success" lineageId="43" dataType="bool" /><outputColumn id="44" name="Created" lineageId="44" dataType="bool" /><outputColumn id="45" name="Error" lineageId="45" length="500" dataType="wstr" /></outputColumns><externalMetadataColumns /></output></outputs></component>