<component id="2" name="Script Component" 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.

' The following resources were used as a reference:
' http://www.odata.org/developers/protocols/overview
' http://msdn.microsoft.com/en-us/library/ff478141.aspx

Imports System
Imports System.ComponentModel
Imports System.Collections
Imports System.Xml
Imports System.IO

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


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<SortProperties(New String() { _
    "Connection", "BatchSize", _
    "Collection", "IsQueryVariable", "Query", "QueryVariable"})> _
<FilterProperties("GetProperties")> _
<ValidateProperties("Validate")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub CreateNewOutputRows()
        Dim colsIdx As Hashtable = GetColumnsIdx_()

        ' Setup query template.
        Dim queryStr As String = Me.Query
        If Me.IsQueryVariable Then
            ' Query is contained in variable.
            queryStr = CStr(GetVariable_(Me.QueryVariable))
        End If

        Dim queryTemplate_1P As String = Me.Collection & "?"
        If Not String.IsNullOrEmpty(queryStr) Then
            queryTemplate_1P &= queryStr & "&"
        End If

        queryTemplate_1P &= String.Format("$top={0}&$skip={1}", Me.BatchSize, "{0}")

        Dim doc As XmlDocument = New XmlDocument()
        Dim conn As Object = Me.Connections.Http.AcquireConnection(Nothing)
        Dim connection As HttpClientConnection = New HttpClientConnection(conn)
        Dim page As Integer = 0
        Dim ns As XmlNamespaceManager = Nothing

        Try
            While True
                ' Download data.
                connection.ServerURL = String.Format(queryTemplate_1P, page * Me.BatchSize)
                Using odataStream As Stream = New MemoryStream(connection.DownloadData())
                    Call doc.Load(odataStream)
                End Using

                If ns Is Nothing Then
                    ' Initialize namespace manager.
                    ns = New XmlNamespaceManager(doc.NameTable)
                    Call ns.AddNamespace("atom", "http://www.w3.org/2005/Atom")
                End If

                Dim entryList As XmlNodeList = doc.SelectNodes("/atom:feed/atom:entry", ns)
                If entryList.Count = 0 Then
                    ' Reached end of feed.
                    Call OutputBuffer.SetEndOfRowset()
                    Exit While
                End If

                ' Push items.
                For Each entry As XmlElement In entryList
                    With OutputBuffer
                        Call .AddRow()

                        ' Setup atom data.
                        .Buffer(CInt(colsIdx("atom_id"))) = GetText_(entry("id"))
                        .Buffer(CInt(colsIdx("atom_title"))) = GetText_(entry("title"))
                        .Buffer(CInt(colsIdx("atom_updated"))) = DateTime.Parse(GetText_(entry("updated")))
                        .Buffer(CInt(colsIdx("atom_author"))) = GetText_(entry("author"))

                        Dim linkElem As XmlElement = entry("link")
                        If Not linkElem Is Nothing Then
                            Dim link As String = linkElem.GetAttribute("href")
                            If Not link.StartsWith("http://") Then
                                ' Link is relative.
                                link = doc.DocumentElement.GetAttribute("xml:base") & link
                            End If
                            .Buffer(CInt(colsIdx("atom_link"))) = link
                        End If

                        Dim categoryElem As XmlElement = entry("category")
                        If Not categoryElem Is Nothing Then
                            .Buffer(CInt(colsIdx("atom_category"))) = categoryElem.GetAttribute("term")
                        End If

                        ' Setup collection properties.
                        Dim contentElem As XmlElement = entry("content")
                        If Not contentElem Is Nothing Then
                            Dim propsList As XmlNodeList = contentElem("m:properties").ChildNodes
                            For Each propElem As XmlElement In propsList
                                If colsIdx.Contains(propElem.LocalName) Then
                                    Dim value As Object

                                    Select Case propElem.GetAttribute("m:type")
                                        Case "Edm.Binary"
                                            value = Convert.FromBase64String(propElem.InnerText)

                                        Case Else
                                            value = propElem.InnerText
                                    End Select

                                    .Buffer(CInt(colsIdx(propElem.LocalName))) = value
                                End If
                            Next
                        End If
                    End With
                Next

                page += 1
            End While
        Catch ex As Exception
            Call FireError_(ex.Message)
        Finally
            Call Me.Connections.Http.ReleaseConnection(conn)
        End Try
    End Sub ' CreateNewOutputRows


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns list of current properties based on current state.
    Public Function GetProperties() As String()
        Dim result As New ArrayList

        Call result.Add("Connection")
        Call result.Add("BatchSize")
        Call result.Add("Collection")
        Call result.Add("IsQueryVariable")
        Call result.Add(IIf(Me.IsQueryVariable, "QueryVariable", "Query"))

        Return CType(result.ToArray(GetType(String)), String())
    End Function    ' GetProperties


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

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

            If String.IsNullOrEmpty(Me.Collection) Then
                Throw New Exception("Specify collection.")
            End If

            Dim output As IDTSOutput100 = MyBase.ComponentMetaData.OutputCollection(0)
            If output.OutputColumnCollection.Count = 0 Then
                ' Setup collection output columns.
                Call SetupOutputColumns_()
            End If

            Me.ComponentMetaData.RuntimeConnectionCollection("Http").ConnectionManagerID = Me.Connection
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    ' Validate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns list of tables in the currently selected Oracle connection.
    Public Function GetCollections() As String()
        Dim result As ArrayList = New ArrayList()

        ' Download collections.
        Dim doc As XmlDocument = New XmlDocument()
        Dim conn As Object = Me.DesignConnections(Me.Connection).AcquireConnection(Nothing)
        Dim connection As HttpClientConnection = New HttpClientConnection(conn)
        Try
            Using odataStream As Stream = New MemoryStream(connection.DownloadData())
                Call doc.Load(odataStream)
            End Using
        Finally
            Call Me.DesignConnections(Me.Connection).ReleaseConnection(conn)
        End Try

        ' Setup collections list.
        Dim ns As XmlNamespaceManager = New XmlNamespaceManager(doc.NameTable)
        Call ns.AddNamespace("app", "http://www.w3.org/2007/app")
        Dim collections As XmlNodeList = doc.SelectNodes("/app:service/app:workspace/app:collection", ns)
        For Each collection As XmlElement In collections
            Dim href As String = collection.GetAttribute("href")
            If Not href.StartsWith("http://") Then
                ' The collection reference is relative.
                href = Connection.ServerURL & "/" & href
            End If

            Call result.Add(href)
        Next

        Return CType(result.ToArray(GetType(String)), String())
    End Function    ' GetCollections


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select HTTP Connection Manager.")> _
    <Category("Settings")> _
    <Connection("HttpConnectionType")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property Connection() As String
        Get
            Connection = m_connection
        End Get
        Set(ByVal value As String)
            If m_connection <> value Then
                m_connection = value
                Me.Collection = String.Empty
            End If
        End Set
    End Property    ' Connection


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specifies the number of rows to be retrieved as a batch.")> _
    <Category("Settings")> _
    <DefaultValue(100)> _
    Public Property BatchSize() As Integer
        Get
            BatchSize = m_batchSize
        End Get
        Set(ByVal value As Integer)
            m_batchSize = value
        End Set
    End Property    ' BatchSize


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select OData collection.")> _
    <Category("Source")> _
    <List("GetCollections")> _
    Public Property Collection() As String
        Get
            Collection = m_collection
        End Get
        Set(ByVal value As String)
            If m_collection <> value Then
                If Not String.IsNullOrEmpty(m_collection) Then
                    ' Force output columns to be reloaded.
                    If Me.ComponentMetaData.OutputCollection.Count > 0 Then
                        Dim output As IDTSOutput100 = Me.ComponentMetaData.OutputCollection(0)
                        Call output.OutputColumnCollection.RemoveAll()
                    End If
                End If

                m_collection = value
            End If
        End Set
    End Property    ' Collection


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Indicates whether the query is stored in a variable.")> _
    <Category("Source")> _
    <RefreshProperties(RefreshProperties.All)> _
    <DefaultValue(False)> _
    Public Property IsQueryVariable() As Boolean
        Get
            IsQueryVariable = m_isQueryVariable
        End Get
        Set(ByVal value As Boolean)
            If m_isQueryVariable <> value Then
                m_isQueryVariable = value
                Me.Query = String.Empty
            End If
        End Set
    End Property    ' IsQueryVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify OData query.")> _
    <Category("Source")> _
    Public Property Query() As String
        Get
            Query = m_query
        End Get
        Set(ByVal value As String)
            m_query = value
        End Set
    End Property    ' Table


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specifies the variable that contains the query.")> _
    <Category("Source")> _
    <Variable()> _
    Public Property QueryVariable() As String
        Get
            QueryVariable = Me.Query
        End Get
        Set(ByVal value As String)
            Me.Query = value
        End Set
    End Property    ' QueryVariable
