<component id="2" name="Regex Extract" componentClassID="Microsoft.ManagedComponentHost" description="Executes a custom script." localeId="1033" version="9" contactInfo="Executes a custom script.;Microsoft Corporation;Microsoft SqlServer v9; © 2004 Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;0"><properties><property id="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[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[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 Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overloads Sub AddRow()
        MyBase.AddRow()
    End Sub

    Public Overloads Sub SetEndOfRowset()
        MyBase.SetEndOfRowset()
    End Sub

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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[Project]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<c:Project xmlns:c="http://schemas.microsoft.com/codeprojectml/2010/08/main" xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003" runtimeVersion="4.0" schemaVersion="1.0">
	<msb:PropertyGroup>
		<msb:Language>msBuild</msb:Language>
		<msb:CodeName>ScriptComponent_a47b3d3b8dc346a1bae8d2cff6cfc479</msb:CodeName>
		<msb:DisplayName>ScriptComponent_a47b3d3b8dc346a1bae8d2cff6cfc479</msb:DisplayName>
		<msb:ProjectId>{C4069F98-911C-45B6-A656-35F01710AD5F}</msb:ProjectId>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Project Include="ScriptComponent_a47b3d3b8dc346a1bae8d2cff6cfc479.vbproj"/>
		<msb:Folder Include="My Project\"/>
		<msb:File Include="ScriptMain.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="BufferWrapper.vb"/>
	</msb:ItemGroup>
