<component id="2" name="RegEx Extract" componentClassID="Microsoft.ManagedComponentHost" description="Executes a custom script" localeId="1033" version="10" 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.2016, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\130\SDK\Assemblies\CozyRoc.SSISPlus.2016.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=13.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=13.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=13.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=13.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_SC130</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 = 0 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:CodeName>ScriptComponent_a47b3d3b8dc346a1bae8d2cff6cfc479</msb:CodeName>
		<msb:NoContent>Reference;Import;Folder</msb:NoContent>
		<msb:ProjectId>{F40B14E2-A83E-442C-B866-9D76B5AE8B6C}</msb:ProjectId>
		<msb:DisplayName>ScriptComponent_a47b3d3b8dc346a1bae8d2cff6cfc479</msb:DisplayName>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Folder Include="My Project\"/>
		<msb:File Include="ScriptMain.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="BufferWrapper.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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
xgLZDVECFwB5JQAAAABGA7sMBgAbAOElAAAAAEYDxg07AhsAeSUAAAAARgMDDjsCHAD0JQAAAAAG
GGYKXQIdAAMmAAAAAAYYZgpdAh4AEiYAAAAABhhmCgYAHwAaJgAAAAAGGGYKBgAfACImAAAAABMI
8gljAh8ALiYAAAAAEwhGB2gCHwA6JgAAAAATCOAJbQIfAEYmAAAAABMIrgpzAh8AUiYAAAAAERhs
ChwBHwB8JgAAAADGAsMLjAEfAIomAAAAAMYC2QK5ACAAkiYAAAAAgwCWA3gCIACeJgAAAADGAiIG
UAAgAKgmAAAAABEAIgJ+AiAAyCYAAAAAAQAOAoYCIQDRJgAAAAAGGGYKBgAiANwmAAAAAAMIwAJs
ASIAECcAAAAABhhmCgYAIgAAAAEAHQ4AAAEA8QIAAAEA9AUAAAEA9AUAAAEARw0AAAIA2AEAAAMA
vg0AAAQAVAkAAAUAZAgAAAEARw0AAAIA2AEAAAMAvg0AAAQAVAkAAAUAZAgAAAEA7gUAAAEA7gUA
AAEA7gUAAAEA7gUAAAEA4QEAAAIASAMAAAMAVAkAAAQAZAgAAAEAjgwAAAIAcwoAAAMAWwwAAAQA
ZAgAAAEAVAkAAAEAHQ4AAAEARw0AAAEARw0AAAEAVAgAAAEA0AIAAAEA0AIJAGYKAQARAGYKBgAZ
AGYKCgApAGYKEAAxAGYKFQA5AGYKEABBAGYKBgBJAGYKGwC5AGYKEADBAGYKBgDJAGYKBgABAWYK
IAARAWYKJgApAWYKBgAxAWYKBgA5AWYKBgBJAWYKLQBZAWYKGwBpAWYKEADRABsJRgDhANgGSwD5
ACIGUABRAGsLVABhADgKWgBpAFENXwBZADgKYwBxAFAMaACBAHAOXwB5ASIGbgBxAdgGcwCJAHwM
eQCBANEFXwB5AW0JfQCBAdEFUADhAOEGggBpAOUNeQCJAbYDBgDZAMYFBgBRAGYKkwDZAEkCmwCZ
AdoHoQChAdgGpwDxAD8NrQCxAVsJswCRABsJuQCRAHQHvQDBAdgGwwDJAbQBuQC5AcIBygBZAGYK
BgCZAe4H0ADRAdgG1gCZAK8H3ADZAV0NuQDZAdgG4gChADYDUACZABsJuQChALQBuQBZAIoC6ADh
AYgO9wDpAWYKEADBAXEGBgCRAK4N/ADxAY4HAgH5AdgGCAGpALQBuQDxAYkDDgEJAhwKFgGxAOUC
UAAJAgoKHAERAhQGJAHZAXEGBgBRAGYKEABRAJMLNAHZAfgNOQGhAD8DEAChAHMLPgHRAGYKSQEh
AhkOeQAhAvMMeQDRAOEGggDRANAGAQApAmYKEAAhAvwNBgAhAvAMBgDxAGYKBgCRAK0BuQDhAOAM
eQDZAOkBXgH5AGYKBgAZAWYKBgAhAWYKBgAMAMACbAEUAMACbAEcAMACbAEkAMACbAEMAGYKBgAU
AGYKBgAcAGYKBgAkAGYKBgAxAuUFhwH5AMMLjAH5ANkCuQBRASQDkQFBArECogE0AO4NuQE8ANEF
bAE8ANsF0gE8AGYKBgApAEsA4wMpAFMANAMuAAsAtQIuABMAvgIuABsA3QIuACMA5gJDACsAQgND
ADMAWgNDADsANANDAEMALgNJAEsAJQRJAFsANANjAEMALgODAEMALgOjAEMALgMDAWMAaAMDAWsA
OQMjAWMAaAMjAWsAOQNDAXsANANDAYMANANDAWMAaANjAWsAOQNjAYsAgQNpAZsAVQSDAWsAOQOD
AZMALgOJAZsAZgSpAZsAegTJAZsAhwQgBEMALgNABEMALgOABHMANAOABGsAOQOgBHMANAPABHMA
NAPgBHMANAMABXMANANABWsAOQNABXMANANgBWsAOQNgBXMANAOABWsAOQOABXMANAOgBWsAOQOg
BXMANAPABXMANAPgBXMANAMABnMANAMABmsAOQMgBnMANANABnMANANABmsAOQM1AIgA7gAgASsB
VQFZAZoBrQECAAEAAwADAAQABQAKAAsADAAPAAAANgeOAgAAQgiOAgAAzguSAgAA5QuSAgAAzguS
AgAA7QmOAgAAtAaXAgAAqQ2OAgAAxAaXAgAA5QuSAgAAAQqbAgAAWAegAgAA5AmlAgAAwAqrAgAA
xAKwAgIABQADAAEABgADAAIABwAFAAEACAAFAAIACwAHAAIADAAJAAIAEAALAAEAEQANAAEAEgAP
AAEAEwARAAEAFAATAAIAFQAVAAIAJQAXAAIAJgAZAAIAJwAbAAIAKAAdAAIAMQAfAGUBcQF4AYAB
nwGyAcIBygEEgAAAAAAAAAAAAAAAAAAAAABzAQAABAAAAAAAAAAAAAAA2AFrAgAAAAABAAAAAAAA
AAAAAADhAV0BAAAAAA0AAAAAAAAAAAAAAOoBZw0AAAAABAAAAAAAAAAAAAAA2AHqBgAAAAANAAAA
AAAAAAAAAADqAZEIAAAAAA0AAAAAAAAAAAAAAOoBhA0AAAAACgAAAAAAAAAAAAAA8wF0AgAAAAAN
AAAAAAAAAAAAAADqAW4IAAAAAAsACgAMAAoAAAAQABgADAIAABAAXQAMAgAAAABfAAwC0wCoAdMA
zQEAAAAAAElEVFNDb21wb25lbnRNZXRhRGF0YTEwMABJRFRTSW5wdXRDb2x1bW4xMDAASURUU1Zp
cnR1YWxJbnB1dENvbHVtbjEwMABJRFRTT3V0cHV0Q29sdW1uMTAwAElEVFNJbnB1dENvbHVtbkNv
bGxlY3Rpb24xMDAASURUU1ZpcnR1YWxJbnB1dENvbHVtbkNvbGxlY3Rpb24xMDAASURUU091dHB1
dENvbHVtbkNvbGxlY3Rpb24xMDAASURUU0lucHV0Q29sbGVjdGlvbjEwMABJRFRTT3V0cHV0Q29s
bGVjdGlvbjEwMABJRFRTQnVmZmVyTWFuYWdlcjEwMABJRFRTSW5wdXQxMDAASURUU1ZpcnR1YWxJ
bnB1dDEwMABJRFRTT3V0cHV0MTAwAENvbnRleHRWYWx1ZWAxAFRocmVhZFNhZmVPYmplY3RQcm92
aWRlcmAxAEludDMyAENvenlSb2MuU1NJU1BsdXMuMjAxNgBTY3JpcHRDb21wb25lbnRfYTQ3YjNk
M2I4ZGMzNDZhMWJhZThkMmNmZjZjZmM0NzkAPE1vZHVsZT4AZ2V0X0lEAGdldF9MaW5lYWdlSUQA
RmluZENvbHVtbkJ5TGluZWFnZUlEAE9iamVjdElEAElucHV0SUQAR2V0T3V0cHV0SUQAQ296eVJv
Yy5TcWxTZXJ2ZXIuU1NJUwBUAERpc3Bvc2VfX0luc3RhbmNlX18AQ3JlYXRlX19JbnN0YW5jZV9f
AFNldHVwT3V0cHV0Q29sdW1uc18AZ2V0X0NvbXBvbmVudE1ldGFEYXRhAFByb2plY3REYXRhAG1z
Y29ybGliAE1pY3Jvc29mdC5WaXN1YWxCYXNpYwBBZGQASW5wdXRzRmluaXNoZWQATWFya091dHB1
dHNGaW5pc2hlZABDcmVhdGVJbnN0YW5jZQBnZXRfR2V0SW5zdGFuY2UAaW5zdGFuY2UAR2V0SGFz
aENvZGUAZ2V0X01lc3NhZ2UAZXJyTWVzc2FnZQBJRGlzcG9zYWJsZQBIYXNodGFibGUAUnVudGlt
ZVR5cGVIYW5kbGUAR2V0VHlwZUZyb21IYW5kbGUAZ2V0X05hbWUAc2V0X05hbWUASW5wdXROYW1l
AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lAERhdGFUeXBlAERUU1VzYWdlVHlwZQBT
ZXRVc2FnZVR5cGUAR2V0VHlwZQBDYXB0dXJlAEFwcGxpY2F0aW9uQmFzZQBEaXNwb3NlAFZhbGlk
YXRlAEVkaXRvckJyb3dzYWJsZVN0YXRlAEhlbHBLZXl3b3JkQXR0cmlidXRlAEdlbmVyYXRlZENv
ZGVBdHRyaWJ1dGUARGVidWdnYWJsZUF0dHJpYnV0ZQBFZGl0b3JCcm93c2FibGVBdHRyaWJ1dGUA
Q29tVmlzaWJsZUF0dHJpYnV0ZQBTdGFuZGFyZE1vZHVsZUF0dHJpYnV0ZQBIaWRlTW9kdWxlTmFt
ZUF0dHJpYnV0ZQBSZWd1bGFyRXhwcmVzc2lvbkRpYWxvZ0F0dHJpYnV0ZQBUYXJnZXRGcmFtZXdv
cmtBdHRyaWJ1dGUARGVidWdnZXJIaWRkZW5BdHRyaWJ1dGUASW5wdXRWaXJ0dWFsQ29sdW1uQXR0
cmlidXRlAE15R3JvdXBDb2xsZWN0aW9uQXR0cmlidXRlAERlc2NyaXB0aW9uQXR0cmlidXRlAFZh
bGlkYXRlUHJvcGVydGllc0F0dHJpYnV0ZQBTb3J0UHJvcGVydGllc0F0dHJpYnV0ZQBDb21waWxh
dGlvblJlbGF4YXRpb25zQXR0cmlidXRlAENMU0NvbXBsaWFudEF0dHJpYnV0ZQBTU0lTU2NyaXB0
Q29tcG9uZW50RW50cnlQb2ludEF0dHJpYnV0ZQBSdW50aW1lQ29tcGF0aWJpbGl0eUF0dHJpYnV0
ZQBQcmVFeGVjdXRlAGdldF9WYWx1ZQBzZXRfVmFsdWUAR2V0T2JqZWN0VmFsdWUAdmFsdWUAU3lz
dGVtLlJ1bnRpbWUuVmVyc2lvbmluZwBDb21wYXJlU3RyaW5nAFRvU3RyaW5nAE1hdGNoAE1pY3Jv
c29mdC5WaXN1YWxCYXNpYy5NeVNlcnZpY2VzLkludGVybmFsAFN5c3RlbS5Db21wb25lbnRNb2Rl
bABSZW1vdmVBbGwAU2NyaXB0Q29tcG9uZW50X2E0N2IzZDNiOGRjMzQ2YTFiYWU4ZDJjZmY2Y2Zj
NDc5LmRsbABzZXRfdXNlcl9Jc051bGwAc2V0X2hvc3RfSXNOdWxsAFNldE51bGwAZ2V0X0l0ZW0A
c2V0X0l0ZW0AU3lzdGVtAFN5c3RlbS5Db21wb25lbnRNb2RlbC5EZXNpZ24AU2NyaXB0TWFpbgBn
ZXRfQ29sdW1uAHNldF9Db2x1bW4AbV9pbnB1dENvbHVtbgBtX2NvbHVtbgBnZXRfQXBwbGljYXRp
b24ATXlBcHBsaWNhdGlvbgBNYXRjaENvbGxlY3Rpb24AZ2V0X0lucHV0Q29sdW1uQ29sbGVjdGlv
bgBnZXRfVmlydHVhbElucHV0Q29sdW1uQ29sbGVjdGlvbgBnZXRfT3V0cHV0Q29sdW1uQ29sbGVj
dGlvbgBHcm91cENvbGxlY3Rpb24AZ2V0X0lucHV0Q29sbGVjdGlvbgBnZXRfT3V0cHV0Q29sbGVj
dGlvbgBBcHBsaWNhdGlvbkV4Y2VwdGlvbgBJbnZhbGlkT3BlcmF0aW9uRXhjZXB0aW9uAGdldF9Q
YXR0ZXJuAHNldF9QYXR0ZXJuAG1fcGF0dGVybgBvAE91dHB1dE5hbWVNYXAAT3V0cHV0TWFwAE1p
Y3Jvc29mdC5TcWxTZXJ2ZXIuRFRTUnVudGltZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZlci5EVFNQ
aXBlbGluZVdyYXAAR3JvdXAAbV9BcHBPYmplY3RQcm92aWRlcgBtX1VzZXJPYmplY3RQcm92aWRl
cgBtX0NvbXB1dGVyT2JqZWN0UHJvdmlkZXIAbV9NeVdlYlNlcnZpY2VzT2JqZWN0UHJvdmlkZXIA
Z2V0X0J1ZmZlcgBQaXBlbGluZUJ1ZmZlcgBTY3JpcHRCdWZmZXIASW5wdXRCdWZmZXIAT3V0cHV0
QnVmZmVyAGdldF9CdWZmZXJNYW5hZ2VyAFRvSW50ZWdlcgBTeXN0ZW0uQ29kZURvbS5Db21waWxl
cgBNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5SdW50aW1lLldyYXBwZXIATWljcm9zb2Z0LlNxbFNl
cnZlci5EdHMuUGlwZWxpbmUuV3JhcHBlcgBnZXRfVXNlcgBzZXRfdXNlcgBnZXRfQ29tcHV0ZXIA
TXlDb21wdXRlcgBDbGVhclByb2plY3RFcnJvcgBTZXRQcm9qZWN0RXJyb3IASUVudW1lcmF0b3IA
R2V0RW51bWVyYXRvcgBJRGljdGlvbmFyeUVudW1lcmF0b3IAQWN0aXZhdG9yAC5jdG9yAC5jY3Rv
cgBPdXRwdXRJRHMAU3lzdGVtLkRpYWdub3N0aWNzAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5EZXZp
Y2VzAGdldF9XZWJTZXJ2aWNlcwBNeVdlYlNlcnZpY2VzAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5B
cHBsaWNhdGlvblNlcnZpY2VzAFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcwBNaWNyb3Nv
ZnQuVmlzdWFsQmFzaWMuQ29tcGlsZXJTZXJ2aWNlcwBTeXN0ZW0uUnVudGltZS5Db21waWxlclNl
cnZpY2VzAERlYnVnZ2luZ01vZGVzAE1hdGNoZXMAU2V0RGF0YVR5cGVQcm9wZXJ0aWVzAFZhcmlh
YmxlcwBHZXRHcm91cE5hbWVzAENvenlSb2MuU3FsU2VydmVyLlNTSVMuQXR0cmlidXRlcwBFcXVh
bHMAZ2V0X1N0YXRpY0lucHV0Q29sdW1ucwBnZXRfU3RhdGljT3V0cHV0Q29sdW1ucwBDb252ZXJz
aW9ucwBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnMAU3lzdGVtLkNvbGxlY3Rpb25zAENv
bm5lY3Rpb25zAFJlZ2V4T3B0aW9ucwBnZXRfR3JvdXBzAEJ1ZmZlcnMAUnVudGltZUhlbHBlcnMA
T3BlcmF0b3JzAGdldF9TdWNjZXNzAEZpbmlzaE91dHB1dHMAU2NyaXB0QnVmZmVyUGx1cwBTY3Jp
cHRDb21wb25lbnRQbHVzAENyZWF0ZU5ld091dHB1dFJvd3MAT2JqZWN0AE15UHJvamVjdABnZXRf
RW5kT2ZSb3dzZXQAU2V0RW5kT2ZSb3dzZXQAUGlwZWxpbmVDb21wb25lbnQAVXNlckNvbXBvbmVu
dABQYXJlbnRDb21wb25lbnQAU2NyaXB0Q29tcG9uZW50AGdldF9Ib3N0Q29tcG9uZW50AGdldF9D
dXJyZW50AGdldF9Db3VudABNaWNyb3NvZnQuU3FsU2VydmVyLlR4U2NyaXB0AE1pY3Jvc29mdC5T
cWxTZXJ2ZXIuUGlwZWxpbmVIb3N0AHNldF9ob3N0AEdldFZpcnR1YWxJbnB1dABJc0lucHV0AElu
cHV0X1Byb2Nlc3NJbnB1dABQcmltZU91dHB1dABNb3ZlTmV4dABtX0NvbnRleHQATmV3AEFkZFJv
dwBJbnB1dF9Qcm9jZXNzSW5wdXRSb3cATmV4dFJvdwBtX291dENvbHNJZHgAUmVnZXgAbV9yZWdl
eABTY3JpcHRDb21wb25lbnRfYTQ3YjNkM2I4ZGMzNDZhMWJhZThkMmNmZjZjZmM0NzkuTXkAZ2V0
X0tleQBEaWN0aW9uYXJ5RW50cnkASXNOdWxsT3JFbXB0eQAAAAApUwBlAGwAZQBjAHQAIABpAG4A
cAB1AHQAIABjAG8AbAB1AG0AbgAuAAA3UwBwAGUAYwBpAGYAeQAgAHIAZQBnAHUAbABhAHIAIABl
AHgAcAByAGUAcwBzAGkAbwBuAC4AAICbSQBzAE4AdQBsAGwAIABwAHIAbwBwAGUAcgB0AHkAIABj
AGEAbgBuAG8AdAAgAGIAZQAgAHMAZQB0ACAAdABvACAARgBhAGwAcwBlAC4AIABBAHMAcwBpAGcA
bgAgAGEAIAB2AGEAbAB1AGUAIAB0AG8AIAB0AGgAZQAgAGMAbwBsAHUAbQBuACAAaQBuAHMAdABl
AGEAZAAuAAAJdQBzAGUAcgAACWgAbwBzAHQAAAtJAG4AcAB1AHQAAA1PAHUAdABwAHUAdAAAAAAb
WkLqutOWR4u67jjiVbDLAAQgAQEIAyAAAQUgAQEREQQgAQEOBSABAR0OBCABAQIFIAIBDg4GIAEB
EYCFByAEAQ4ODg4QBwcSMRI1EjkSPRFBEUESRQQgABJxBCABHAgDIAAOBSABEjEOBCAAEjUDIAAc
BCAAEj0FIAASgLkEAAEOHAUgARJFDgMgAAIEAAEIHAUgAgEIHAoHBRJJEk0ICBJRByACAQ4RgMkF
IAASgM0FIAASgNEFIAESSRwFIAASgNkFIAASgN0DIAAIBSAAEoDhBiABEoDlHAUgAggICAUgABKA
6QUgARJNHAUgABKA7QUgARJRHAUgAgEcHAgHBAICElUSWQQAAQIOBSAAEoD5BSAAEoD9BSABElUc
ByACCAgRgQEFAAEBElkDAAABAwcBDgYAAwgODgIIBwQdDhJNCAgEIAAdDgQgABJRCiAFARGBDQgI
CAgLIAUBEm0IAhJxEnUDBwECBAcCCAgGAAIIEnUOBhUSMAESJAQgABMABhUSMAESIAcVEjABEoCh
BhUSMAESLAQAARwcBCABAhwIAAESgKkRgR0EBwEeAAIeAAUQAQAeAAQKAR4ABAcBEwAGFRIwARMA
CAYVEoCxARMABxUSgLEBEwACEwAECgETAAUgAQETAAi3elxWGTTgiQgWz0kLuAw06giJhF3NgIDM
kQiwP19/EdUKOgIGDgMGEikCBggDBhItAwYSGAMGEhwDBhIQAwYSbQcGFRIwARIkBwYVEjABEiAI
BhUSMAESgKEHBhUSMAESLAUgAQESDAUgAQIQDgkgBAEIDhJxEnULIAQBCB0IHRJxEnUFIAEBEm0E
AAASJAQAABIgBQAAEoChBAAAEiwFIAASgKkHEAEBHgAeAAcwAQEBEB4AAygADgQoAB0OAygAAgQI
ABIkBAgAEiAFCAASgKEECAASLAQoABMACAEACAAAAAAAHgEAAQBUAhZXcmFwTm9uRXhjZXB0aW9u
VGhyb3dzAQgBAAIAAAAAAEcBABouTkVURnJhbWV3b3JrLFZlcnNpb249djQuMAEAVA4URnJhbWV3
b3JrRGlzcGxheU5hbWUQLk5FVCBGcmFtZXdvcmsgNAUBAAAAAAQBAAAACAEAAQAAAAAAFwEAAgAA
AAZDb2x1bW4HUGF0dGVybgAADQEACFZhbGlkYXRlAAAYAQAKTXlUZW1wbGF0ZQgxMS4wLjAuMAAA
YQEANFN5c3RlbS5XZWIuU2VydmljZXMuUHJvdG9jb2xzLlNvYXBIdHRwQ2xpZW50UHJvdG9jb2wS
Q3JlYXRlX19JbnN0YW5jZV9fE0Rpc3Bvc2VfX0luc3RhbmNlX18AAABBAQA8U2VsZWN0IGlucHV0
IGNvbHVtbiB0byB1c2UgaW4gcmVndWxhciBleHByZXNzaW9uIGV4dHJhY3Rpb24uAAAvAQAqU3Bl
Y2lmeSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIGV4dHJhY3Rpb24uAAAQAQALTXkuQ29tcHV0ZXIA
ABMBAA5NeS5BcHBsaWNhdGlvbgAADAEAB015LlVzZXIAABMBAA5NeS5XZWJTZXJ2aWNlcwAAAHRI
AAAAAAAAAAAAAI5IAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAACASAAAAAAAAAAAAAAAAF9Db3JE
bGxNYWluAG1zY29yZWUuZGxsAAAAAAD/JQAgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAEAAAABgA
AIAAAAAAAAAAAAAAAAAAAAEAAQAAADAAAIAAAAAAAAAAAAAAAAAAAAEAAAAAAEgAAABYYAAA7AIA
AAAAAAAAAAAA7AI0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8AAAAAAL0E7/4AAAEA
AAAAAAAAAAAAAAAAAAAAAD8AAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAABEAAAAAQBWAGEAcgBG
AGkAbABlAEkAbgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8AbgAAAAAAAACwBEwC
AAABAFMAdAByAGkAbgBnAEYAaQBsAGUASQBuAGYAbwAAACgCAAABADAAMAAwADAAMAA0AGIAMAAA
ACwAAgABAEYAaQBsAGUARABlAHMAYwByAGkAcAB0AGkAbwBuAAAAAAAgAAAAMAAIAAEARgBpAGwA
ZQBWAGUAcgBzAGkAbwBuAAAAAAAwAC4AMAAuADAALgAwAAAAigA1AAEASQBuAHQAZQByAG4AYQBs
AE4AYQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfAGEANAA3AGIAMwBkADMA
YgA4AGQAYwAzADQANgBhADEAYgBhAGUAOABkADIAYwBmAGYANgBjAGYAYwA0ADcAOQAuAGQAbABs
AAAAAAAoAAIAAQBMAGUAZwBhAGwAQwBvAHAAeQByAGkAZwBoAHQAAAAgAAAAkgA1AAEATwByAGkA
ZwBpAG4AYQBsAEYAaQBsAGUAbgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0
AF8AYQA0ADcAYgAzAGQAMwBiADgAZABjADMANAA2AGEAMQBiAGEAZQA4AGQAMgBjAGYAZgA2AGMA
ZgBjADQANwA5AC4AZABsAGwAAAAAADQACAABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8AbgAA
ADAALgAwAC4AMAAuADAAAAA4AAgAAQBBAHMAcwBlAG0AYgBsAHkAIABWAGUAcgBzAGkAbwBuAAAA
MAAuADAALgAwAC4AMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAwAAACgOAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=]]></arrayElement></arrayElements></property><property id="5" 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="6" 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><property id="12" name="UserComponentTypeName" dataType="System.String">CozyRoc.ScriptComponentHostPlus</property></properties><inputs><input id="15" name="Input" hasSideEffects="true"><externalMetadataColumns /></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>