#End Region ' Properties


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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub SetupOutputColumns_()
        ' Load collection properties.
        Dim metaService As String = Me.Collection.Substring(0, Me.Collection.LastIndexOf("/") + 1) + "$metadata"
        Dim collectionName As String = Me.Collection.Substring(Me.Collection.LastIndexOf("/") + 1)

        Dim doc As XmlDocument = New XmlDocument()
        Dim conn As Object = Me.DesignConnections(Me.Connection).AcquireConnection(Nothing)
        Dim connection As HttpClientConnection = New HttpClientConnection(conn)
        Dim serverURL As String = connection.ServerURL
        Try
            connection.ServerURL = metaService
            Using odataStream As Stream = New MemoryStream(connection.DownloadData())
                Call doc.Load(odataStream)
            End Using
        Finally
            connection.ServerURL = serverURL
            Call Me.DesignConnections(Me.Connection).ReleaseConnection(conn)
        End Try

        Dim ns As XmlNamespaceManager = New XmlNamespaceManager(doc.NameTable)
        Call ns.AddNamespace("edm", "http://schemas.microsoft.com/ado/2007/05/edm")
        Call ns.AddNamespace("edmx", "http://schemas.microsoft.com/ado/2007/06/edmx")
        Dim props As XmlNodeList = doc.SelectNodes( _
            String.Format("/edmx:Edmx/edmx:DataServices/edm:Schema/edm:EntityType['{0}']/edm:Property", collectionName), _
            ns)

        Dim output As IDTSOutput100 = MyBase.ComponentMetaData.OutputCollection(0)
        Call output.OutputColumnCollection.RemoveAll()
        Dim column As IDTSOutputColumn100

        ' Setup base (Atom) columns.
        column = output.OutputColumnCollection.New()
        column.Name = "atom_id"
        Call column.SetDataTypeProperties(DataType.DT_WSTR, 1000, 0, 0, 0)

        column = output.OutputColumnCollection.New()
        column.Name = "atom_title"
        Call column.SetDataTypeProperties(DataType.DT_WSTR, 250, 0, 0, 0)

        column = output.OutputColumnCollection.New()
        column.Name = "atom_updated"
        Call column.SetDataTypeProperties(DataType.DT_DBTIMESTAMP, 0, 0, 0, 0)

        column = output.OutputColumnCollection.New()
        column.Name = "atom_author"
        Call column.SetDataTypeProperties(DataType.DT_WSTR, 250, 0, 0, 0)

        column = output.OutputColumnCollection.New()
        column.Name = "atom_link"
        Call column.SetDataTypeProperties(DataType.DT_WSTR, 1000, 0, 0, 0)

        column = output.OutputColumnCollection.New()
        column.Name = "atom_category"
        Call column.SetDataTypeProperties(DataType.DT_WSTR, 1000, 0, 0, 0)

        For Each prop As XmlElement In props
            ' Get column info.
            Dim dtsType As Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType
            Dim length As Integer
            Dim precision As Integer
            Dim scale As Integer
            Dim codePage As Integer
            GetTypeFromPropertyType_( _
                prop.GetAttribute("Type"), _
                dtsType, _
                length, _
                precision, _
                scale, _
                codePage)

            ' Setup output column.
            column = output.OutputColumnCollection.New()
            column.Name = prop.GetAttribute("Name")
            Call column.SetDataTypeProperties(dtsType, length, precision, scale, codePage)
        Next
    End Sub ' SetupOutputColumns_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Get SSIS type from specified DataRow.
    Private Sub GetTypeFromPropertyType_( _
        ByVal propertyType As String, _
        ByRef dtsType As Microsoft.SqlServer.Dts.Runtime.Wrapper.DataType, _
        ByRef length As Integer, _
        ByRef precision As Integer, _
        ByRef scale As Integer, _
        ByRef codePage As Integer)

        length = 0
        precision = 0
        scale = 0
        codePage = 0

        Select Case propertyType
            Case "Edm.Binary"
                dtsType = DataType.DT_IMAGE

            Case "Edm.Boolean"
                dtsType = DataType.DT_BOOL

            Case "Edm.Byte"
                dtsType = DataType.DT_UI1

            Case "Edm.DateTime", "Edm.DateTimeOffset"
                dtsType = DataType.DT_DBTIMESTAMP

            Case "Edm.Time"
                dtsType = DataType.DT_DBTIME

            Case "Edm.Decimal"
                dtsType = DataType.DT_DECIMAL

            Case "Edm.Double"
                dtsType = DataType.DT_R8

            Case "Edm.Single"
                dtsType = DataType.DT_R4

            Case "Edm.Guid"
                dtsType = DataType.DT_GUID

            Case "Edm.Int16"
                dtsType = DataType.DT_I2

            Case "Edm.Int32"
                dtsType = DataType.DT_I4

            Case "Edm.Int64"
                dtsType = DataType.DT_I8

            Case "Edm.String"
                dtsType = DataType.DT_WSTR
                length = 250

            Case Else
                Throw New Exception("Unhandled property type.")
        End Select
    End Sub ' GetTypeFromPropertyType_


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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetVariable_(ByVal varName As String) As Object
        Dim result As Object

        Dim vars As IDTSVariables100 = Nothing
        Call MyBase.VariableDispenser.LockOneForRead(varName, vars)
        Try
            result = vars(varName).Value
        Finally
            Call vars.Unlock()
        End Try

        GetVariable_ = result
    End Function    ' GetVariable_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Setup column name -> buffer index map.
    Private Function GetColumnsIdx_() As Hashtable
        Dim result As Hashtable = 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 result.Add( _
                column.Name, _
                Me.HostComponent.BufferManager.FindColumnByLineageID( _
                    output.Buffer, _
                    column.LineageID))
        Next

        GetColumnsIdx_ = result
    End Function    ' GetColumnsIdx_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetText_(ByVal element As XmlElement) As String
        Dim result As String = String.Empty

        If Not element Is Nothing Then
            result = element.InnerText
            If result.Length > 4000 Then
                ' Maximum 4000 characters are supported in data flow.
                result = result.Substring(0, 4000)
            End If
        End If

        GetText_ = result
    End Function    ' GetText_
#End Region ' Internals


#Region "Attributes"
    Private m_connection As String
    Private m_collection As String
    Private m_batchSize As Integer
    Private m_isQueryVariable As Boolean
    Private m_query As String