</c:Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[ScriptComponent_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>{E330BD5A-BFFA-4C59-8803-E9C2348F2E8F}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_a47b3d3b8dc346a1bae8d2cff6cfc479</RootNamespace>
    <AssemblyName>ScriptComponent_a47b3d3b8dc346a1bae8d2cff6cfc479</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <OptionCompare>Binary</OptionCompare>
    <OptionExplicit>On</OptionExplicit>
    <OptionStrict>On</OptionStrict>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>.\bin\Debug\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>.\bin\Release\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <!-- This sections specifies references for the project. -->
  <ItemGroup>
    <Reference Include="CozyRoc.SSISPlus.2014, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\120\SDK\Assemblies\CozyRoc.SSISPlus.2014.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.TxScript, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="System">
      <Private>False</Private>
    </Reference>
    <Reference Include="System.Data">
      <Private>False</Private>
    </Reference>
    <Reference Include="Microsoft.SqlServer.ManagedDTS">
      <Private>False</Private>
    </Reference>
  </ItemGroup>
  <!-- Visual Basic supports Importing namespaces (equivalent to using statements in C#).-->
  <ItemGroup>
    <Import Include="Microsoft.VisualBasic" />
    <Import Include="System" />
    <Import Include="System.Collections" />
    <Import Include="System.Data" />
    <Import Include="System.Diagnostics" />
    <Import Include="System.Windows.Forms" />
  </ItemGroup>
  <ItemGroup>
    <AppDesigner Include="My Project\" />
  </ItemGroup>
  <!-- Include the build rules for a VB project.-->
  <Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
  <!-- This section defines VSTA properties that describe the host-changable project properties. -->
  <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{30D016F9-3734-4E33-A861-5E7D899E18F3}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{B3A685AA-7EAF-4BC6-9940-57959FA5AC07}" ApplicationType="usd" Language="vb" TemplatesPath="" />
        <Host Name="SSIS_SC120" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC120</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <ItemGroup>
    <Compile Include="ScriptMain.vb" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="My Project\" />
  </ItemGroup>
</Project>]]></arrayElement></arrayElements></property><property id="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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
YgEGAJABiQEKAOgBIgEGAGYCiQEKAOgCvgIOADoDIwMSAIkDaAMWALoDaAMSAMkDaAMOAIMEIwMa
APcF2AUGACYGEwYaAGIGTAYaAHsGTAYaAKgGkAYGANIGvwYKABEH6gYKACkHEwAaAF4HQQcGAJMH
cwcGALEHiQEGANUHiQEKAO4HEwAGADwIHQgGAFAIiQESAFcIaAMGAGQIiQEeAMcInggeAPYIngge
ACEJnggaAFoJ2AUaAGoJ2AUaAHAJ2AUGAHYJEwYGAIYJEwYGAJIJEwYaANUJ2AUKAPgJ6gYaABoK
2AUGADQKiQEeAEgKnggeAFYKnggaAGoK2AUGAHcKiQEWAH0KaAMeAKEKnggeAMgKnggeAP8Kngge
ADYLnggeAGMLnggeALMLnggeAM0LnggGAOELiQEGAPkLiQEeACgMnggeAG0MnggKAIcM6gYKAMEM
6gYiAD8NFw0SAF4NaAMOAKcNhQ0OAMMNhQ0OANsNhQ0aAPcNTAYOAAwOhQ0GAC0OcwcGAE0OcwcG
AIUOaw4AAAAAAQAAAAAAAQABAAAAAAApADcABQABAAEAAAAAAGsANwAJAAEAAgAAARAAdgA3AA0A
AQADAAUBAACAAAAADQAFAAgABQEAAI4AAAANAAUADwABAAAAqQC1AB0ABgARAAEAAADmALUAHQAG
ABYAAQAAAPMAtQAtAAYAHAABAAAAAQG1AA0ACgAkAAEAAAANAbUADQALACUAAQAAABcBtQAkAAwA
JgAxAKsBIAAxANQBLQAxAPYBOgAxABsCRwAhAPcCkAAGAAEByQAGAA0BzQAGAOYA0QABAJcE1QAB
AE4F9AABAE4F9AABAMUFCQEBAM4FCQEBAP0FDAEBAAUG1QABADAGEAFQIAAAAAAGGFwBEwABAFgg
AAAAAAYYXAETAAEAYCAAAAAAERiXARcAAQCMIAAAAAATCJ4BGwABAKQgAAAAABMIxAEoAAEAvCAA
AAAAEwjtATUAAQDUIAAAAAATCAsCQgABAOwgAAAAAEYCUQJjAAEACCEAAAAARgJaAmgAAgAcIQAA
AACDAGsCbAACADQhAAAAAEYCcwJxAAIASCEAAAAAEQB8AngAAgBkIQAAAAABAJoCgAADAIAhAAAA
AAYYXAETAAQAiCEAAAAAAwiuAosABAC8IQAAAAAGGFwBEwAEANAhAAAAAAYYXAGvAAQA4CEAAAAA
RgoDBLsACQD0IQAAAABGChoEuwAJAAgiAAAAAIYAMgTAAAkAICIAAAAAhgA6BMAACQA4IgAAAAAG
GFwBrwAJAEgiAAAAAEYKAwS7AA4AXCIAAAAARgoaBLsADgBwIgAAAACGAG0EEwAOAHgiAAAAAIYA
dAQTAA4AgCIAAAAAhgA6BMAADgCYIgAAAAAGGFwBEwAOAMAiAAAAAEYCpgTYAA4AKCMAAAAARgPF
BBMAEgAsIwAAAAABANMEEwASAEgjAAAAAEYC5wTiABIAlCMAAAAARgMNBRMAFgCYIwAAAABGAyEF
7gAWAKwjAAAAAEYDNAXuABcAsCMAAAAABhhcAfgAGADAIwAAAAAGGFwB+AAZANAjAAAAAAYYXAET
ABoA2CMAAAAARgI0Be4AGgDUJAAAAABGAl4FEwAbANAlAAAAAAYAaQX+ABsAuCYAAAAABgh9BXEA
HADQJgAAAAAGCIgFBAEcANwmAAAAAAYImQVxAB0A9CYAAAAABgilBQQBHQBIJwAAAAABALEFEwAe
AAAAAQBYAgAAAQCRAgAAAQCRAgAAAQDXAwAAAgDhAwAAAwDqAwAABADyAwAABQD5AwAAAQDXAwAA
AgDhAwAAAwDqAwAABADyAwAABQD5AwAAAQCzBAAAAgC7BAAAAwDyAwAABAD5AwAAAQDzBAAAAgD7
BAAAAwAFBQAABAD5AwAAAQDyAwAAAQBKBQAAAQDXAwAAAQDXAwAAAQBKBQAAAQByBQAAAQCTBQAA
AQCTBQkAXAETAHEAXAEYAYEAXAEnAREAXAETAIkAXAETACQAXAETACwAXAETADQAXAETADwAXAET
ACQArgKLACwArgKLADQArgKLADwArgKLAJEAXAETAJkAXAETAKEAXAEEAakAogfBARkAUQJjABkA
WgJoACkAwwfOARkAcwJxALkA3wfeARkAXAETAMEAXAHuAUQA9wKQAEwACQiLAEwAEwhrAkwAXAET
AMkAXAF6AjkAXAGvANkAMgTAANkAOgTAAOEAXAF6AtkAbQQTANkAdAQTAFkAXAETAEEA4AiKAukA
DQmPAvEALgmUAvkANwloAEkAPgnAAEEATgmaAjkAqAmmAkkALgmrAmEAswmwAgEBuwm3AiEByQm9
AmkAuwnBAgkB5QnHAhkB8Am9AjkBcwLNAjEBLgnSAhEBBArAABkBCQi9AjkBEArZAkEBCQhxAEkA
IgreAiEBKwrAAEkBQAoTAEEAXgUTAGEAXAH8AlkAjwoEA3EBtgoKA/kAqAloAPkA5QoQA4EBLgkW
A4kBEgtoAHkBIAsdA2kAXAETAOkATgsjA5EBLgkpA1EBgQswA5kBnAtoAJkBLgk2A1kBpgtxAFEB
qAloAFkBEgtoAGkArws9A9EA6wtRA7kBXAEEAYEBDgwTAPkAGAxWA6kBTAxcA8EBLgliA6EBEgto
AKkBegxpA9EBkwxxA7EBowxxANEBrwwXANkBywyLA5kBDgwTAGEAXAEEAWEA2Qy7AJkB5wyYA1kB
6wwEAVkBSA2eA+kBXAETAPEBXAEEAfkBXAHHAwECXAETAAkCXAEEARECXAETABkCXAFXBCECXAET
ACkCXAEEASkAgwB7AS4AOwNcBC4AQwNlBC4ASwOEBEAAKwBGAUAAEwAeAUMAGwAtAUMAEwAeAUkA
gwCtAWMAGwAtAWMAEwAeAWkAgwCMAYAAKwBGAYMAewBGAYMAGwAtAYMAcwBGAYkAgwCZAaAAKwBG
AaMAwwD2AaMAEwAeAcAAKwBGAcMA6wB/AsMAEwAeAeAAKwBGAeMACwF/AgABKwBGAQABEwAeAQMB
CwF/AiABKwBGASABEwAeASMBCwF/AkABKwBGAUABEwAeAUkBIwNGAUkBKwPlA2ABEwAeAWABKwBG
AWkBMwNGAWkBKwMnBIABKwBGAYMBCwF/AoMBGwPNA4MBEwO5A4MBCwNGAaABKwBGAcABKwBGAcAB
EwAeAeABKwBGAQACKwBGAQACEwAeAYAECwF/AqAECwF/AmcBbAFxAXYBxgHKAdUB2gHpAekBcQKF
AoUCxgHGAYUChQLGAaEC5AJDA3gD2gHaAZIDqQMEAAEABgAFAAcABgAIAAgADAAKAAAAgAFPAAAA
OQJUAAAA6AFZAAAARQJeAAAAAQOYAAAARgTEAAAAWQTEAAAARgTEAAAAWQTEAAAAPQYUAQAARAYU
AQIABAADAAIABQAFAAIABgAHAAIABwAJAAIADwALAAIAEgANAAIAEwAPAAIAFwARAAIAGAATAAIA
KgAVAAEAKwAVAAIALAAXAAEALQAXAHUAdQCIAEsBUgFZAWABWAJfAgSAAAAAAAAAAAAAAAAAAAAA
ALUAAAAEAAAAAAAAAAAAAAABAAoAAAAAAAoAAAAAAAAAAAAAAAoAEwAAAAAAAQAAAAAAAAAAAAAA
nQANAwAAAAAMAAAAAAAAAAAAAACmAEsDAAAAAAwAAAAAAAAAAAAAAKYAmQMAAAAABAAAAAAAAAAA
AAAAAQCJAQAAAAAMAAAAAAAAAAAAAACmAHoIAAAAAAwAAAAAAAAAAAAAAKYA9AwAAAAABQAEAAYA
BAAAABAADACPAgAAEAAZAI8CAAAAABsAjwItAOQBLQBmAgAAAAAAPE1vZHVsZT4AbXNjb3JsaWIA
TWljcm9zb2Z0LlZpc3VhbEJhc2ljAE15QXBwbGljYXRpb24AU2NyaXB0Q29tcG9uZW50X2E0N2Iz
ZDNiOGRjMzQ2YTFiYWU4ZDJjZmY2Y2ZjNDc5Lk15AE15Q29tcHV0ZXIATXlQcm9qZWN0AE15V2Vi
U2VydmljZXMAVGhyZWFkU2FmZU9iamVjdFByb3ZpZGVyYDEASW5wdXRCdWZmZXIAU2NyaXB0Q29t
cG9uZW50X2E0N2IzZDNiOGRjMzQ2YTFiYWU4ZDJjZmY2Y2ZjNDc5AE91dHB1dEJ1ZmZlcgBVc2Vy
Q29tcG9uZW50AENvbm5lY3Rpb25zAFZhcmlhYmxlcwBTY3JpcHRNYWluAE1pY3Jvc29mdC5WaXN1
YWxCYXNpYy5BcHBsaWNhdGlvblNlcnZpY2VzAEFwcGxpY2F0aW9uQmFzZQAuY3RvcgBNaWNyb3Nv
ZnQuVmlzdWFsQmFzaWMuRGV2aWNlcwBDb21wdXRlcgBTeXN0ZW0AT2JqZWN0AC5jY3RvcgBnZXRf
Q29tcHV0ZXIAbV9Db21wdXRlck9iamVjdFByb3ZpZGVyAGdldF9BcHBsaWNhdGlvbgBtX0FwcE9i
amVjdFByb3ZpZGVyAFVzZXIAZ2V0X1VzZXIAbV9Vc2VyT2JqZWN0UHJvdmlkZXIAZ2V0X1dlYlNl
cnZpY2VzAG1fTXlXZWJTZXJ2aWNlc09iamVjdFByb3ZpZGVyAEFwcGxpY2F0aW9uAFdlYlNlcnZp
Y2VzAEVxdWFscwBvAEdldEhhc2hDb2RlAFR5cGUAR2V0VHlwZQBUb1N0cmluZwBDcmVhdGVfX0lu
c3RhbmNlX18AVABpbnN0YW5jZQBEaXNwb3NlX19JbnN0YW5jZV9fAGdldF9HZXRJbnN0YW5jZQBN
aWNyb3NvZnQuVmlzdWFsQmFzaWMuTXlTZXJ2aWNlcy5JbnRlcm5hbABDb250ZXh0VmFsdWVgMQBt
X0NvbnRleHQAR2V0SW5zdGFuY2UAQ296eVJvYy5TU0lTUGx1cy4yMDE0AENvenlSb2MuU3FsU2Vy
dmVyLlNTSVMAU2NyaXB0QnVmZmVyUGx1cwBNaWNyb3NvZnQuU3FsU2VydmVyLlR4U2NyaXB0AE1p
Y3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lAFNjcmlwdENvbXBvbmVudABNaWNyb3NvZnQu
U3FsU2VydmVyLlBpcGVsaW5lSG9zdABQaXBlbGluZUJ1ZmZlcgBPdXRwdXROYW1lTWFwAENvbXBv
bmVudABPYmplY3RJRABJc0lucHV0AEJ1ZmZlcgBPdXRwdXRNYXAAZ2V0X1N0YXRpY0lucHV0Q29s
dW1ucwBnZXRfU3RhdGljT3V0cHV0Q29sdW1ucwBOZXh0Um93AEVuZE9mUm93c2V0AFN0YXRpY0lu
cHV0Q29sdW1ucwBTdGF0aWNPdXRwdXRDb2x1bW5zAEFkZFJvdwBTZXRFbmRPZlJvd3NldABTY3Jp
cHRDb21wb25lbnRQbHVzAElucHV0c0ZpbmlzaGVkAFByb2Nlc3NJbnB1dABJbnB1dElEAElucHV0
TmFtZQBGaW5pc2hPdXRwdXRzAE1hcmtPdXRwdXRzRmluaXNoZWQAUHJpbWVPdXRwdXQAT3V0cHV0
cwBPdXRwdXRJRHMAQnVmZmVycwBDcmVhdGVOZXdPdXRwdXRSb3dzAElucHV0X1Byb2Nlc3NJbnB1
dABJbnB1dF9Qcm9jZXNzSW5wdXRSb3cAUm93AFBhcmVudENvbXBvbmVudABQcmVFeGVjdXRlAFZh
bGlkYXRlAGVyck1lc3NhZ2UAZ2V0X0NvbHVtbgBzZXRfQ29sdW1uAHZhbHVlAGdldF9QYXR0ZXJu
AHNldF9QYXR0ZXJuAFNldHVwT3V0cHV0Q29sdW1uc18AbV9jb2x1bW4AbV9wYXR0ZXJuAFN5c3Rl
bS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9ucwBSZWdleABtX3JlZ2V4AG1faW5wdXRDb2x1bW4AU3lz
dGVtLkNvbGxlY3Rpb25zAEhhc2h0YWJsZQBtX291dENvbHNJZHgAQ29sdW1uAFBhdHRlcm4AU3lz
dGVtLkNvbXBvbmVudE1vZGVsAEVkaXRvckJyb3dzYWJsZUF0dHJpYnV0ZQBFZGl0b3JCcm93c2Fi
bGVTdGF0ZQBTeXN0ZW0uQ29kZURvbS5Db21waWxlcgBHZW5lcmF0ZWRDb2RlQXR0cmlidXRlAFN5
c3RlbS5EaWFnbm9zdGljcwBEZWJ1Z2dlckhpZGRlbkF0dHJpYnV0ZQBNaWNyb3NvZnQuVmlzdWFs
QmFzaWMuQ29tcGlsZXJTZXJ2aWNlcwBTdGFuZGFyZE1vZHVsZUF0dHJpYnV0ZQBIaWRlTW9kdWxl
TmFtZUF0dHJpYnV0ZQBTeXN0ZW0uQ29tcG9uZW50TW9kZWwuRGVzaWduAEhlbHBLZXl3b3JkQXR0
cmlidXRlAFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXMAUnVudGltZUhlbHBlcnMAR2V0
T2JqZWN0VmFsdWUAUnVudGltZVR5cGVIYW5kbGUAR2V0VHlwZUZyb21IYW5kbGUAQWN0aXZhdG9y
AENyZWF0ZUluc3RhbmNlAE15R3JvdXBDb2xsZWN0aW9uQXR0cmlidXRlAGdldF9WYWx1ZQBzZXRf
VmFsdWUAU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzAENvbVZpc2libGVBdHRyaWJ1dGUA
U3RyaW5nAFNjcmlwdEJ1ZmZlcgBDTFNDb21wbGlhbnRBdHRyaWJ1dGUATWljcm9zb2Z0LlNxbFNl
cnZlci5EVFNQaXBlbGluZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUuV3Jh
cHBlcgBJRFRTQ29tcG9uZW50TWV0YURhdGExMDAAZ2V0X0NvbXBvbmVudE1ldGFEYXRhAElEVFNJ
bnB1dENvbGxlY3Rpb24xMDAAZ2V0X0lucHV0Q29sbGVjdGlvbgBJRFRTSW5wdXQxMDAAZ2V0X0l0
ZW0AZ2V0X0lEAGdldF9FbmRPZlJvd3NldABHZXRPdXRwdXRJRABNYXRjaENvbGxlY3Rpb24ATWF0
Y2gAR3JvdXAARGljdGlvbmFyeUVudHJ5AElFbnVtZXJhdG9yAElEaWN0aW9uYXJ5RW51bWVyYXRv
cgBnZXRfQnVmZmVyAE1hdGNoZXMAR2V0RW51bWVyYXRvcgBnZXRfQ3VycmVudABHcm91cENvbGxl
Y3Rpb24AZ2V0X0dyb3VwcwBnZXRfS2V5AENvbnZlcnNpb25zAGdldF9TdWNjZXNzAFRvSW50ZWdl
cgBDYXB0dXJlAHNldF9JdGVtAE1vdmVOZXh0AElEaXNwb3NhYmxlAERpc3Bvc2UASURUU091dHB1
dDEwMABJRFRTT3V0cHV0Q29sdW1uMTAwAFJlZ2V4T3B0aW9ucwBJbnQzMgBQaXBlbGluZUNvbXBv
bmVudABnZXRfSG9zdENvbXBvbmVudABJRFRTQnVmZmVyTWFuYWdlcjEwMABnZXRfQnVmZmVyTWFu
YWdlcgBJRFRTSW5wdXRDb2x1bW5Db2xsZWN0aW9uMTAwAGdldF9JbnB1dENvbHVtbkNvbGxlY3Rp
b24ASURUU0lucHV0Q29sdW1uMTAwAGdldF9MaW5lYWdlSUQARmluZENvbHVtbkJ5TGluZWFnZUlE
AElEVFNPdXRwdXRDb2xsZWN0aW9uMTAwAGdldF9PdXRwdXRDb2xsZWN0aW9uAElEVFNPdXRwdXRD
b2x1bW5Db2xsZWN0aW9uMTAwAGdldF9PdXRwdXRDb2x1bW5Db2xsZWN0aW9uAGdldF9Db3VudABn
ZXRfTmFtZQBBZGQASURUU1ZpcnR1YWxJbnB1dENvbHVtbjEwMABJRFRTVmlydHVhbElucHV0MTAw
AEV4Y2VwdGlvbgBJc051bGxPckVtcHR5AEFwcGxpY2F0aW9uRXhjZXB0aW9uAFJlbW92ZUFsbABH
ZXRWaXJ0dWFsSW5wdXQASURUU1ZpcnR1YWxJbnB1dENvbHVtbkNvbGxlY3Rpb24xMDAAZ2V0X1Zp
cnR1YWxJbnB1dENvbHVtbkNvbGxlY3Rpb24ARFRTVXNhZ2VUeXBlAFNldFVzYWdlVHlwZQBQcm9q
ZWN0RGF0YQBTZXRQcm9qZWN0RXJyb3IAZ2V0X01lc3NhZ2UAQ2xlYXJQcm9qZWN0RXJyb3IAT3Bl
cmF0b3JzAENvbXBhcmVTdHJpbmcAR2V0R3JvdXBOYW1lcwBOZXcAc2V0X05hbWUATWljcm9zb2Z0
LlNxbFNlcnZlci5EVFNSdW50aW1lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5SdW50aW1l
LldyYXBwZXIARGF0YVR5cGUAU2V0RGF0YVR5cGVQcm9wZXJ0aWVzAFNTSVNTY3JpcHRDb21wb25l
bnRFbnRyeVBvaW50QXR0cmlidXRlAENvenlSb2MuU3FsU2VydmVyLlNTSVMuQXR0cmlidXRlcwBW
YWxpZGF0ZVByb3BlcnRpZXNBdHRyaWJ1dGUAU29ydFByb3BlcnRpZXNBdHRyaWJ1dGUASW5wdXRW
aXJ0dWFsQ29sdW1uQXR0cmlidXRlAERlc2NyaXB0aW9uQXR0cmlidXRlAFJlZ3VsYXJFeHByZXNz
aW9uRGlhbG9nQXR0cmlidXRlAENvbXBpbGF0aW9uUmVsYXhhdGlvbnNBdHRyaWJ1dGUAUnVudGlt
ZUNvbXBhdGliaWxpdHlBdHRyaWJ1dGUAU3lzdGVtLlJ1bnRpbWUuVmVyc2lvbmluZwBUYXJnZXRG
cmFtZXdvcmtBdHRyaWJ1dGUAU2NyaXB0Q29tcG9uZW50X2E0N2IzZDNiOGRjMzQ2YTFiYWU4ZDJj
ZmY2Y2ZjNDc5LmRsbAAAAAtJAG4AcAB1AHQAAA1PAHUAdABwAHUAdAAAKVMAZQBsAGUAYwB0ACAA
aQBuAHAAdQB0ACAAYwBvAGwAdQBtAG4ALgAAN1MAcABlAGMAaQBmAHkAIAByAGUAZwB1AGwAYQBy
ACAAZQB4AHAAcgBlAHMAcwBpAG8AbgAuAAAAAADGLnpX2XpGTqK6fSedEZHJAAi3elxWGTTgiQiw
P19/EdUKOgMgAAEDAAABBAAAEgwHBhUSGAESDAQAABIIBwYVEhgBEggEAAASEQcGFRIYARIRBAAA
EhQHBhUSGAESFAQIABIMBAgAEggECAASEQQIABIUBCABAhwDIAAIBCAAEhUDIAAOAh4ABxABAR4A
HgAHMAEBARAeAAITAAQgABMABwYVEhkBEwAEKAATAAgWz0kLuAw06giJhF3NgIDMkQsgBQESIQgC
EiUSKQQgAB0OAyAAAgQoAB0OAwYSKAMGEiwDBhIgAgYICSAEAQgOEiUSKQsgBAEIHQgdEiUSKQUg
AQESHAMGEiEFIAEBEiEFIAECEA4EIAEBDgIGDgMGEjEDBhI1AygADgUgAQERPQgBAAEAAAAAAAUg
AgEODhgBAApNeVRlbXBsYXRlCDEwLjAuMC4wAAAEAQAAAAYVEhgBEgwGFRIYARIIBhUSGAESEQYV
EhgBEhQEBwESDAQHARIIBAcBEhEEBwESFBABAAtNeS5Db21wdXRlcgAADAEAB015LlVzZXIAABMB
AA5NeS5XZWJTZXJ2aWNlcwAAEwEADk15LkFwcGxpY2F0aW9uAAAEAAEcHAMHAQIDBwEIBgABEhUR
WQQHARIVAwcBDgUQAQAeAAQKAR4ABAcBHgAHIAQBDg4ODmEBADRTeXN0ZW0uV2ViLlNlcnZpY2Vz
LlByb3RvY29scy5Tb2FwSHR0cENsaWVudFByb3RvY29sEkNyZWF0ZV9fSW5zdGFuY2VfXxNEaXNw
b3NlX19JbnN0YW5jZV9fAAAABhUSGAETAAYVEhkBEwAECgETAAUgAQETAAgHAxMAEwATAAQgAQEC
BQEAAAAABAcBHQ4EIAASdQQgABJ5BSABEn0cBgACCBIpDgQHAggIBCAAEiUEIAEcCAYgARKAgQ4F
IAASgJEDIAAcBSAAEoCVBSAAEoCZBAABDhwGIAESgIkOBAABCBwFIAIBCBwXBwcSgIESgIUSgIkR
gI0SgJESgJURgI0HIAIBDhGAsQUgABKAuQUgABKAvQUgABKAwQYgARKAxRwFIAIICAgFIAASgMkG
IAESgKkcBSAAEoDNBiABEoCtHAUgAgEcHA0HBggSfRKAqQgSgK0IBAABAg4FIAASgNUFIAASgOEG
IAESgNEcByACCAgRgOUGAAEBEoDZEgcHAgISfRKAqRKA0RKA1RKA2QYAAwgODgIFBwESgKkFIAAS
gK0KIAUBEYDxCAgICA8HBx0OCBKAqRIxEoCtCAgNAQAIVmFsaWRhdGUAAAUgAQEdDhcBAAIAAAAG
Q29sdW1uB1BhdHRlcm4AAEEBADxTZWxlY3QgaW5wdXQgY29sdW1uIHRvIHVzZSBpbiByZWd1bGFy
IGV4cHJlc3Npb24gZXh0cmFjdGlvbi4AAC8BACpTcGVjaWZ5IHJlZ3VsYXIgZXhwcmVzc2lvbiBm
b3IgZXh0cmFjdGlvbi4AAAQgAQEICAEACAAAAAAAHgEAAQBUAhZXcmFwTm9uRXhjZXB0aW9uVGhy
b3dzAUcBABouTkVURnJhbWV3b3JrLFZlcnNpb249djQuMAEAVA4URnJhbWV3b3JrRGlzcGxheU5h
bWUQLk5FVCBGcmFtZXdvcmsgNFBIAAAAAAAAAAAAAG5IAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAA
AABgSAAAAAAAAAAAAAAAAAAAAABfQ29yRGxsTWFpbgBtc2NvcmVlLmRsbAAAAAAA/yUAIAAQAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAEAAAABgA
AIAAAAAAAAAAAAAAAAAAAAEAAQAAADAAAIAAAAAAAAAAAAAAAAAAAAEAAAAAAEgAAABYYAAA7AIA
AAAAAAAAAAAA7AI0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8AAAAAAL0E7/4AAAEA
AAAAAAAAAAAAAAAAAAAAAD8AAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAABEAAAAAQBWAGEAcgBG
AGkAbABlAEkAbgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8AbgAAAAAAAACwBEwC
AAABAFMAdAByAGkAbgBnAEYAaQBsAGUASQBuAGYAbwAAACgCAAABADAAMAAwADAAMAA0AGIAMAAA
ACwAAgABAEYAaQBsAGUARABlAHMAYwByAGkAcAB0AGkAbwBuAAAAAAAgAAAAMAAIAAEARgBpAGwA
ZQBWAGUAcgBzAGkAbwBuAAAAAAAwAC4AMAAuADAALgAwAAAAjAA1AAEASQBuAHQAZQByAG4AYQBs
AE4AYQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfAGEANAA3AGIAMwBkADMA
YgA4AGQAYwAzADQANgBhADEAYgBhAGUAOABkADIAYwBmAGYANgBjAGYAYwA0ADcAOQAuAGQAbABs
AAAAAAAoAAIAAQBMAGUAZwBhAGwAQwBvAHAAeQByAGkAZwBoAHQAAAAgAAAAlAA1AAEATwByAGkA
ZwBpAG4AYQBsAEYAaQBsAGUAbgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0
AF8AYQA0ADcAYgAzAGQAMwBiADgAZABjADMANAA2AGEAMQBiAGEAZQA4AGQAMgBjAGYAZgA2AGMA
ZgBjADQANwA5AC4AZABsAGwAAAAAADQACAABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8AbgAA
ADAALgAwAC4AMAAuADAAAAA4AAgAAQBBAHMAcwBlAG0AYgBsAHkAIABWAGUAcgBzAGkAbwBuAAAA
MAAuADAALgAwAC4AMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAwAAACAOAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=]]></arrayElement></arrayElements></property><property id="9" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2014, 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=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property></properties><inputs><input id="14" name="Input" hasSideEffects="true"><externalMetadataColumns /></input></inputs><outputs><output id="16" name="Output" hasSideEffects="true"><externalMetadataColumns /></output></outputs></component>