<component id="2" name="Regex Extract" 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="3" 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[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-2011 CozyRoc LLC
' 
' Permission is hereby granted, free of charge, to any person
' obtaining a copy of this software and associated documentation
' files (the "Software"), to deal in the Software without
' restriction, including without limitation the rights to use,
' copy, modify, merge, publish, distribute, sublicense, and/or sell
' copies of the Software, and to permit persons to whom the
' Software is furnished to do so, subject to the following
' conditions:
' 
' The above copyright notice and this permission notice shall be
' included in all copies or substantial portions of the Software.
' 
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
' EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
' OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
' NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
' HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
' WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
' FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
' OTHER DEALINGS IN THE SOFTWARE.

Imports System
Imports System.ComponentModel
Imports System.Collections
Imports System.Text.RegularExpressions

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


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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Dim matches As MatchCollection = m_regex.Matches(Row.Buffer(m_inputColumn).ToString())

        For Each match As Match In matches
            Call Me.OutputBuffer.AddRow()

            ' Extract group values.
            For Each pair As DictionaryEntry In m_outColsIdx
                Dim group As Group = match.Groups(CStr(pair.Key))
                If group.Success Then
                    Me.OutputBuffer.Buffer(CInt(pair.Value)) = group.Value
                End If
            Next
        Next
    End Sub ' Input_ProcessInputRow


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

        ' Setup regular expression.
        m_regex = New Regex( _
            Me.Pattern, _
            RegexOptions.Compiled Or RegexOptions.IgnoreCase Or _
            RegexOptions.Singleline Or RegexOptions.CultureInvariant)

        ' Setup input column.
        Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
        m_inputColumn = Me.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            input.InputColumnCollection(Me.Column).LineageID)

        ' Setup output columns.
        m_outColsIdx = New Hashtable()
        Dim output As IDTSOutput100 = Me.ComponentMetaData.OutputCollection(0)
        Dim colsCount As Integer = output.OutputColumnCollection.Count
        For colIndex As Integer = 0 To colsCount - 1
            Dim column As IDTSOutputColumn100 = output.OutputColumnCollection(colIndex)

            ' Setup buffer index.
            Call m_outColsIdx.Add( _
                column.Name, _
                Me.HostComponent.BufferManager.FindColumnByLineageID( _
                    output.Buffer, _
                    column.LineageID))
        Next
    End Sub ' PreExecute


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

        Try
            If String.IsNullOrEmpty(Me.Column) Then
                Throw New ApplicationException("Select input column.")
            End If

            If String.IsNullOrEmpty(Me.Pattern) Then
                Throw New ApplicationException("Specify regular expression.")
            End If

            ' Setup input columns based on selection.
            Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
            Call input.InputColumnCollection.RemoveAll()

            Dim virtInput As IDTSVirtualInput100 = input.GetVirtualInput()
            Dim virtColumn As IDTSVirtualInputColumn100 = virtInput.VirtualInputColumnCollection(Me.Column)
            Call virtInput.SetUsageType(virtColumn.LineageID, DTSUsageType.UT_READONLY)

            Dim output As IDTSOutput100 = MyBase.ComponentMetaData.OutputCollection(0)
            If output.OutputColumnCollection.Count = 0 Then
                ' Setup collection output columns.
                Call SetupOutputColumns_()
            End If
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    'Validate


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select input column to use in regular expression extraction.")> _
    <InputVirtualColumn()> _
    Public Property Column() As String
        Get
            Column = m_column
        End Get
        Set(ByVal value As String)
            m_column = value
        End Set
    End Property    ' Column


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify regular expression for extraction.")> _
    <RegularExpressionDialog()> _
    Public Property Pattern() As String
        Get
            Pattern = m_pattern
        End Get
        Set(ByVal value As String)
            If m_pattern <> value Then
                If Not String.IsNullOrEmpty(m_pattern) Then
                    ' Force output columns to be setup.
                    Dim output As IDTSOutput100 = Me.ComponentMetaData.OutputCollection(0)
                    Call output.OutputColumnCollection.RemoveAll()
                End If

                m_pattern = value
            End If
        End Set
    End Property    ' Pattern
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub SetupOutputColumns_()
        ' Get group names.
        Dim regex As Regex = New Regex(Me.Pattern)
        Dim groups() As String = regex.GetGroupNames()

        Dim output As IDTSOutput100 = Me.ComponentMetaData.OutputCollection(0)
        Call output.OutputColumnCollection.RemoveAll()

        Dim groupsCount As Integer = groups.Length
        For groupIndex As Integer = 1 To groupsCount - 1    ' First group refers to the whole input.
            Dim column As IDTSOutputColumn100 = output.OutputColumnCollection.[New]()
            column.Name = groups(groupIndex)
            Call column.SetDataTypeProperties(DataType.DT_WSTR, 250, 0, 0, 0)
        Next
    End Sub ' SetupOutputColumns_