#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 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 [atomid]() As String
        Set
            Me(0) = Value
        End Set
    End Property
    Public WriteOnly Property [atomid_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 [atomtitle]() As String
        Set
            Me(1) = Value
        End Set
    End Property
    Public WriteOnly Property [atomtitle_IsNull] As Boolean
        Set
            If (value)
                SetNull(1)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [atomupdated]() As DateTime
        Set
            Me(2) = Value
        End Set
    End Property
    Public WriteOnly Property [atomupdated_IsNull] As Boolean
        Set
            If (value)
                SetNull(2)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [atomauthor]() As String
        Set
            Me(3) = Value
        End Set
    End Property
    Public WriteOnly Property [atomauthor_IsNull] As Boolean
        Set
            If (value)
                SetNull(3)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [atomlink]() As String
        Set
            Me(4) = Value
        End Set
    End Property
    Public WriteOnly Property [atomlink_IsNull] As Boolean
        Set
            If (value)
                SetNull(4)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [atomcategory]() As String
        Set
            Me(5) = Value
        End Set
    End Property
    Public WriteOnly Property [atomcategory_IsNull] As Boolean
        Set
            If (value)
                SetNull(5)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [ROWID]() As Int32
        Set
            Me(6) = Value
        End Set
    End Property
    Public WriteOnly Property [ROWID_IsNull] As Boolean
        Set
            If (value)
                SetNull(6)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [State]() As String
        Set
            Me(7) = Value
        End Set
    End Property
    Public WriteOnly Property [State_IsNull] As Boolean
        Set
            If (value)
                SetNull(7)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [City]() As String
        Set
            Me(8) = Value
        End Set
    End Property
    Public WriteOnly Property [City_IsNull] As Boolean
        Set
            If (value)
                SetNull(8)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [Year]() As Int32
        Set
            Me(9) = Value
        End Set
    End Property
    Public WriteOnly Property [Year_IsNull] As Boolean
        Set
            If (value)
                SetNull(9)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [Population]() As Int32
        Set
            Me(10) = Value
        End Set
    End Property
    Public WriteOnly Property [Population_IsNull] As Boolean
        Set
            If (value)
                SetNull(10)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [ViolentCrime]() As Int32
        Set
            Me(11) = Value
        End Set
    End Property
    Public WriteOnly Property [ViolentCrime_IsNull] As Boolean
        Set
            If (value)
                SetNull(11)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [MurderAndNonEgligentManslaughter]() As Int32
        Set
            Me(12) = Value
        End Set
    End Property
    Public WriteOnly Property [MurderAndNonEgligentManslaughter_IsNull] As Boolean
        Set
            If (value)
                SetNull(12)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [ForcibleRape]() As Int32
        Set
            Me(13) = Value
        End Set
    End Property
    Public WriteOnly Property [ForcibleRape_IsNull] As Boolean
        Set
            If (value)
                SetNull(13)
            Else
                Throw new InvalidOperationException("IsNull property cannot be set to False. Assign a value to the column instead.")
            End If
        End Set
    End Property

    Public WriteOnly Property [Robbery]() As Int32
        Set
            Me(14) = Value
        End Set
    End Property
    Public WriteOnly Property [Robbery_IsNull] As Boolean
        Set
            If (value)
                SetNull(14)
            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 [AggravatedAssault]() As Int32
        Set
            Me(15) = Value
        End Set
    End Property
    Public WriteOnly Property [AggravatedAssault_IsNull] As Boolean
        Set
            If (value)
                SetNull(15)
            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 [PropertyCrime]() As Int32
        Set
            Me(16) = Value
        End Set
    End Property
    Public WriteOnly Property [PropertyCrime_IsNull] As Boolean
        Set
            If (value)
                SetNull(16)
            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 [Burglary]() As Int32
        Set
            Me(17) = Value
        End Set
    End Property
    Public WriteOnly Property [Burglary_IsNull] As Boolean
        Set
            If (value)
                SetNull(17)
            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 [LarcenyTheft]() As Int32
        Set
            Me(18) = Value
        End Set
    End Property
    Public WriteOnly Property [LarcenyTheft_IsNull] As Boolean
        Set
            If (value)
                SetNull(18)
            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 [MotorVehicleTheft]() As Int32
        Set
            Me(19) = Value
        End Set
    End Property
    Public WriteOnly Property [MotorVehicleTheft_IsNull] As Boolean
        Set
            If (value)
                SetNull(19)
            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 [Arson]() As Int32
        Set
            Me(20) = Value
        End Set
    End Property
    Public WriteOnly Property [Arson_IsNull] As Boolean
        Set
            If (value)
                SetNull(20)
            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() {"atom_id", "atom_title", "atom_updated", "atom_author", "atom_link", "atom_category", "ROWID", "State", "City", "Year", "Population", "ViolentCrime", "MurderAndNonEgligentManslaughter", "ForcibleRape", "Robbery", "AggravatedAssault", "PropertyCrime", "Burglary", "LarcenyTheft", "MotorVehicleTheft", "Arson"}
        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_0c4f2d277da94cd3bcb7ec6aa65b1a54.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>{2D2F8FA7-A0FA-461E-AC36-5FEE017C3B1E}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_0c4f2d277da94cd3bcb7ec6aa65b1a54</RootNamespace>
    <AssemblyName>ScriptComponent_0c4f2d277da94cd3bcb7ec6aa65b1a54</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="Microsoft.SqlServer.ManagedDTS, Version=13.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SqlServer.ManagedDTS\v4.0_13.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.ManagedDTS.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" />
    <Reference Include="System.Xml" />
  </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;vstadebug06e0baa7-4188-477d-875e-5581589b51d0/0c244f58-0099-4862-8589-75d09273133a&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

    Public Overridable Sub FinishOutputs()
    End Sub

    Private Sub MarkOutputsFinished()

        If OutputBuffer IsNot Nothing Then
            OutputBuffer.SetEndOfRowset
            OutputBuffer = Nothing
        End If

    End Sub

    Public Overrides Sub PrimeOutput(ByVal Outputs As Integer, ByVal OutputIDs() As Integer, ByVal Buffers() As PipelineBuffer, ByVal OutputMap As OutputNameMap)

        For I As Integer = 0 To Outputs - 1
            If OutputIDs(I) = GetOutputID(OutputMap, "Output") Then
                OutputBuffer = New OutputBuffer(Me, OutputIDs(I), False, Buffers(I), OutputMap)
            End If
        Next

        CreateNewOutputRows()

        FinishOutputs()
        MarkOutputsFinished()

    End Sub

    Public Overridable Sub CreateNewOutputRows()
    End Sub

End Class

Public Class Connections

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

    Public ReadOnly Property Http() As IDTSConnectionManager100
        Get
            Return ParentComponent.ComponentMetaData.RuntimeConnectionCollection("Http").ConnectionManager
        End Get
    End Property

End Class

Public Class Variables

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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_0c4f2d277da94cd3bcb7ec6aa65b1a54</msb:CodeName>
		<msb:NoContent>Reference;Import;Folder</msb:NoContent>
		<msb:ProjectId>{9A07FE73-BBCA-404F-B789-221010128005}</msb:ProjectId>
		<msb:DisplayName>ScriptComponent_0c4f2d277da94cd3bcb7ec6aa65b1a54</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_0c4f2d277da94cd3bcb7ec6aa65b1a54.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_0c4f2d277da94cd3bcb7ec6aa65b1a54.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
AAAAABEYsg8dAUYAsDQAAAAAEwD7CH4DRgDoNAAAAADGAi4RAQFHAPY0AAAAAMYCvAO+AEgA/jQA
AAAAgwCNBYMDSAAKNQAAAADGAugI/QBIABQ1AAAAABEAggKJA0gANDUAAAAAAQBuApEDSQA9NQAA
AAAGGKwPBgBKAEg1AAAAAAMIowNjAkoAfDUAAAAABhisDwYASgAAAAEA5QMAAAEAcQgAAAEAcQgA
AAEAcQgAAAEAcQgAAAEAcQgAAAEAcQgAAAEAlQUAAAIAhQUAAAMAGAkAAAQA9QsAAAUA+AMAAAYA
0AMAAAEA8AMAAAEA3wQAAAEArRIAAAEACRMAAAIA+wEAAAMAhRMAAAQAOw4AAAUASw0AAAEAawgA
AAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEA
awgAAAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEAawgA
AAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEA
awgAAAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEAawgAAAEAawgA
AAEAawgAAAEAawgAAAEAawgAAAEA4hEAAAIAuQ8AAAMAuxEAAAQASw0AAAEACRMAAAEACRMAAAEA
IRIAAAEAOw0AAAEAswMAAAEAswMJAKwPAQARAKwPBgAZAKwPCgApAKwPEAAxAKwPFQA5AKwPEABB
AKwPEABJAKwPBgBRAKwPGwDRAKwPEADZAKwPEADhAKwPEADxAKwPIAD5AKwPAQABAawPEAD5AKwP
GwAJAawPBgBJAawPJgBZAawPLABxAawPBgB5AawPBgCBAawPBgCRAawPMwChAawPGwCxAawPEAC5
AawPBgDBAegIZQDJASMSagDJAVAUcADJASMSdQDJASoSfABhAKwPBgBBAdEMgwDZAWIIiABxAKwP
jQDJASoSkgBxAB4CEABxAAgDmADhAawPnQBhAE8DowDpAbIFBgBhAP4DqQB5AKwPrwB5AIcDJgD5
AcAQtgCBAB8TvgCBAJQPwgCRABMTxwARAQ4OywBZALQLgwDBAX4O0QD5AbQL1gAhAb0L3AAxAboF
4gCZAMYH6QDJAR8J7gBhAJkS8wD5AbEQ+ACZANEE/QBZADURAQEBAtoIBgGZAKIT/QAJAskIDQGR
AJkTEwERAngPFwGhANkD/QARAmYPHQFBAeMMjQCpAKwPBgCpAFQDIQEZAp8IJgGZAZ8ELQGpAPkT
NgGhAKwPEAAZAfICSQExApEMTwE5ArQLVQGxAFYMWwFBAh8TvgAxAnEMYQFJArQLZwFRAuMBEAA5
AZsRgQFZArQLhwFhAtEMgwBhAuMMjQBxABAC/QDJAVgUkgE5Ah8TvgBBAn4JBgDJAaMIvwHJAfEI
xAHJAfEIygFBAroTzwHJAMgEEADJAMwQ1AExAlwP4wEZAfoO9QFpAkAD+wHBALQLAwJxAk4IxwDB
ACoJBgBZAKwPBgBBArQLFwLJAL8E/QA5AQETHQJ5AmwOIwKxAA4OvgDJAL8BvgCBAs0BKQJZAFQD
LwLJAQ0JvgARAawPOgIRAb0L3AARAZQLAQCJAqwPEACRAr4TBgCRAkISBgCRAkUSEwE5AawPBgAZ
AQQCTgJpAKwPBgBRAlYOVgJhAawPBgBpAawPBgAUAKMDYwIcAKMDYwIkAKMDYwIsAKMDYwIUAKwP
BgAcAKwPBgAkAKwPBgAsAKwPBgDJAbERgwJpAC4RAQFpALwDvgBpAOgI/QCZApQDkAI8ALATpwJE
AE4IYwJEAFgIwAJEAKwPBgApAFMARgUpAFsAawUpAGMAeQUpAGsAVAQuAAsA0AMuABMA2QMuABsA
+AMuACMAAQRDACsAXQRDADMAqgRDADsAvQRDAEMATwRDAEsASQRJAFMAkQVJAFsAawVJAHMAzwVj
AEsASQRpAFMA2AVpAFsA9gVpAHsAAgaDAEsASQSJAFMAFgaJAFsA9gWJAGsAVASJAIMASQSpAFMA
UAapAFsA9gXJAFMAagbJAFsA9gXJAIsATwTjAJMAywTjAJsAVAQDAZMAywQDAZsAVAQjAasATwQj
AbMATwQjAZMAywRDAdMATwRjAZsAVARjAbsA5ASDAZsAVASDAcMASQSpBssAnwbJBssAsAbpBssA
xAYJB8sA0QbACUsASQQACksASQRACqMATwRACpsAVARgCqMATwSACqMATwSgCqMATwTACqMATwQg
C5sAVAQgC6MATwRAC5sAVARAC6MATwRgC5sAVARgC6MATwSAC5sAVASAC6MATwSgC6MATwTAC6MA
TwTgC6MATwTgC5sAVAQADKMATwQgDKMATwQgDJsAVAQ7AEIBbgGOAZUBmQGdAaIB3gHuAQoCNQJJ
An4CiAKbAgIAAQADAAgABQA0AAkANQAMADkAAAD/DJkDAACJCJ0DAACbDJkDAABVBKEDAAAoFJkD
AABpBJkDAAByBaUDAABCEaUDAACAA5kDAADpCaEDAAC1BJkDAAD7CaEDAABwA6oDAADSCaEDAABR
D5kDAADhCqEDAAA1CZkDAABqCqEDAAA6FJkDAABwC6EDAAC5AZ0DAADBCaEDAADiBZkDAABZCqED
AABLFJkDAACIC6EDAACpDZ0DAAClCqEDAAAhDJ0DAAB+CqEDAAD0BJ0DAAAQCqEDAAAUD50DAAC1
CqEDAABYBZ0DAABBCqEDAAASFJ0DAABdC6EDAAB8Ep0DAAAsC6EDAAAFBZ0DAAAoCqEDAAAFFJ0D
AABJC6EDAABrEp0DAAAUC6EDAABVEp0DAAD3CqEDAAA1DZ0DAACUCqEDAABZEaUDAACgDbADAABE
D7YDAAARDLsDAAD1DsADAAAGEMYDAACnA8sDAgAGAAMAAQAHAAMAAgAIAAUAAQAJAAUAAgAKAAcA
AQALAAcAAgAMAAkAAQANAAkAAgAOAAsAAQAPAAsAAgAQAA0AAQARAA0AAgASAA8AAgAaABEAAQAb
ABMAAQAcABUAAQAdABcAAQAeABkAAQAfABsAAQAgAB0AAQAhAB8AAQAiACEAAQAjACMAAQAkACUA
AQAlACcAAQAmACkAAQAnACsAAQAoAC0AAQApAC8AAQAqADEAAQArADMAAQAsADUAAQAtADcAAQAu
ADkAAQAvADsAAQAwAD0AAQAxAD8AAQAyAEEAAQAzAEMAAQA0AEUAAQA1AEcAAQA2AEkAAQA3AEsA
AQA4AE0AAQA5AE8AAQA6AFEAAQA7AFMAAQA8AFUAAQA9AFcAAQA+AFkAAQA/AFsAAQBAAF0AAQBB
AF8AAQBCAGEAAQBDAGMAAQBEAGUAAgBFAGcAAgBPAGkAAgBTAGsAAgBUAG0AAgBVAG8AAgBWAHEA
AgBgAHMAPwFcAmgCbwJ3Ao0CoAKwArgCBIAAAAAAAAAAAAAAAAAAAAAARgEAAAQAAAAAAAAAAAAA
AMYCIQMAAAAAAQAAAAAAAAAAAAAAzwJ3AQAAAAANAAAAAAAAAAAAAADYAikTAAAAAAQAAAAAAAAA
AAAAAMYCnAsAAAAADQAAAAAAAAAAAAAA2AJNAgAAAAANAAAAAAAAAAAAAADYAngNAAAAAA0AAAAA
AAAAAAAAANgCVQ0AAAAABAAAAAAAAAAAAAAAxgLGCwAAAAANAAAAAAAAAAAAAADYAmQTAAAAAAoA
AAAAAAAAAAAAAOECKgMAAAAACwAJAAwACQAAABAAGABsAgAAEAC7AGwCAAAAAL0AbAIVAZYCFQG7
AgAAAAAASURUU0NvbXBvbmVudE1ldGFEYXRhMTAwAElEVFNWYXJpYWJsZTEwMABJRFRTT3V0cHV0
Q29sdW1uMTAwAElEVFNPdXRwdXRDb2x1bW5Db2xsZWN0aW9uMTAwAElEVFNSdW50aW1lQ29ubmVj
dGlvbkNvbGxlY3Rpb24xMDAASURUU091dHB1dENvbGxlY3Rpb24xMDAASURUU1J1bnRpbWVDb25u
ZWN0aW9uMTAwAElEVFNDb25uZWN0aW9uTWFuYWdlcjEwMABJRFRTQnVmZmVyTWFuYWdlcjEwMABJ
RFRTVmFyaWFibGVEaXNwZW5zZXIxMDAASURUU1ZhcmlhYmxlczEwMABJRFRTT3V0cHV0MTAwAENv
bnRleHRWYWx1ZWAxAFRocmVhZFNhZmVPYmplY3RQcm92aWRlcmAxAEludDMyAFNjcmlwdENvbXBv
bmVudF8wYzRmMmQyNzdkYTk0Y2QzYmNiN2VjNmFhNjViMWE1NABDb3p5Um9jLlNTSVNQbHVzLjIw
MTYAPE1vZHVsZT4APFByaXZhdGVJbXBsZW1lbnRhdGlvbkRldGFpbHM+AHNldF9ST1dJRABnZXRf
TGluZWFnZUlEAEZpbmRDb2x1bW5CeUxpbmVhZ2VJRABzZXRfQ29ubmVjdGlvbk1hbmFnZXJJRABP
YmplY3RJRABHZXRPdXRwdXRJRABnZXRfU2VydmVyVVJMAHNldF9TZXJ2ZXJVUkwAU3lzdGVtLklP
AENvenlSb2MuU3FsU2VydmVyLlNTSVMATWljcm9zb2Z0LlNxbFNlcnZlci5NYW5hZ2VkRFRTAFQA
RGlzcG9zZV9fSW5zdGFuY2VfXwBDcmVhdGVfX0luc3RhbmNlX18AR2V0VmFyaWFibGVfAEdldFR5
cGVGcm9tUHJvcGVydHlUeXBlXwBGaXJlRXJyb3JfAFNldHVwT3V0cHV0Q29sdW1uc18AR2V0VGV4
dF8AR2V0Q29sdW1uc0lkeF8AZ2V0X0NvbXBvbmVudE1ldGFEYXRhAERvd25sb2FkRGF0YQBQcm9q
ZWN0RGF0YQBtc2NvcmxpYgBNaWNyb3NvZnQuVmlzdWFsQmFzaWMATG9ja09uZUZvclJlYWQATG9h
ZABBZGQATWFya091dHB1dHNGaW5pc2hlZABzZXRfYXRvbXVwZGF0ZWQAc2V0X2F0b21pZABBZGRO
YW1lc3BhY2UAQ3JlYXRlSW5zdGFuY2UAZ2V0X0dldEluc3RhbmNlAGluc3RhbmNlAEdldEhhc2hD
b2RlAFhtbE5vZGUAY29kZVBhZ2UAZ2V0X01lc3NhZ2UAZXJyTWVzc2FnZQBtZXNzYWdlAHNjYWxl
AGdldF9OYW1lVGFibGUAWG1sTmFtZVRhYmxlAGdldF9RdWVyeVZhcmlhYmxlAHNldF9RdWVyeVZh
cmlhYmxlAGdldF9Jc1F1ZXJ5VmFyaWFibGUAc2V0X0lzUXVlcnlWYXJpYWJsZQBtX2lzUXVlcnlW
YXJpYWJsZQBJRGlzcG9zYWJsZQBIYXNodGFibGUAUnVudGltZVR5cGVIYW5kbGUAR2V0VHlwZUZy
b21IYW5kbGUAc2V0X2F0b210aXRsZQBnZXRfTmFtZQBzZXRfTmFtZQBnZXRfTG9jYWxOYW1lAHZh
ck5hbWUARGF0ZVRpbWUAc2V0X1Zpb2xlbnRDcmltZQBzZXRfUHJvcGVydHlDcmltZQBNaWNyb3Nv
ZnQuU3FsU2VydmVyLkR0cy5SdW50aW1lAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5l
AHNldF9Gb3JjaWJsZVJhcGUARGF0YVR5cGUAZ2V0X0h0dHBDb25uZWN0aW9uVHlwZQBkdHNUeXBl
AEdldFR5cGUAcHJvcGVydHlUeXBlAEFwcGxpY2F0aW9uQmFzZQBEaXNwb3NlAFBhcnNlAFZhbGlk
YXRlAHNldF9TdGF0ZQBFZGl0b3JCcm93c2FibGVTdGF0ZQBDb21waWxlckdlbmVyYXRlZEF0dHJp
YnV0ZQBIZWxwS2V5d29yZEF0dHJpYnV0ZQBHZW5lcmF0ZWRDb2RlQXR0cmlidXRlAERlYnVnZ2Fi
bGVBdHRyaWJ1dGUAVmFyaWFibGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxlQXR0cmlidXRlAENv
bVZpc2libGVBdHRyaWJ1dGUAU3RhbmRhcmRNb2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5hbWVB
dHRyaWJ1dGUARGVmYXVsdFZhbHVlQXR0cmlidXRlAFRhcmdldEZyYW1ld29ya0F0dHJpYnV0ZQBE
ZWJ1Z2dlckhpZGRlbkF0dHJpYnV0ZQBNeUdyb3VwQ29sbGVjdGlvbkF0dHJpYnV0ZQBDb25uZWN0
aW9uQXR0cmlidXRlAERlc2NyaXB0aW9uQXR0cmlidXRlAFZhbGlkYXRlUHJvcGVydGllc0F0dHJp
YnV0ZQBSZWZyZXNoUHJvcGVydGllc0F0dHJpYnV0ZQBGaWx0ZXJQcm9wZXJ0aWVzQXR0cmlidXRl
AFNvcnRQcm9wZXJ0aWVzQXR0cmlidXRlAENvbXBpbGF0aW9uUmVsYXhhdGlvbnNBdHRyaWJ1dGUA
R2V0QXR0cmlidXRlAENMU0NvbXBsaWFudEF0dHJpYnV0ZQBTU0lTU2NyaXB0Q29tcG9uZW50RW50
cnlQb2ludEF0dHJpYnV0ZQBMaXN0QXR0cmlidXRlAENhdGVnb3J5QXR0cmlidXRlAFJ1bnRpbWVD
b21wYXRpYmlsaXR5QXR0cmlidXRlAGdldF9WYWx1ZQBzZXRfVmFsdWUAR2V0T2JqZWN0VmFsdWUA
dmFsdWUAZ2V0X0JhdGNoU2l6ZQBzZXRfQmF0Y2hTaXplAG1fYmF0Y2hTaXplAElJZgBMYXN0SW5k
ZXhPZgBTeXN0ZW0uUnVudGltZS5WZXJzaW9uaW5nAEZyb21CYXNlNjRTdHJpbmcAQ29tcGFyZVN0
cmluZwBUb1N0cmluZwBTdWJzdHJpbmcAQ29tcHV0ZVN0cmluZ0hhc2gAZ2V0X0xlbmd0aABsZW5n
dGgAU3RhcnRzV2l0aABVbmxvY2sAc2V0X2F0b21saW5rAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5N
eVNlcnZpY2VzLkludGVybmFsAFN5c3RlbS5Db21wb25lbnRNb2RlbABSZW1vdmVBbGwAU2NyaXB0
Q29tcG9uZW50XzBjNGYyZDI3N2RhOTRjZDNiY2I3ZWM2YWE2NWIxYTU0LmRsbABzZXRfUk9XSURf
SXNOdWxsAHNldF9hdG9tdXBkYXRlZF9Jc051bGwAc2V0X2F0b21pZF9Jc051bGwAc2V0X2F0b210
aXRsZV9Jc051bGwAc2V0X1Zpb2xlbnRDcmltZV9Jc051bGwAc2V0X1Byb3BlcnR5Q3JpbWVfSXNO
dWxsAHNldF9Gb3JjaWJsZVJhcGVfSXNOdWxsAHNldF9TdGF0ZV9Jc051bGwAc2V0X2F0b21saW5r
X0lzTnVsbABzZXRfUG9wdWxhdGlvbl9Jc051bGwAc2V0X0Fyc29uX0lzTnVsbABzZXRfWWVhcl9J
c051bGwAc2V0X011cmRlckFuZE5vbkVnbGlnZW50TWFuc2xhdWdodGVyX0lzTnVsbABzZXRfYXRv
bWF1dGhvcl9Jc051bGwAc2V0X01vdG9yVmVoaWNsZVRoZWZ0X0lzTnVsbABzZXRfTGFyY2VueVRo
ZWZ0X0lzTnVsbABzZXRfQWdncmF2YXRlZEFzc2F1bHRfSXNOdWxsAHNldF9CdXJnbGFyeV9Jc051
bGwAc2V0X1JvYmJlcnlfSXNOdWxsAHNldF9hdG9tY2F0ZWdvcnlfSXNOdWxsAHNldF9DaXR5X0lz
TnVsbABTZXROdWxsAFN5c3RlbS5YbWwATWVtb3J5U3RyZWFtAGdldF9JdGVtAHNldF9JdGVtAFN5
c3RlbQBTeXN0ZW0uQ29tcG9uZW50TW9kZWwuRGVzaWduAFNjcmlwdE1haW4AcHJlY2lzaW9uAGdl
dF9BcHBsaWNhdGlvbgBNeUFwcGxpY2F0aW9uAHNldF9Qb3B1bGF0aW9uAEludGVyYWN0aW9uAGdl
dF9Db2xsZWN0aW9uAHNldF9Db2xsZWN0aW9uAGdldF9PdXRwdXRDb2x1bW5Db2xsZWN0aW9uAGdl
dF9SdW50aW1lQ29ubmVjdGlvbkNvbGxlY3Rpb24AZ2V0X091dHB1dENvbGxlY3Rpb24AbV9jb2xs
ZWN0aW9uAGdldF9Db25uZWN0aW9uAHNldF9Db25uZWN0aW9uAEFjcXVpcmVDb25uZWN0aW9uAFJl
bGVhc2VDb25uZWN0aW9uAEh0dHBDbGllbnRDb25uZWN0aW9uAG1fY29ubmVjdGlvbgBJbnZhbGlk
T3BlcmF0aW9uRXhjZXB0aW9uAHNldF9BcnNvbgBvAE91dHB1dE5hbWVNYXAAT3V0cHV0TWFwAE1p
Y3Jvc29mdC5TcWxTZXJ2ZXIuRFRTUnVudGltZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZlci5EVFNQ
aXBlbGluZVdyYXAAZ2V0X0h0dHAAc2V0X1llYXIAbV9BcHBPYmplY3RQcm92aWRlcgBtX1VzZXJP
YmplY3RQcm92aWRlcgBtX0NvbXB1dGVyT2JqZWN0UHJvdmlkZXIAbV9NeVdlYlNlcnZpY2VzT2Jq
ZWN0UHJvdmlkZXIAZ2V0X0J1ZmZlcgBQaXBlbGluZUJ1ZmZlcgBTY3JpcHRCdWZmZXIAT3V0cHV0
QnVmZmVyAFhtbE5hbWVzcGFjZU1hbmFnZXIAZ2V0X0Nvbm5lY3Rpb25NYW5hZ2VyAGdldF9CdWZm
ZXJNYW5hZ2VyAFRvSW50ZWdlcgBTeXN0ZW0uQ29kZURvbS5Db21waWxlcgBNaWNyb3NvZnQuU3Fs
U2VydmVyLkR0cy5SdW50aW1lLldyYXBwZXIATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxp
bmUuV3JhcHBlcgBnZXRfVXNlcgBnZXRfVmFyaWFibGVEaXNwZW5zZXIAc2V0X011cmRlckFuZE5v
bkVnbGlnZW50TWFuc2xhdWdodGVyAGdldF9Db21wdXRlcgBNeUNvbXB1dGVyAHNldF9hdG9tYXV0
aG9yAEZpcmVFcnJvcgBDbGVhclByb2plY3RFcnJvcgBTZXRQcm9qZWN0RXJyb3IASUVudW1lcmF0
b3IAR2V0RW51bWVyYXRvcgBBY3RpdmF0b3IALmN0b3IALmNjdG9yAE91dHB1dElEcwBTeXN0ZW0u
RGlhZ25vc3RpY3MATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkRldmljZXMAZ2V0X1dlYlNlcnZpY2Vz
AE15V2ViU2VydmljZXMATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkFwcGxpY2F0aW9uU2VydmljZXMA
U3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5Db21w
aWxlclNlcnZpY2VzAFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXMARGVidWdnaW5nTW9k
ZXMAZ2V0X0NoaWxkTm9kZXMAU2VsZWN0Tm9kZXMAU2V0RGF0YVR5cGVQcm9wZXJ0aWVzAFJlZnJl
c2hQcm9wZXJ0aWVzAEdldFByb3BlcnRpZXMAVmFyaWFibGVzAENvenlSb2MuU3FsU2VydmVyLlNT
SVMuQXR0cmlidXRlcwBFcXVhbHMAQ29udGFpbnMAZ2V0X1N0YXRpY0lucHV0Q29sdW1ucwBnZXRf
U3RhdGljT3V0cHV0Q29sdW1ucwBDb252ZXJzaW9ucwBTeXN0ZW0uQ29sbGVjdGlvbnMAR2V0Q29s
bGVjdGlvbnMAZ2V0X0Rlc2lnbkNvbm5lY3Rpb25zAGdldF9DaGFycwBCdWZmZXJzAFJ1bnRpbWVI
ZWxwZXJzAE9wZXJhdG9ycwBGaW5pc2hPdXRwdXRzAFNjcmlwdEJ1ZmZlclBsdXMAU2NyaXB0Q29t
cG9uZW50UGx1cwBDcmVhdGVOZXdPdXRwdXRSb3dzAENvbmNhdABGb3JtYXQAT2JqZWN0AE15UHJv
amVjdABTZXRFbmRPZlJvd3NldABzZXRfTW90b3JWZWhpY2xlVGhlZnQAc2V0X0xhcmNlbnlUaGVm
dABzZXRfQWdncmF2YXRlZEFzc2F1bHQAWG1sRWxlbWVudABnZXRfRG9jdW1lbnRFbGVtZW50AGVs
ZW1lbnQAWG1sRG9jdW1lbnQAUGlwZWxpbmVDb21wb25lbnQAVXNlckNvbXBvbmVudABQYXJlbnRD
b21wb25lbnQAU2NyaXB0Q29tcG9uZW50AGdldF9Ib3N0Q29tcG9uZW50AGdldF9DdXJyZW50AGdl
dF9Db3VudABNaWNyb3NvZnQuU3FsU2VydmVyLlR4U2NyaXB0AENvbnZlcnQAWG1sTm9kZUxpc3QA
QXJyYXlMaXN0AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuUGlwZWxpbmVIb3N0AElzSW5wdXQAUHJpbWVP
dXRwdXQATW92ZU5leHQAZ2V0X0lubmVyVGV4dABtX0NvbnRleHQATmV3AEFkZFJvdwBTY3JpcHRD
b21wb25lbnRfMGM0ZjJkMjc3ZGE5NGNkM2JjYjdlYzZhYTY1YjFhNTQuTXkAVG9BcnJheQBzZXRf
QnVyZ2xhcnkAc2V0X1JvYmJlcnkAZ2V0X1F1ZXJ5AHNldF9RdWVyeQBtX3F1ZXJ5AHNldF9hdG9t
Y2F0ZWdvcnkAc2V0X0NpdHkASXNOdWxsT3JFbXB0eQAAAAADPwAAAyYAACUkAHQAbwBwAD0AewAw
AH0AJgAkAHMAawBpAHAAPQB7ADEAfQAAB3sAMAB9AAAJYQB0AG8AbQAAN2gAdAB0AHAAOgAvAC8A
dwB3AHcALgB3ADMALgBvAHIAZwAvADIAMAAwADUALwBBAHQAbwBtAAArLwBhAHQAbwBtADoAZgBl
AGUAZAAvAGEAdABvAG0AOgBlAG4AdAByAHkAAA9hAHQAbwBtAF8AaQBkAAAFaQBkAAAVYQB0AG8A
bQBfAHQAaQB0AGwAZQAAC3QAaQB0AGwAZQAAGWEAdABvAG0AXwB1AHAAZABhAHQAZQBkAAAPdQBw
AGQAYQB0AGUAZAAAF2EAdABvAG0AXwBhAHUAdABoAG8AcgAADWEAdQB0AGgAbwByAAAJbABpAG4A
awAACWgAcgBlAGYAAA9oAHQAdABwADoALwAvAAAReABtAGwAOgBiAGEAcwBlAAATYQB0AG8AbQBf
AGwAaQBuAGsAABFjAGEAdABlAGcAbwByAHkAABthAHQAbwBtAF8AYwBhAHQAZQBnAG8AcgB5AAAJ
dABlAHIAbQAAD2MAbwBuAHQAZQBuAHQAABltADoAcAByAG8AcABlAHIAdABpAGUAcwAADW0AOgB0
AHkAcABlAAAVRQBkAG0ALgBCAGkAbgBhAHIAeQAAFUMAbwBuAG4AZQBjAHQAaQBvAG4AABNCAGEA
dABjAGgAUwBpAHoAZQAAFUMAbwBsAGwAZQBjAHQAaQBvAG4AAB9JAHMAUQB1AGUAcgB5AFYAYQBy
AGkAYQBiAGwAZQAAG1EAdQBlAHIAeQBWAGEAcgBpAGEAYgBsAGUAAAtRAHUAZQByAHkAACVTAGUA
bABlAGMAdAAgAGMAbwBuAG4AZQBjAHQAaQBvAG4ALgAAJ1MAcABlAGMAaQBmAHkAIABjAG8AbABs
AGUAYwB0AGkAbwBuAC4AAAlIAHQAdABwAAAHYQBwAHAAADVoAHQAdABwADoALwAvAHcAdwB3AC4A
dwAzAC4AbwByAGcALwAyADAAMAA3AC8AYQBwAHAAAFMvAGEAcABwADoAcwBlAHIAdgBpAGMAZQAv
AGEAcABwADoAdwBvAHIAawBzAHAAYQBjAGUALwBhAHAAcAA6AGMAbwBsAGwAZQBjAHQAaQBvAG4A
AAMvAAAJSABUAFQAUAAAEyQAbQBlAHQAYQBkAGEAdABhAAAHZQBkAG0AAFloAHQAdABwADoALwAv
AHMAYwBoAGUAbQBhAHMALgBtAGkAYwByAG8AcwBvAGYAdAAuAGMAbwBtAC8AYQBkAG8ALwAyADAA
MAA3AC8AMAA1AC8AZQBkAG0AAAllAGQAbQB4AABbaAB0AHQAcAA6AC8ALwBzAGMAaABlAG0AYQBz
AC4AbQBpAGMAcgBvAHMAbwBmAHQALgBjAG8AbQAvAGEAZABvAC8AMgAwADAANwAvADAANgAvAGUA
ZABtAHgAAICVLwBlAGQAbQB4ADoARQBkAG0AeAAvAGUAZABtAHgAOgBEAGEAdABhAFMAZQByAHYA
aQBjAGUAcwAvAGUAZABtADoAUwBjAGgAZQBtAGEALwBlAGQAbQA6AEUAbgB0AGkAdAB5AFQAeQBw
AGUAWwAnAHsAMAB9ACcAXQAvAGUAZABtADoAUAByAG8AcABlAHIAdAB5AAEJVAB5AHAAZQAACU4A
YQBtAGUAABdFAGQAbQAuAEIAbwBvAGwAZQBhAG4AABFFAGQAbQAuAEIAeQB0AGUAABlFAGQAbQAu
AEQAYQB0AGUAVABpAG0AZQAAJUUAZABtAC4ARABhAHQAZQBUAGkAbQBlAE8AZgBmAHMAZQB0AAAR
RQBkAG0ALgBUAGkAbQBlAAAXRQBkAG0ALgBEAGUAYwBpAG0AYQBsAAAVRQBkAG0ALgBEAG8AdQBi
AGwAZQAAFUUAZABtAC4AUwBpAG4AZwBsAGUAABFFAGQAbQAuAEcAdQBpAGQAABNFAGQAbQAuAEkA
bgB0ADEANgAAE0UAZABtAC4ASQBuAHQAMwAyAAATRQBkAG0ALgBJAG4AdAA2ADQAABVFAGQAbQAu
AFMAdAByAGkAbgBnAAAxVQBuAGgAYQBuAGQAbABlAGQAIABwAHIAbwBwAGUAcgB0AHkAIAB0AHkA
cABlAC4AABlPAEQAYQB0AGEAIABTAG8AdQByAGMAZQAAgJtJAHMATgB1AGwAbAAgAHAAcgBvAHAA
ZQByAHQAeQAgAGMAYQBuAG4AbwB0ACAAYgBlACAAcwBlAHQAIAB0AG8AIABGAGEAbABzAGUALgAg
AEEAcwBzAGkAZwBuACAAYQAgAHYAYQBsAHUAZQAgAHQAbwAgAHQAaABlACAAYwBvAGwAdQBtAG4A
IABpAG4AcwB0AGUAYQBkAC4AAAtSAE8AVwBJAEQAAAtTAHQAYQB0AGUAAAlDAGkAdAB5AAAJWQBl
AGEAcgAAFVAAbwBwAHUAbABhAHQAaQBvAG4AABlWAGkAbwBsAGUAbgB0AEMAcgBpAG0AZQAAQU0A
dQByAGQAZQByAEEAbgBkAE4AbwBuAEUAZwBsAGkAZwBlAG4AdABNAGEAbgBzAGwAYQB1AGcAaAB0
AGUAcgAAGUYAbwByAGMAaQBiAGwAZQBSAGEAcABlAAAPUgBvAGIAYgBlAHIAeQAAI0EAZwBnAHIA
YQB2AGEAdABlAGQAQQBzAHMAYQB1AGwAdAAAG1AAcgBvAHAAZQByAHQAeQBDAHIAaQBtAGUAABFC
AHUAcgBnAGwAYQByAHkAABlMAGEAcgBjAGUAbgB5AFQAaABlAGYAdAAAI00AbwB0AG8AcgBWAGUA
aABpAGMAbABlAFQAaABlAGYAdAAAC0EAcgBzAG8AbgAADU8AdQB0AHAAdQB0AAAAANM5X0+rIU20
i8OPbJsHngAEIAEBCAMgAAEFIAEBEREEIAEBDgUgAQEdDgQgAQECBSABARF1BSACAQ4OBiABARGA
qQcgBAEODg4OKQcXEi0ODhIxHBI5CBI9EkESRRJJEk0SDBJNEk0STQ4SQRJJEk0cDhJRBAABDhwF
AAIODg4EAAECDgYAAw4ODg4GAAMODhwcBCABHBwEAAEcHAQgAQEcBQACDg4cBCAAHQUFIAEBHQUF
IAEBEkUFIAASgPkGIAEBEoD5ByACEkEOEj0DIAAIBCAAEkkDIAAcBSAAEoCRBAABCBwFIAESTQ4F
IAIBCBwGAAERgJkOBCABDg4EIAECDgQgABJNBCAAEkEDIAAOBCABAhwGAAMIDg4CBQABHQUOAyAA
AgUAAQESUQMAAAEEIAEIHAYAAxwCHBwIAAESgM0RgREIIAESgRUSgM0CHQ4GBwMCAhJRBSAAEoEZ
BSAAEoEdBSABElkcBSAAEoEhBSAAEoElBiABEoEpHBIHCRJVEjEcEjkSPRJBEkUSSQ4FIAASgS0G
IAESgTEcAwcBDgIGDgMHAQgDBwECBAcBHQ4cBxEODhIxHBI5DhI9EkESWRJFEkkSTRFdCAgICAQg
AQgOBSACDggIBCABDggEIAASZQkgBQERXQgICAgEBwIOCQogBgEIDg4OCBACBgcDHBwSYQUgABKB
NQcgAgEOEBJhBiABEoE5HAwHBhItEi0SWQgIEmUFIAESZRwFIAASgT0FIAASgUEFIAIICAgFIAIB
HBwEBwIODg4gBQESgI0IAhKAkRKAlQQHAggIBwACCBKAlQ4FIAASgKEGFRIwARIgBCAAEwAGFRIw
ARIcBxUSMAESgMUGFRIwARIsBAcCCQgEIAEDCAQHAR4AAh4ABRABAB4ABAoBHgAEBwETAAYVEjAB
EwAIBhUSgNUBEwAHFRKA1QETAAITAAQKARMABSABARMACLd6XFYZNOCJCBbPSQu4DDTqCImEXc2A
gMyRCLA/X38R1Qo6AgYIAgYCAwYSFAMGEhgDBhIMBAYSgI0HBhUSMAESIAcGFRIwARIcCAYVEjAB
EoDFBwYVEjABEiwEIAAdDgUgAQIQDg8gBgEOEBFdEAgQCBAIEAgEIAEcDgQgABItBSABDhJNBiAB
ARGAmQ0gBAEIHQgdEoCREoCVBiABARKAjQQAABIgBAAAEhwFAAASgMUEAAASLAQAAQkOBSAAEoDN
BxABAR4AHgAHMAEBARAeAAMoAA4DKAAIAygAAgQoAB0OBSgAEYCZBSgAEoChBAgAEiAECAASHAUI
ABKAxQQIABIsBCgAEwAIAQAIAAAAAAAeAQABAFQCFldyYXBOb25FeGNlcHRpb25UaHJvd3MBCAEA
AgAAAAAARwEAGi5ORVRGcmFtZXdvcmssVmVyc2lvbj12NC4wAQBUDhRGcmFtZXdvcmtEaXNwbGF5
TmFtZRAuTkVUIEZyYW1ld29yayA0BQEAAAAABAEAAAAIAQABAAAAAABMAQAGAAAACkNvbm5lY3Rp
b24JQmF0Y2hTaXplCkNvbGxlY3Rpb24PSXNRdWVyeVZhcmlhYmxlBVF1ZXJ5DVF1ZXJ5VmFyaWFi
bGUAABIBAA1HZXRQcm9wZXJ0aWVzAAANAQAIVmFsaWRhdGUAABgBAApNeVRlbXBsYXRlCDExLjAu
MC4wAABhAQA0U3lzdGVtLldlYi5TZXJ2aWNlcy5Qcm90b2NvbHMuU29hcEh0dHBDbGllbnRQcm90
b2NvbBJDcmVhdGVfX0luc3RhbmNlX18TRGlzcG9zZV9fSW5zdGFuY2VfXwAAACQBAB9TZWxlY3Qg
SFRUUCBDb25uZWN0aW9uIE1hbmFnZXIuAAANAQAIU2V0dGluZ3MAABcBABJIdHRwQ29ubmVjdGlv
blR5cGUAAD0BADhTcGVjaWZpZXMgdGhlIG51bWJlciBvZiByb3dzIHRvIGJlIHJldHJpZXZlZCBh
cyBhIGJhdGNoLgAACAEAZAAAAAAAHQEAGFNlbGVjdCBPRGF0YSBjb2xsZWN0aW9uLgAACwEABlNv
dXJjZQAAEwEADkdldENvbGxlY3Rpb25zAAA5AQA0SW5kaWNhdGVzIHdoZXRoZXIgdGhlIHF1ZXJ5
IGlzIHN0b3JlZCBpbiBhIHZhcmlhYmxlLgAAGQEAFFNwZWNpZnkgT0RhdGEgcXVlcnkuAAA0AQAv
U3BlY2lmaWVzIHRoZSB2YXJpYWJsZSB0aGF0IGNvbnRhaW5zIHRoZSBxdWVyeS4AABABAAtNeS5D
b21wdXRlcgAAEwEADk15LkFwcGxpY2F0aW9uAAAMAQAHTXkuVXNlcgAAEwEADk15LldlYlNlcnZp
Y2VzAAAAAAB0bQAAAAAAAAAAAACObQAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgG0AAAAAAAAA
AAAAAABfQ29yRGxsTWFpbgBtc2NvcmVlLmRsbAAAAAAA/yUAIAAQAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAEAAAABgAAIAAAAAAAAAAAAAAAAAAAAEA
AQAAADAAAIAAAAAAAAAAAAAAAAAAAAEAAAAAAEgAAABYgAAA7AIAAAAAAAAAAAAA7AI0AAAAVgBT
AF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8AAAAAAL0E7/4AAAEAAAAAAAAAAAAAAAAAAAAAAD8A
AAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAABEAAAAAQBWAGEAcgBGAGkAbABlAEkAbgBmAG8AAAAA
ACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8AbgAAAAAAAACwBEwCAAABAFMAdAByAGkAbgBnAEYA
aQBsAGUASQBuAGYAbwAAACgCAAABADAAMAAwADAAMAA0AGIAMAAAACwAAgABAEYAaQBsAGUARABl
AHMAYwByAGkAcAB0AGkAbwBuAAAAAAAgAAAAMAAIAAEARgBpAGwAZQBWAGUAcgBzAGkAbwBuAAAA
AAAwAC4AMAAuADAALgAwAAAAigA1AAEASQBuAHQAZQByAG4AYQBsAE4AYQBtAGUAAABTAGMAcgBp
AHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADAAYwA0AGYAMgBkADIANwA3AGQAYQA5ADQAYwBkADMA
YgBjAGIANwBlAGMANgBhAGEANgA1AGIAMQBhADUANAAuAGQAbABsAAAAAAAoAAIAAQBMAGUAZwBh
AGwAQwBvAHAAeQByAGkAZwBoAHQAAAAgAAAAkgA1AAEATwByAGkAZwBpAG4AYQBsAEYAaQBsAGUA
bgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AMABjADQAZgAyAGQAMgA3
ADcAZABhADkANABjAGQAMwBiAGMAYgA3AGUAYwA2AGEAYQA2ADUAYgAxAGEANQA0AC4AZABsAGwA
AAAAADQACAABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8AbgAAADAALgAwAC4AMAAuADAAAAA4
AAgAAQBBAHMAcwBlAG0AYgBsAHkAIABWAGUAcgBzAGkAbwBuAAAAMAAuADAALgAwAC4AMAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAGAAAAwAAACgPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAA=]]></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_0c4f2d277da94cd3bcb7ec6aa65b1a54</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><connections><connection id="15" name="Http" connectionManagerID="{6E8F8510-996A-4E70-B07B-644924DB45F8}" /></connections><outputs><output id="16" name="Output" hasSideEffects="true"><outputColumns><outputColumn id="17" name="atom_id" lineageId="17" length="1000" dataType="wstr" /><outputColumn id="18" name="atom_title" lineageId="18" length="250" dataType="wstr" /><outputColumn id="19" name="atom_updated" lineageId="19" dataType="dbTimeStamp" /><outputColumn id="20" name="atom_author" lineageId="20" length="250" dataType="wstr" /><outputColumn id="21" name="atom_link" lineageId="21" length="1000" dataType="wstr" /><outputColumn id="22" name="atom_category" lineageId="22" length="1000" dataType="wstr" /><outputColumn id="23" name="ROWID" lineageId="23" dataType="i4" /><outputColumn id="24" name="State" lineageId="24" length="250" dataType="wstr" /><outputColumn id="25" name="City" lineageId="25" length="250" dataType="wstr" /><outputColumn id="26" name="Year" lineageId="26" dataType="i4" /><outputColumn id="27" name="Population" lineageId="27" dataType="i4" /><outputColumn id="28" name="ViolentCrime" lineageId="28" dataType="i4" /><outputColumn id="29" name="MurderAndNonEgligentManslaughter" lineageId="29" dataType="i4" /><outputColumn id="30" name="ForcibleRape" lineageId="30" dataType="i4" /><outputColumn id="31" name="Robbery" lineageId="31" dataType="i4" /><outputColumn id="32" name="AggravatedAssault" lineageId="32" dataType="i4" /><outputColumn id="33" name="PropertyCrime" lineageId="33" dataType="i4" /><outputColumn id="34" name="Burglary" lineageId="34" dataType="i4" /><outputColumn id="35" name="LarcenyTheft" lineageId="35" dataType="i4" /><outputColumn id="36" name="MotorVehicleTheft" lineageId="36" dataType="i4" /><outputColumn id="37" name="Arson" lineageId="37" dataType="i4" /></outputColumns><externalMetadataColumns /></output></outputs></component>