#End Region ' Internals


#Region "Attributes"
    Private m_column As String
    Private m_pattern As String

    Private m_regex As Regex
    Private m_inputColumn As Integer
    Private m_outColsIdx As Hashtable
#End Region ' Attributes
End Class   ' ScriptMain
]]></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 Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overloads Function NextRow() As Boolean
        NextRow = MyBase.NextRow()
    End Function

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class

<CLSCompliant(False)> _
Public Class OutputBuffer
    Inherits ScriptBufferPlus

    Public Sub New(ByVal Component As ScriptComponent, ByVal ObjectID As Integer, ByVal IsInput As Boolean, ByVal Buffer As PipelineBuffer, 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 [user]() As String
        Set
            Me(0) = Value
        End Set
    End Property
    Public WriteOnly Property [user_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 [host]() As String
        Set
            Me(1) = Value
        End Set
    End Property
    Public WriteOnly Property [host_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 Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {"user", "host"}
        End Get
    End Property

    Public Overloads Sub AddRow()
        MyBase.AddRow()
    End Sub

    Public Overloads Sub SetEndOfRowset()
        MyBase.SetEndOfRowset()
    End Sub

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[ScriptComponent_a47b3d3b8dc346a1bae8d2cff6cfc479.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>{D744C5E6-F52B-4711-BD6E-9215FC22D385}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_a47b3d3b8dc346a1bae8d2cff6cfc479</RootNamespace>
    <AssemblyName>ScriptComponent_a47b3d3b8dc346a1bae8d2cff6cfc479</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
  </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.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="System" />
    <Reference Include="System.Data" />
    <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.DTSRuntimeWrap, 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.PipelineHost, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="System" />
    <Reference Include="System.Data" />
  </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="" DebugInfoExeName="devenv.exe" DebugInfoCommandLine="/vstaHostDebugUri:&quot;vstadebugea9618bc-1feb-4078-9fd3-ca8152ece9a4/163a6fc4-a732-497c-83ee-ff15a48ef88e&quot;" />
        <Host Name="SSIS_SC110" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC110</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>
  <PropertyGroup>
    <OptionCompare>Binary</OptionCompare>
  </PropertyGroup>
  <PropertyGroup>
    <OptionExplicit>On</OptionExplicit>
  </PropertyGroup>
  <PropertyGroup>
    <OptionStrict>On</OptionStrict>
  </PropertyGroup>
</Project>]]></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 OutputBuffer As OutputBuffer

    Dim InputsFinished As Integer = 0

    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

        If Buffer.EndOfRowset Then
            InputsFinished = InputsFinished + 1
            If InputsFinished = 1 Then
                FinishOutputs()
                MarkOutputsFinished()
            End If
        End If

    End Sub

    Public Overridable Sub FinishOutputs()
    End Sub

    Private Sub MarkOutputsFinished()

        If OutputBuffer IsNot Nothing Then
            OutputBuffer.SetEndOfRowset
            OutputBuffer = Nothing
        End If

    End Sub

    Public Overrides Sub PrimeOutput(ByVal Outputs As Integer, ByVal OutputIDs() As Integer, ByVal Buffers() As PipelineBuffer, 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()

    End Sub

    Public Overridable Sub CreateNewOutputRows()
    End Sub

    Public Overridable Sub Input_ProcessInput(ByVal Buffer As InputBuffer)

        While Buffer.NextRow()
            Input_ProcessInputRow(Buffer)
        End While

    End Sub

    Public Overridable Sub Input_ProcessInputRow(ByVal Row As InputBuffer)

    End Sub

End Class

Public Class Connections

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class

Public Class Variables

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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>{F40B14E2-A83E-442C-B866-9D76B5AE8B6C}</msb:ProjectId>
		<msb:DisplayName>ScriptComponent_a47b3d3b8dc346a1bae8d2cff6cfc479</msb:DisplayName>
		<msb:CodeName>ScriptComponent_a47b3d3b8dc346a1bae8d2cff6cfc479</msb:CodeName>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Folder Include="My Project\"/>
		<msb:File Include="ScriptMain.vb"/>
		<msb:File Include="BufferWrapper.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:Project Include="ScriptComponent_a47b3d3b8dc346a1bae8d2cff6cfc479.vbproj"/>
	</msb:ItemGroup>
</c:Project>]]></arrayElement></arrayElements></property><property id="4" 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_a47b3d3b8dc346a1bae8d2cff6cfc479.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
YwiLAEwAbQh0AkwAXAETAMkAXAHOADkAXAGvANkAMgTAANkAOgTAAOEAXAHOADkA1AiOAjkA3QiU
AukAXAHJANkApQQTANkArAQTAFkAXAETAEEAZQmgAvEAkgmlAvkAswmqAgEBvAloAEkAwwnAAEEA
0wmxAjkALQq9AkkAswnCAmEAOArHAgkBQArOAikBTgrUAmkAQArYAhEBagreAiEBdQrUAkEBcwLk
AjkBswnpAhkBiQrAACEBYwjUAkEBlQrwAkkBYwhxAEkA1AiOAikBpwrAAFEBvAoTAEEAuAUTAGEA
XAENA1kACwsVA3kBMgsbAwEBLQpoAAEBYQshA4kBswknA5EBjgtoAIEBnAsuA2kAXAETAPEAygs0
A5kBswk6A1kB/QtBA6EBGAxoAKEBswlHA2EBIgxxAFkBLQpoAGEBjgtoAGkAKwxOA9EAZwxjA8EB
XAHJAIkBigwTAAEBlAxoA7EByAxuA8kBswl0A6kBjgtoALEB9gx7A9kBDw2DA7kBHw1xANkBKw0X
AOEBRw2eA6EBigwTAGEAXAHJAGEAVQ27AKEBYw2rA2EBZw3JAGEBxA2xA/EBXAETAPkBXAHJAAEC
XAHaAwkCXAETABECXAHJABkCXAETACECXAGUAikCXAETADECXAHJACkAgwCsAS4AUwNqBC4AWwNz
BC4AYwOSBEAAKwBPAUAAEwAnAUMAEwAnAUMAGwA2AUkAgwCYAWMAGwA2AWMAEwAnAWkAgwC9AYAA
KwBPAYMAcwBPAYMAGwA2AYMAewBPAYkAgwCEAaAAKwBPAaMAwwD/AaMAEwAnAcAAKwBPAcMA6wCD
AsMAEwAnAeAAKwBPAeMACwGDAgABEwAnAQABKwBPAQMBCwGDAiABKwBPASABEwAnASMBCwGDAkAB
EwAnAUABKwBPAWABKwBPAWABEwAnAYABKwBPAYMBIwNPAYMBKwPMA4MBMwPgA4MBCwGDAqABKwBP
AcABKwBPAcABEwAnAckBQwP4A8kBOwNPAeABKwBPAekBSwNPAekBQwM6BAACEwAnAQACKwBPAQAF
CwGDAiAFCwGDAnABdQF6AX8BzwHTAd4B4wHyAfIBegKJAokCzwHPAYkCmQLPAbgC9QJUA4oD4wHj
AaUDvAMEAAEABgAFAAcABgAIAAgADAAOAAAAgAFPAAAAOQJUAAAA6AFZAAAARQJeAAAAAQOYAAAA
RgTEAAAAWQTEAAAARgTEAAAAuwTTAAAAwATXAAAAzATTAAAA0QTXAAAAWQTEAAAAlwbTAAAAngbT
AAIABAADAAIABQAFAAIABgAHAAIABwAJAAIADwALAAIAEgANAAIAEwAPAAIAFwARAAEAGAATAAEA
GQAVAAEAGgAXAAEAGwAZAAIAHAAbAAIALgAdAAEALwAdAAIAMAAfAAEAMQAfAHUAdQCIAFQBWwFi
AWkBYQJoAgSAAAAAAAAAAAAAAAAAAAAAALUAAAAEAAAAAAAAAAAAAAABAAoAAAAAAAoAAAAAAAAA
AAAAAAoAEwAAAAAAAQAAAAAAAAAAAAAAnQANAwAAAAALAAAAAAAAAAAAAACmAEsDAAAAAAsAAAAA
AAAAAAAAAKYAmQMAAAAABAAAAAAAAAAAAAAAAQCJAQAAAAALAAAAAAAAAAAAAACmAP8IAAAAAAsA
AAAAAAAAAAAAAKYAcA0AAAAABQAEAAYABAAAABAADACPAgAAEAAZAI8CAAAAABsAjwItAO0BLQBv
AgAAAAAAPE1vZHVsZT4AbXNjb3JsaWIATWljcm9zb2Z0LlZpc3VhbEJhc2ljAE15QXBwbGljYXRp
b24AU2NyaXB0Q29tcG9uZW50X2E0N2IzZDNiOGRjMzQ2YTFiYWU4ZDJjZmY2Y2ZjNDc5Lk15AE15
Q29tcHV0ZXIATXlQcm9qZWN0AE15V2ViU2VydmljZXMAVGhyZWFkU2FmZU9iamVjdFByb3ZpZGVy
YDEASW5wdXRCdWZmZXIAU2NyaXB0Q29tcG9uZW50X2E0N2IzZDNiOGRjMzQ2YTFiYWU4ZDJjZmY2
Y2ZjNDc5AE91dHB1dEJ1ZmZlcgBVc2VyQ29tcG9uZW50AENvbm5lY3Rpb25zAFZhcmlhYmxlcwBT
Y3JpcHRNYWluAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5BcHBsaWNhdGlvblNlcnZpY2VzAEFwcGxp
Y2F0aW9uQmFzZQAuY3RvcgBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuRGV2aWNlcwBDb21wdXRlcgBT
eXN0ZW0AT2JqZWN0AC5jY3RvcgBnZXRfQ29tcHV0ZXIAbV9Db21wdXRlck9iamVjdFByb3ZpZGVy
AGdldF9BcHBsaWNhdGlvbgBtX0FwcE9iamVjdFByb3ZpZGVyAFVzZXIAZ2V0X1VzZXIAbV9Vc2Vy
T2JqZWN0UHJvdmlkZXIAZ2V0X1dlYlNlcnZpY2VzAG1fTXlXZWJTZXJ2aWNlc09iamVjdFByb3Zp
ZGVyAEFwcGxpY2F0aW9uAFdlYlNlcnZpY2VzAEVxdWFscwBvAEdldEhhc2hDb2RlAFR5cGUAR2V0
VHlwZQBUb1N0cmluZwBDcmVhdGVfX0luc3RhbmNlX18AVABpbnN0YW5jZQBEaXNwb3NlX19JbnN0
YW5jZV9fAGdldF9HZXRJbnN0YW5jZQBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuTXlTZXJ2aWNlcy5J
bnRlcm5hbABDb250ZXh0VmFsdWVgMQBtX0NvbnRleHQAR2V0SW5zdGFuY2UAQ296eVJvYy5TU0lT
UGx1cy4yMDEyAENvenlSb2MuU3FsU2VydmVyLlNTSVMAU2NyaXB0QnVmZmVyUGx1cwBNaWNyb3Nv
ZnQuU3FsU2VydmVyLlR4U2NyaXB0AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lAFNj
cmlwdENvbXBvbmVudABNaWNyb3NvZnQuU3FsU2VydmVyLlBpcGVsaW5lSG9zdABQaXBlbGluZUJ1
ZmZlcgBPdXRwdXROYW1lTWFwAENvbXBvbmVudABPYmplY3RJRABJc0lucHV0AEJ1ZmZlcgBPdXRw
dXRNYXAAZ2V0X1N0YXRpY0lucHV0Q29sdW1ucwBnZXRfU3RhdGljT3V0cHV0Q29sdW1ucwBOZXh0
Um93AEVuZE9mUm93c2V0AFN0YXRpY0lucHV0Q29sdW1ucwBTdGF0aWNPdXRwdXRDb2x1bW5zAHNl
dF91c2VyAFZhbHVlAHNldF91c2VyX0lzTnVsbABzZXRfaG9zdABzZXRfaG9zdF9Jc051bGwAQWRk
Um93AFNldEVuZE9mUm93c2V0AHVzZXIAdXNlcl9Jc051bGwAaG9zdABob3N0X0lzTnVsbABTY3Jp
cHRDb21wb25lbnRQbHVzAElucHV0c0ZpbmlzaGVkAFByb2Nlc3NJbnB1dABJbnB1dElEAElucHV0
TmFtZQBGaW5pc2hPdXRwdXRzAE1hcmtPdXRwdXRzRmluaXNoZWQAUHJpbWVPdXRwdXQAT3V0cHV0
cwBPdXRwdXRJRHMAQnVmZmVycwBDcmVhdGVOZXdPdXRwdXRSb3dzAElucHV0X1Byb2Nlc3NJbnB1
dABJbnB1dF9Qcm9jZXNzSW5wdXRSb3cAUm93AFBhcmVudENvbXBvbmVudABQcmVFeGVjdXRlAFZh
bGlkYXRlAGVyck1lc3NhZ2UAZ2V0X0NvbHVtbgBzZXRfQ29sdW1uAHZhbHVlAGdldF9QYXR0ZXJu
AHNldF9QYXR0ZXJuAFNldHVwT3V0cHV0Q29sdW1uc18AbV9jb2x1bW4AbV9wYXR0ZXJuAFN5c3Rl
bS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9ucwBSZWdleABtX3JlZ2V4AG1faW5wdXRDb2x1bW4AU3lz
dGVtLkNvbGxlY3Rpb25zAEhhc2h0YWJsZQBtX291dENvbHNJZHgAQ29sdW1uAFBhdHRlcm4AU3lz
dGVtLkNvbXBvbmVudE1vZGVsAEVkaXRvckJyb3dzYWJsZUF0dHJpYnV0ZQBFZGl0b3JCcm93c2Fi
bGVTdGF0ZQBTeXN0ZW0uQ29kZURvbS5Db21waWxlcgBHZW5lcmF0ZWRDb2RlQXR0cmlidXRlAFN5
c3RlbS5EaWFnbm9zdGljcwBEZWJ1Z2dlckhpZGRlbkF0dHJpYnV0ZQBNaWNyb3NvZnQuVmlzdWFs
QmFzaWMuQ29tcGlsZXJTZXJ2aWNlcwBTdGFuZGFyZE1vZHVsZUF0dHJpYnV0ZQBIaWRlTW9kdWxl
TmFtZUF0dHJpYnV0ZQBTeXN0ZW0uQ29tcG9uZW50TW9kZWwuRGVzaWduAEhlbHBLZXl3b3JkQXR0
cmlidXRlAFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXMAUnVudGltZUhlbHBlcnMAR2V0
T2JqZWN0VmFsdWUAUnVudGltZVR5cGVIYW5kbGUAR2V0VHlwZUZyb21IYW5kbGUAQWN0aXZhdG9y
AENyZWF0ZUluc3RhbmNlAE15R3JvdXBDb2xsZWN0aW9uQXR0cmlidXRlAGdldF9WYWx1ZQBzZXRf
VmFsdWUAU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzAENvbVZpc2libGVBdHRyaWJ1dGUA
U3RyaW5nAFNjcmlwdEJ1ZmZlcgBDTFNDb21wbGlhbnRBdHRyaWJ1dGUAc2V0X0l0ZW0AU2V0TnVs
bABJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRFRTUGlwZWxp
bmVXcmFwAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lLldyYXBwZXIASURUU0NvbXBv
bmVudE1ldGFEYXRhMTAwAGdldF9Db21wb25lbnRNZXRhRGF0YQBJRFRTSW5wdXRDb2xsZWN0aW9u
MTAwAGdldF9JbnB1dENvbGxlY3Rpb24ASURUU0lucHV0MTAwAGdldF9JdGVtAGdldF9JRABnZXRf
RW5kT2ZSb3dzZXQAR2V0T3V0cHV0SUQATWF0Y2hDb2xsZWN0aW9uAE1hdGNoAEdyb3VwAERpY3Rp
b25hcnlFbnRyeQBJRW51bWVyYXRvcgBJRGljdGlvbmFyeUVudW1lcmF0b3IAZ2V0X0J1ZmZlcgBN
YXRjaGVzAEdldEVudW1lcmF0b3IAZ2V0X0N1cnJlbnQAR3JvdXBDb2xsZWN0aW9uAGdldF9Hcm91
cHMAZ2V0X0tleQBDb252ZXJzaW9ucwBnZXRfU3VjY2VzcwBUb0ludGVnZXIAQ2FwdHVyZQBNb3Zl
TmV4dABJRGlzcG9zYWJsZQBEaXNwb3NlAElEVFNPdXRwdXQxMDAASURUU091dHB1dENvbHVtbjEw
MABSZWdleE9wdGlvbnMASW50MzIAUGlwZWxpbmVDb21wb25lbnQAZ2V0X0hvc3RDb21wb25lbnQA
SURUU0J1ZmZlck1hbmFnZXIxMDAAZ2V0X0J1ZmZlck1hbmFnZXIASURUU0lucHV0Q29sdW1uQ29s
bGVjdGlvbjEwMABnZXRfSW5wdXRDb2x1bW5Db2xsZWN0aW9uAElEVFNJbnB1dENvbHVtbjEwMABn
ZXRfTGluZWFnZUlEAEZpbmRDb2x1bW5CeUxpbmVhZ2VJRABJRFRTT3V0cHV0Q29sbGVjdGlvbjEw
MABnZXRfT3V0cHV0Q29sbGVjdGlvbgBJRFRTT3V0cHV0Q29sdW1uQ29sbGVjdGlvbjEwMABnZXRf
T3V0cHV0Q29sdW1uQ29sbGVjdGlvbgBnZXRfQ291bnQAZ2V0X05hbWUAQWRkAElEVFNWaXJ0dWFs
SW5wdXRDb2x1bW4xMDAASURUU1ZpcnR1YWxJbnB1dDEwMABFeGNlcHRpb24ASXNOdWxsT3JFbXB0
eQBBcHBsaWNhdGlvbkV4Y2VwdGlvbgBSZW1vdmVBbGwAR2V0VmlydHVhbElucHV0AElEVFNWaXJ0
dWFsSW5wdXRDb2x1bW5Db2xsZWN0aW9uMTAwAGdldF9WaXJ0dWFsSW5wdXRDb2x1bW5Db2xsZWN0
aW9uAERUU1VzYWdlVHlwZQBTZXRVc2FnZVR5cGUAUHJvamVjdERhdGEAU2V0UHJvamVjdEVycm9y
AGdldF9NZXNzYWdlAENsZWFyUHJvamVjdEVycm9yAE9wZXJhdG9ycwBDb21wYXJlU3RyaW5nAEdl
dEdyb3VwTmFtZXMATmV3AHNldF9OYW1lAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRFRTUnVudGltZVdy
YXAATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUnVudGltZS5XcmFwcGVyAERhdGFUeXBlAFNldERh
dGFUeXBlUHJvcGVydGllcwBTU0lTU2NyaXB0Q29tcG9uZW50RW50cnlQb2ludEF0dHJpYnV0ZQBD
b3p5Um9jLlNxbFNlcnZlci5TU0lTLkF0dHJpYnV0ZXMAVmFsaWRhdGVQcm9wZXJ0aWVzQXR0cmli
dXRlAFNvcnRQcm9wZXJ0aWVzQXR0cmlidXRlAElucHV0VmlydHVhbENvbHVtbkF0dHJpYnV0ZQBE
ZXNjcmlwdGlvbkF0dHJpYnV0ZQBSZWd1bGFyRXhwcmVzc2lvbkRpYWxvZ0F0dHJpYnV0ZQBDb21w
aWxhdGlvblJlbGF4YXRpb25zQXR0cmlidXRlAFJ1bnRpbWVDb21wYXRpYmlsaXR5QXR0cmlidXRl
AFN5c3RlbS5SdW50aW1lLlZlcnNpb25pbmcAVGFyZ2V0RnJhbWV3b3JrQXR0cmlidXRlAFNjcmlw
dENvbXBvbmVudF9hNDdiM2QzYjhkYzM0NmExYmFlOGQyY2ZmNmNmYzQ3OS5kbGwAAACAm0kAcwBO
AHUAbABsACAAcAByAG8AcABlAHIAdAB5ACAAYwBhAG4AbgBvAHQAIABiAGUAIABzAGUAdAAgAHQA
bwAgAEYAYQBsAHMAZQAuACAAQQBzAHMAaQBnAG4AIABhACAAdgBhAGwAdQBlACAAdABvACAAdABo
AGUAIABjAG8AbAB1AG0AbgAgAGkAbgBzAHQAZQBhAGQALgAACXUAcwBlAHIAAAloAG8AcwB0AAAL
SQBuAHAAdQB0AAANTwB1AHQAcAB1AHQAAClTAGUAbABlAGMAdAAgAGkAbgBwAHUAdAAgAGMAbwBs
AHUAbQBuAC4AADdTAHAAZQBjAGkAZgB5ACAAcgBlAGcAdQBsAGEAcgAgAGUAeABwAHIAZQBzAHMA
aQBvAG4ALgAAAABm1+uvcv+7Ra0snYBrZPcrAAi3elxWGTTgiQiwP19/EdUKOgMgAAEDAAABBAAA
EgwHBhUSGAESDAQAABIIBwYVEhgBEggEAAASEQcGFRIYARIRBAAAEhQHBhUSGAESFAQIABIMBAgA
EggECAASEQQIABIUBCABAhwDIAAIBCAAEhUDIAAOAh4ABxABAR4AHgAHMAEBARAeAAITAAQgABMA
BwYVEhkBEwAEKAATAAgWz0kLuAw06giJhF3NgIDMkQsgBQESIQgCEiUSKQQgAB0OAyAAAgQoAB0O
BCABAQ4EIAEBAgMoAA4DKAACAwYSKAMGEiwDBhIgAgYICSAEAQgOEiUSKQsgBAEIHQgdEiUSKQUg
AQESHAMGEiEFIAEBEiEFIAECEA4CBg4DBhIxAwYSNQUgAQERPQgBAAEAAAAAAAUgAgEODhgBAApN
eVRlbXBsYXRlCDEwLjAuMC4wAAAEAQAAAAYVEhgBEgwGFRIYARIIBhUSGAESEQYVEhgBEhQEBwES
DAQHARIIBAcBEhEEBwESFBMBAA5NeS5XZWJTZXJ2aWNlcwAAEwEADk15LkFwcGxpY2F0aW9uAAAQ
AQALTXkuQ29tcHV0ZXIAAAwBAAdNeS5Vc2VyAAAEAAEcHAMHAQIDBwEIBgABEhURWQQHARIVAwcB
DgUQAQAeAAQKAR4ABAcBHgAHIAQBDg4ODmEBADRTeXN0ZW0uV2ViLlNlcnZpY2VzLlByb3RvY29s
cy5Tb2FwSHR0cENsaWVudFByb3RvY29sEkNyZWF0ZV9fSW5zdGFuY2VfXxNEaXNwb3NlX19JbnN0
YW5jZV9fAAAABhUSGAETAAYVEhkBEwAECgETAAUgAQETAAgHAxMAEwATAAUBAAAAAAQHAR0OBSAC
AQgcBCABAQgGBwIdDh0OBCAAEnkEIAASfQYgARKAgRwGAAIIEikOBAcCCAgEIAASJQQgARwIBiAB
EoCFDgUgABKAlQMgABwFIAASgJkFIAASgJ0EAAEOHAYgARKAjQ4EAAEIHBcHBxKAhRKAiRKAjRGA
kRKAlRKAmRGAkQcgAgEOEYC1BSAAEoC9BSAAEoDBBSAAEoDFBiABEoDJHAUgAggICAUgABKAzQYg
ARKArRwFIAASgNEGIAESgLEcBSACARwcDgcGCBKAgRKArQgSgLEIBAABAg4FIAASgNkFIAASgOUG
IAESgNUcByACCAgRgOkGAAEBEoDdEwcHAgISgIESgK0SgNUSgNkSgN0GAAMIDg4CBQcBEoCtBSAA
EoCxCiAFARGA9QgICAgPBwcdDggSgK0SMRKAsQgIDQEACFZhbGlkYXRlAAAFIAEBHQ4XAQACAAAA
BkNvbHVtbgdQYXR0ZXJuAABBAQA8U2VsZWN0IGlucHV0IGNvbHVtbiB0byB1c2UgaW4gcmVndWxh
ciBleHByZXNzaW9uIGV4dHJhY3Rpb24uAAAvAQAqU3BlY2lmeSByZWd1bGFyIGV4cHJlc3Npb24g
Zm9yIGV4dHJhY3Rpb24uAAAIAQAIAAAAAAAeAQABAFQCFldyYXBOb25FeGNlcHRpb25UaHJvd3MB
RwEAGi5ORVRGcmFtZXdvcmssVmVyc2lvbj12NC4wAQBUDhRGcmFtZXdvcmtEaXNwbGF5TmFtZRAu
TkVUIEZyYW1ld29yayA0AACISgAAAAAAAAAAAACeSgAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
kEoAAAAAAAAAAF9Db3JEbGxNYWluAG1zY29yZWUuZGxsAAAAAAD/JQAgQAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAQAAAAGAAA
gAAAAAAAAAAAAAAAAAAAAQABAAAAMAAAgAAAAAAAAAAAAAAAAAAAAQAAAAAASAAAAFhgAADsAgAA
AAAAAAAAAADsAjQAAABWAFMAXwBWAEUAUgBTAEkATwBOAF8ASQBOAEYATwAAAAAAvQTv/gAAAQAA
AAAAAAAAAAAAAAAAAAAAPwAAAAAAAAAEAAAAAgAAAAAAAAAAAAAAAAAAAEQAAAABAFYAYQByAEYA
aQBsAGUASQBuAGYAbwAAAAAAJAAEAAAAVAByAGEAbgBzAGwAYQB0AGkAbwBuAAAAAAAAALAETAIA
AAEAUwB0AHIAaQBuAGcARgBpAGwAZQBJAG4AZgBvAAAAKAIAAAEAMAAwADAAMAAwADQAYgAwAAAA
LAACAAEARgBpAGwAZQBEAGUAcwBjAHIAaQBwAHQAaQBvAG4AAAAAACAAAAAwAAgAAQBGAGkAbABl
AFYAZQByAHMAaQBvAG4AAAAAADAALgAwAC4AMAAuADAAAACMADUAAQBJAG4AdABlAHIAbgBhAGwA
TgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AYQA0ADcAYgAzAGQAMwBi
ADgAZABjADMANAA2AGEAMQBiAGEAZQA4AGQAMgBjAGYAZgA2AGMAZgBjADQANwA5AC4AZABsAGwA
AAAAACgAAgABAEwAZQBnAGEAbABDAG8AcAB5AHIAaQBnAGgAdAAAACAAAACUADUAAQBPAHIAaQBn
AGkAbgBhAGwARgBpAGwAZQBuAGEAbQBlAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQA
XwBhADQANwBiADMAZAAzAGIAOABkAGMAMwA0ADYAYQAxAGIAYQBlADgAZAAyAGMAZgBmADYAYwBm
AGMANAA3ADkALgBkAGwAbAAAAAAANAAIAAEAUAByAG8AZAB1AGMAdABWAGUAcgBzAGkAbwBuAAAA
MAAuADAALgAwAC4AMAAAADgACAABAEEAcwBzAGUAbQBiAGwAeQAgAFYAZQByAHMAaQBvAG4AAAAw
AC4AMAAuADAALgAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADAAAALA6AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></arrayElement></arrayElements></property><property id="9" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property><property id="11" 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_a47b3d3b8dc346a1bae8d2cff6cfc479</property><property id="12" 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><inputs><input id="14" name="Input" hasSideEffects="true"></input></inputs><outputs><output id="16" name="Output" hasSideEffects="true"><outputColumns><outputColumn id="17" name="user" lineageId="17" length="250" dataType="wstr" /><outputColumn id="18" name="host" lineageId="18" length="250" dataType="wstr" /></outputColumns><externalMetadataColumns /></output></outputs></component>