Files
ueblueprint/tests/niagaraScriptVariables.spec.js
BarsDev 6ba2705386 Large refactoring and new nodes
* Fix node reference when changing elements

* Fix ScriptVariables parsing

* Fix invariant text and niagara types

* Niagara convert nodes

* Move node tests to own files

* More Niagara tests

* Niagara float and smaller fixes

* More Decoding

* More decoding

* WIP

* Float is real

* WIP

* More types and colors

* Test case and small polish

* WIP

* WIP

* Fix niagara script variables merging

* Fix Niagara variables

* Fixing mirrored ExportPath

* Fix Export paths name adjustments

* Simplify arc calculation

* Simplify a bit arc calculation

* source / destionation => origin / target

* Minor refactoring

* Fix switched link position

* Rename some properties for uniformity

* Fix input escape

* Simplify test

* About window

* Dialog backdrop style

* About dialog touches

* Remove dependency and minot improvement

* Light mode

* Fix link location and css small improvement

* Link direction and minor fixes

* Some minor fixes and refactoring

* Refactoring WIP

* Shorting repetitive bits

* More tests

* Simplify linking tests
2025-02-07 00:36:03 +02:00

364 lines
82 KiB
JavaScript

import Utility from "../js/Utility.js"
import { expect, test } from "./fixtures/test.js"
/**
* @param {String} source
* @param {String} rename
*/
const serialized = (source, rename = "Blueprint") => {
let name = source.match(/.+?Name="([^"]+)"/)[1]
let result = source
.replaceAll(/^\n|^ {12}| +$/gm, "")
.replaceAll(
new RegExp(
[
/(?<=^Begin Object).+?(?= Name=")/,
/(?<=^Begin Object.*? Name="[^"]*").+/,
/ +$/,
/^ +ExportedNodes=.+\n/,
]
.map(r => r.source)
.join("|"),
"gm"
),
""
)
.replaceAll(" ", " ")
if (rename) {
result = result.replaceAll(name, rename)
}
return result
}
test.describe("Niagara ScriptVariables", () => {
test.beforeEach(async ({ blueprintPage }) => {
await blueprintPage.removeNodes()
})
test("Deserialization", async ({ blueprintPage }) => {
blueprintPage = await blueprintPage.clone()
expect(await blueprintPage.blueprintLocator.evaluate(blueprint => blueprint.entity.serialize()))
.toEqual('Begin Object Name="Blueprint"\nEnd Object\n')
const source = String.raw`
Begin Object Class=/Script/NiagaraEditor.NiagaraClipboardContent Name="NiagaraClipboardContent_6" ExportPath="/Script/NiagaraEditor.NiagaraClipboardContent'/Engine/Transient.NiagaraClipboardContent_6'"
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_2" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_6:NiagaraScriptVariable_2'"
End Object
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_1" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_6:NiagaraScriptVariable_1'"
End Object
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_0" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_6:NiagaraScriptVariable_0'"
End Object
Begin Object Name="NiagaraScriptVariable_2" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_6:NiagaraScriptVariable_2'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(VarData=(0,0,0,0,0,0,0,0,0,0,0,0),Name="Local.Module.NewOutput",TypeDefHandle=(RegisteredTypeIndex=91))
Metadata=(VariableGuid=274F4E069AD943DBAAB943F92BE558EA)
DefaultValueVariant=(Bytes=(0,0,0,0,0,0,0,0,0,0,0,0),CurrentMode=Bytes)
ChangeId=DE05B442E3734F5D9AEA76603B33E271
End Object
Begin Object Name="NiagaraScriptVariable_1" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_6:NiagaraScriptVariable_1'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(VarData=(0,0,0,0,0,0,0,0,0,0,0,0),Name="Local.Module.Input001",TypeDefHandle=(RegisteredTypeIndex=88))
Metadata=(VariableGuid=775A1228426C413AB95CB9049C1E993A)
DefaultValueVariant=(Bytes=(0,0,0,0,0,0,0,0,0,0,0,0),CurrentMode=Bytes)
ChangeId=C38E0F30344D4A2689CC7972DFBAA6FA
End Object
Begin Object Name="NiagaraScriptVariable_0" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_6:NiagaraScriptVariable_0'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(Name="Local.Module.Input",TypeDefHandle=(RegisteredTypeIndex=59))
Metadata=(VariableGuid=0DAA63BD5851469990B3FE12816255A5)
ChangeId=2312FB889A9640CFA45B3A9E4AF7FC01
End Object
ScriptVariables(0)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_0'",OriginalChangeId=2312FB889A9640CFA45B3A9E4AF7FC01)
ScriptVariables(1)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_1'",OriginalChangeId=C38E0F30344D4A2689CC7972DFBAA6FA)
ScriptVariables(2)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_2'",OriginalChangeId=DE05B442E3734F5D9AEA76603B33E271)
ExportedNodes="QmVnaW4gT2JqZWN0IENsYXNzPS9TY3JpcHQvTmlhZ2FyYUVkaXRvci5OaWFnYXJhTm9kZVBhcmFtZXRlck1hcFNldCBOYW1lPSJOaWFnYXJhTm9kZVBhcmFtZXRlck1hcFNldF8wIiBFeHBvcnRQYXRoPSIvU2NyaXB0L05pYWdhcmFFZGl0b3IuTmlhZ2FyYU5vZGVQYXJhbWV0ZXJNYXBTZXQnL0VuZ2luZS9UcmFuc2llbnQuTmV3TmlhZ2FyYVNjcmlwdDI6TmlhZ2FyYVNjcmlwdFNvdXJjZV8wLk5pYWdhcmFHcmFwaF8wLk5pYWdhcmFOb2RlUGFyYW1ldGVyTWFwU2V0XzAnIgogICBDaGFuZ2VJZD03QkU4QUZGMzlBNkU0MzUwQjY3QzlBM0FBOEYzMDVCNg0KICAgTm9kZVBvc1g9LTI1Ng0KICAgTm9kZVBvc1k9LTE2MA0KICAgTm9kZUd1aWQ9RkU5M0ZCNDlDNTI4NDMyNEE3ODBFMThGNTQzRjZBNDcNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD1EMUMwMjMyMEJFOUU0MTgxOUZCQTdBNjhCMTE5QzU5QyxQaW5OYW1lPSJTb3VyY2UiLFBpblR5cGUuUGluQ2F0ZWdvcnk9IlR5cGUiLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnk9IiIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU9iamVjdD0iL1NjcmlwdC9Db3JlVU9iamVjdC5TY3JpcHRTdHJ1Y3QnL1NjcmlwdC9OaWFnYXJhLk5pYWdhcmFQYXJhbWV0ZXJNYXAnIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5TWVtYmVyUmVmZXJlbmNlPSgpLFBpblR5cGUuUGluVmFsdWVUeXBlPSgpLFBpblR5cGUuQ29udGFpbmVyVHlwZT1Ob25lLFBpblR5cGUuYklzUmVmZXJlbmNlPUZhbHNlLFBpblR5cGUuYklzQ29uc3Q9RmFsc2UsUGluVHlwZS5iSXNXZWFrUG9pbnRlcj1GYWxzZSxQaW5UeXBlLmJJc1VPYmplY3RXcmFwcGVyPUZhbHNlLFBpblR5cGUuYlNlcmlhbGl6ZUFzU2luZ2xlUHJlY2lzaW9uRmxvYXQ9RmFsc2UsUGVyc2lzdGVudEd1aWQ9MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAsYkhpZGRlbj1GYWxzZSxiTm90Q29ubmVjdGFibGU9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzUmVhZE9ubHk9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzSWdub3JlZD1GYWxzZSxiQWR2YW5jZWRWaWV3PUZhbHNlLGJPcnBoYW5lZFBpbj1GYWxzZSwpDQogICBDdXN0b21Qcm9wZXJ0aWVzIFBpbiAoUGluSWQ9M0VDMTczNDdDQUU4NEUwMEE3NjJFRDMyQkI4MkRBRDMsUGluTmFtZT0iRGVzdCIsRGlyZWN0aW9uPSJFR1BEX091dHB1dCIsUGluVHlwZS5QaW5DYXRlZ29yeT0iVHlwZSIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeT0iIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5T2JqZWN0PSIvU2NyaXB0L0NvcmVVT2JqZWN0LlNjcmlwdFN0cnVjdCcvU2NyaXB0L05pYWdhcmEuTmlhZ2FyYVBhcmFtZXRlck1hcCciLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlNZW1iZXJSZWZlcmVuY2U9KCksUGluVHlwZS5QaW5WYWx1ZVR5cGU9KCksUGluVHlwZS5Db250YWluZXJUeXBlPU5vbmUsUGluVHlwZS5iSXNSZWZlcmVuY2U9RmFsc2UsUGluVHlwZS5iSXNDb25zdD1GYWxzZSxQaW5UeXBlLmJJc1dlYWtQb2ludGVyPUZhbHNlLFBpblR5cGUuYklzVU9iamVjdFdyYXBwZXI9RmFsc2UsUGluVHlwZS5iU2VyaWFsaXplQXNTaW5nbGVQcmVjaXNpb25GbG9hdD1GYWxzZSxQZXJzaXN0ZW50R3VpZD0wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCxiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD1FNDkyRDQ5RTFEQjI0NUU1QkI2QTU0NzE2OEMzRTEzMSxQaW5OYW1lPSJMb2NhbC5Nb2R1bGUuSW5wdXQiLFBpbkZyaWVuZGx5TmFtZT1JTlZURVhUKCJMb2NhbC5Nb2R1bGUuSW5wdXQiKSxQaW5UeXBlLlBpbkNhdGVnb3J5PSJDbGFzcyIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeT0iUGFyYW1ldGVyUGluIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5T2JqZWN0PSIvU2NyaXB0L0NvcmVVT2JqZWN0LkNsYXNzJy9TY3JpcHQvTmlhZ2FyYS5OaWFnYXJhRGF0YUludGVyZmFjZVJlbmRlclRhcmdldDJEJyIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU1lbWJlclJlZmVyZW5jZT0oKSxQaW5UeXBlLlBpblZhbHVlVHlwZT0oKSxQaW5UeXBlLkNvbnRhaW5lclR5cGU9Tm9uZSxQaW5UeXBlLmJJc1JlZmVyZW5jZT1GYWxzZSxQaW5UeXBlLmJJc0NvbnN0PUZhbHNlLFBpblR5cGUuYklzV2Vha1BvaW50ZXI9RmFsc2UsUGluVHlwZS5iSXNVT2JqZWN0V3JhcHBlcj1GYWxzZSxQaW5UeXBlLmJTZXJpYWxpemVBc1NpbmdsZVByZWNpc2lvbkZsb2F0PUZhbHNlLExpbmtlZFRvPShOaWFnYXJhTm9kZUlucHV0XzEwOSBDNUFGNzNFODNEMUQ0NEJDQjQwQjVFRENDMTY3OENCQiwpLFBlcnNpc3RlbnRHdWlkPTIwMEZDOTU0QTU2NDREM0RBNzQ3RjU1NDQ2NzE3QTY3LGJIaWRkZW49RmFsc2UsYk5vdENvbm5lY3RhYmxlPUZhbHNlLGJEZWZhdWx0VmFsdWVJc1JlYWRPbmx5PUZhbHNlLGJEZWZhdWx0VmFsdWVJc0lnbm9yZWQ9RmFsc2UsYkFkdmFuY2VkVmlldz1GYWxzZSxiT3JwaGFuZWRQaW49RmFsc2UsKQ0KICAgQ3VzdG9tUHJvcGVydGllcyBQaW4gKFBpbklkPUI3NkM5NUFEN0I4MjRBRTU4QTUzMDdERjA4NDAxOEJCLFBpbk5hbWU9IkxvY2FsLk1vZHVsZS5JbnB1dDAwMSIsUGluRnJpZW5kbHlOYW1lPUlOVlRFWFQoIkxvY2FsLk1vZHVsZS5JbnB1dDAwMSIpLFBpblR5cGUuUGluQ2F0ZWdvcnk9IlR5cGUiLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnk9IlBhcmFtZXRlclBpbiIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU9iamVjdD0iL1NjcmlwdC9Db3JlVU9iamVjdC5TY3JpcHRTdHJ1Y3QnL1NjcmlwdC9Db3JlVU9iamVjdC5WZWN0b3IzZiciLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlNZW1iZXJSZWZlcmVuY2U9KCksUGluVHlwZS5QaW5WYWx1ZVR5cGU9KCksUGluVHlwZS5Db250YWluZXJUeXBlPU5vbmUsUGluVHlwZS5iSXNSZWZlcmVuY2U9RmFsc2UsUGluVHlwZS5iSXNDb25zdD1GYWxzZSxQaW5UeXBlLmJJc1dlYWtQb2ludGVyPUZhbHNlLFBpblR5cGUuYklzVU9iamVjdFdyYXBwZXI9RmFsc2UsUGluVHlwZS5iU2VyaWFsaXplQXNTaW5nbGVQcmVjaXNpb25GbG9hdD1GYWxzZSxMaW5rZWRUbz0oTmlhZ2FyYU5vZGVJbnB1dF8wIDk5QzJDOTg4NDNBOTQ0MzJEOUU3RTI4NzIwRjU1RkM3LCksUGVyc2lzdGVudEd1aWQ9MTI3QTI2QjFEMTc3NDY4NjgwM0VEMkE5NkVGNTNEMkUsYkhpZGRlbj1GYWxzZSxiTm90Q29ubmVjdGFibGU9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzUmVhZE9ubHk9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzSWdub3JlZD1GYWxzZSxiQWR2YW5jZWRWaWV3PUZhbHNlLGJPcnBoYW5lZFBpbj1GYWxzZSwpDQogICBDdXN0b21Qcm9wZXJ0aWVzIFBpbiAoUGluSWQ9MjJCOTk3MzVGMDVFNENDQTlBMEIxQkE4NDIxMEFENUUsUGluTmFtZT0iTG9jYWwuTW9kdWxlLk5ld091dHB1dCIsUGluRnJpZW5kbHlOYW1lPUlOVlRFWFQoIkxvY2FsLk1vZHVsZS5OZXdPdXRwdXQiKSxQaW5UeXBlLlBpbkNhdGVnb3J5PSJUeXBlIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5PSJQYXJhbWV0ZXJQaW4iLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlPYmplY3Q9Ii9TY3JpcHQvQ29yZVVPYmplY3QuU2NyaXB0U3RydWN0Jy9TY3JpcHQvTmlhZ2FyYS5OaWFnYXJhUG9zaXRpb24nIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5TWVtYmVyUmVmZXJlbmNlPSgpLFBpblR5cGUuUGluVmFsdWVUeXBlPSgpLFBpblR5cGUuQ29udGFpbmVyVHlwZT1Ob25lLFBpblR5cGUuYklzUmVmZXJlbmNlPUZhbHNlLFBpblR5cGUuYklzQ29uc3Q9RmFsc2UsUGluVHlwZS5iSXNXZWFrUG9pbnRlcj1GYWxzZSxQaW5UeXBlLmJJc1VPYmplY3RXcmFwcGVyPUZhbHNlLFBpblR5cGUuYlNlcmlhbGl6ZUFzU2luZ2xlUHJlY2lzaW9uRmxvYXQ9RmFsc2UsTGlua2VkVG89KE5pYWdhcmFOb2RlRnVuY3Rpb25DYWxsXzE2OCAxRDY2M0EwQUEyRjk0RjBDODJCMjA0RUMwMTIyRTdFQiwpLFBlcnNpc3RlbnRHdWlkPTg0RDhGRkFENTA4OTQ1MTQ4MzFFMjFGQTM0QTMzQTk3LGJIaWRkZW49RmFsc2UsYk5vdENvbm5lY3RhYmxlPUZhbHNlLGJEZWZhdWx0VmFsdWVJc1JlYWRPbmx5PUZhbHNlLGJEZWZhdWx0VmFsdWVJc0lnbm9yZWQ9RmFsc2UsYkFkdmFuY2VkVmlldz1GYWxzZSxiT3JwaGFuZWRQaW49RmFsc2UsKQ0KICAgQ3VzdG9tUHJvcGVydGllcyBQaW4gKFBpbklkPTA2MUNFOEJGMUFCNTQzOTI5MDBFMjgxRTUwQjZBMkFCLFBpbk5hbWU9IkFkZCIsUGluVHlwZS5QaW5DYXRlZ29yeT0iTWlzYyIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeT0iRHluYW1pY0FkZFBpbiIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU9iamVjdD1Ob25lLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlNZW1iZXJSZWZlcmVuY2U9KCksUGluVHlwZS5QaW5WYWx1ZVR5cGU9KCksUGluVHlwZS5Db250YWluZXJUeXBlPU5vbmUsUGluVHlwZS5iSXNSZWZlcmVuY2U9RmFsc2UsUGluVHlwZS5iSXNDb25zdD1GYWxzZSxQaW5UeXBlLmJJc1dlYWtQb2ludGVyPUZhbHNlLFBpblR5cGUuYklzVU9iamVjdFdyYXBwZXI9RmFsc2UsUGluVHlwZS5iU2VyaWFsaXplQXNTaW5nbGVQcmVjaXNpb25GbG9hdD1GYWxzZSxQZXJzaXN0ZW50R3VpZD0wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCxiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCkVuZCBPYmplY3QNCg=="
End Object
`
await blueprintPage.paste(source)
// await blueprintPage.blueprintLocator.evaluate(blueprint => blueprint.entity.Name.value = "NiagaraClipboardContent_6")
expect(await blueprintPage.blueprintLocator.evaluate(blueprint => {
const entity = blueprint.entity
entity.Name.value = "###########"
return entity.serialize()
}))
.toEqual(serialized(source, "###########"))
blueprintPage.cleanup()
})
test("Merging", async ({ blueprintPage }) => {
blueprintPage = await blueprintPage.clone()
// Var: Local.Module.Input, Local.Module.Input001, Local.Module.NewOutput
let source = String.raw`
Begin Object Class=/Script/NiagaraEditor.NiagaraClipboardContent Name="NiagaraClipboardContent_6" ExportPath="/Script/NiagaraEditor.NiagaraClipboardContent'/Engine/Transient.NiagaraClipboardContent_6'"
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_2" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_6:NiagaraScriptVariable_2'"
End Object
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_1" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_6:NiagaraScriptVariable_1'"
End Object
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_0" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_6:NiagaraScriptVariable_0'"
End Object
Begin Object Name="NiagaraScriptVariable_2" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_6:NiagaraScriptVariable_2'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(VarData=(0,0,0,0,0,0,0,0,0,0,0,0),Name="Local.Module.NewOutput",TypeDefHandle=(RegisteredTypeIndex=91))
Metadata=(VariableGuid=274F4E069AD943DBAAB943F92BE558EA)
DefaultValueVariant=(Bytes=(0,0,0,0,0,0,0,0,0,0,0,0),CurrentMode=Bytes)
ChangeId=DE05B442E3734F5D9AEA76603B33E271
End Object
Begin Object Name="NiagaraScriptVariable_1" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_6:NiagaraScriptVariable_1'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(VarData=(0,0,0,0,0,0,0,0,0,0,0,0),Name="Local.Module.Input001",TypeDefHandle=(RegisteredTypeIndex=88))
Metadata=(VariableGuid=775A1228426C413AB95CB9049C1E993A)
DefaultValueVariant=(Bytes=(0,0,0,0,0,0,0,0,0,0,0,0),CurrentMode=Bytes)
ChangeId=C38E0F30344D4A2689CC7972DFBAA6FA
End Object
Begin Object Name="NiagaraScriptVariable_0" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_6:NiagaraScriptVariable_0'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(Name="Local.Module.Input",TypeDefHandle=(RegisteredTypeIndex=59))
Metadata=(VariableGuid=0DAA63BD5851469990B3FE12816255A5)
ChangeId=2312FB889A9640CFA45B3A9E4AF7FC01
End Object
ScriptVariables(0)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_0'",OriginalChangeId=2312FB889A9640CFA45B3A9E4AF7FC01)
ScriptVariables(1)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_1'",OriginalChangeId=C38E0F30344D4A2689CC7972DFBAA6FA)
ScriptVariables(2)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_2'",OriginalChangeId=DE05B442E3734F5D9AEA76603B33E271)
ExportedNodes="QmVnaW4gT2JqZWN0IENsYXNzPS9TY3JpcHQvTmlhZ2FyYUVkaXRvci5OaWFnYXJhTm9kZVBhcmFtZXRlck1hcFNldCBOYW1lPSJOaWFnYXJhTm9kZVBhcmFtZXRlck1hcFNldF8wIiBFeHBvcnRQYXRoPSIvU2NyaXB0L05pYWdhcmFFZGl0b3IuTmlhZ2FyYU5vZGVQYXJhbWV0ZXJNYXBTZXQnL0VuZ2luZS9UcmFuc2llbnQuTmV3TmlhZ2FyYVNjcmlwdDI6TmlhZ2FyYVNjcmlwdFNvdXJjZV8wLk5pYWdhcmFHcmFwaF8wLk5pYWdhcmFOb2RlUGFyYW1ldGVyTWFwU2V0XzAnIgogICBDaGFuZ2VJZD03QkU4QUZGMzlBNkU0MzUwQjY3QzlBM0FBOEYzMDVCNg0KICAgTm9kZVBvc1g9LTI1Ng0KICAgTm9kZVBvc1k9LTE2MA0KICAgTm9kZUd1aWQ9RkU5M0ZCNDlDNTI4NDMyNEE3ODBFMThGNTQzRjZBNDcNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD1EMUMwMjMyMEJFOUU0MTgxOUZCQTdBNjhCMTE5QzU5QyxQaW5OYW1lPSJTb3VyY2UiLFBpblR5cGUuUGluQ2F0ZWdvcnk9IlR5cGUiLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnk9IiIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU9iamVjdD0iL1NjcmlwdC9Db3JlVU9iamVjdC5TY3JpcHRTdHJ1Y3QnL1NjcmlwdC9OaWFnYXJhLk5pYWdhcmFQYXJhbWV0ZXJNYXAnIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5TWVtYmVyUmVmZXJlbmNlPSgpLFBpblR5cGUuUGluVmFsdWVUeXBlPSgpLFBpblR5cGUuQ29udGFpbmVyVHlwZT1Ob25lLFBpblR5cGUuYklzUmVmZXJlbmNlPUZhbHNlLFBpblR5cGUuYklzQ29uc3Q9RmFsc2UsUGluVHlwZS5iSXNXZWFrUG9pbnRlcj1GYWxzZSxQaW5UeXBlLmJJc1VPYmplY3RXcmFwcGVyPUZhbHNlLFBpblR5cGUuYlNlcmlhbGl6ZUFzU2luZ2xlUHJlY2lzaW9uRmxvYXQ9RmFsc2UsUGVyc2lzdGVudEd1aWQ9MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAsYkhpZGRlbj1GYWxzZSxiTm90Q29ubmVjdGFibGU9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzUmVhZE9ubHk9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzSWdub3JlZD1GYWxzZSxiQWR2YW5jZWRWaWV3PUZhbHNlLGJPcnBoYW5lZFBpbj1GYWxzZSwpDQogICBDdXN0b21Qcm9wZXJ0aWVzIFBpbiAoUGluSWQ9M0VDMTczNDdDQUU4NEUwMEE3NjJFRDMyQkI4MkRBRDMsUGluTmFtZT0iRGVzdCIsRGlyZWN0aW9uPSJFR1BEX091dHB1dCIsUGluVHlwZS5QaW5DYXRlZ29yeT0iVHlwZSIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeT0iIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5T2JqZWN0PSIvU2NyaXB0L0NvcmVVT2JqZWN0LlNjcmlwdFN0cnVjdCcvU2NyaXB0L05pYWdhcmEuTmlhZ2FyYVBhcmFtZXRlck1hcCciLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlNZW1iZXJSZWZlcmVuY2U9KCksUGluVHlwZS5QaW5WYWx1ZVR5cGU9KCksUGluVHlwZS5Db250YWluZXJUeXBlPU5vbmUsUGluVHlwZS5iSXNSZWZlcmVuY2U9RmFsc2UsUGluVHlwZS5iSXNDb25zdD1GYWxzZSxQaW5UeXBlLmJJc1dlYWtQb2ludGVyPUZhbHNlLFBpblR5cGUuYklzVU9iamVjdFdyYXBwZXI9RmFsc2UsUGluVHlwZS5iU2VyaWFsaXplQXNTaW5nbGVQcmVjaXNpb25GbG9hdD1GYWxzZSxQZXJzaXN0ZW50R3VpZD0wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCxiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD1FNDkyRDQ5RTFEQjI0NUU1QkI2QTU0NzE2OEMzRTEzMSxQaW5OYW1lPSJMb2NhbC5Nb2R1bGUuSW5wdXQiLFBpbkZyaWVuZGx5TmFtZT1JTlZURVhUKCJMb2NhbC5Nb2R1bGUuSW5wdXQiKSxQaW5UeXBlLlBpbkNhdGVnb3J5PSJDbGFzcyIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeT0iUGFyYW1ldGVyUGluIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5T2JqZWN0PSIvU2NyaXB0L0NvcmVVT2JqZWN0LkNsYXNzJy9TY3JpcHQvTmlhZ2FyYS5OaWFnYXJhRGF0YUludGVyZmFjZVJlbmRlclRhcmdldDJEJyIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU1lbWJlclJlZmVyZW5jZT0oKSxQaW5UeXBlLlBpblZhbHVlVHlwZT0oKSxQaW5UeXBlLkNvbnRhaW5lclR5cGU9Tm9uZSxQaW5UeXBlLmJJc1JlZmVyZW5jZT1GYWxzZSxQaW5UeXBlLmJJc0NvbnN0PUZhbHNlLFBpblR5cGUuYklzV2Vha1BvaW50ZXI9RmFsc2UsUGluVHlwZS5iSXNVT2JqZWN0V3JhcHBlcj1GYWxzZSxQaW5UeXBlLmJTZXJpYWxpemVBc1NpbmdsZVByZWNpc2lvbkZsb2F0PUZhbHNlLExpbmtlZFRvPShOaWFnYXJhTm9kZUlucHV0XzEwOSBDNUFGNzNFODNEMUQ0NEJDQjQwQjVFRENDMTY3OENCQiwpLFBlcnNpc3RlbnRHdWlkPTIwMEZDOTU0QTU2NDREM0RBNzQ3RjU1NDQ2NzE3QTY3LGJIaWRkZW49RmFsc2UsYk5vdENvbm5lY3RhYmxlPUZhbHNlLGJEZWZhdWx0VmFsdWVJc1JlYWRPbmx5PUZhbHNlLGJEZWZhdWx0VmFsdWVJc0lnbm9yZWQ9RmFsc2UsYkFkdmFuY2VkVmlldz1GYWxzZSxiT3JwaGFuZWRQaW49RmFsc2UsKQ0KICAgQ3VzdG9tUHJvcGVydGllcyBQaW4gKFBpbklkPUI3NkM5NUFEN0I4MjRBRTU4QTUzMDdERjA4NDAxOEJCLFBpbk5hbWU9IkxvY2FsLk1vZHVsZS5JbnB1dDAwMSIsUGluRnJpZW5kbHlOYW1lPUlOVlRFWFQoIkxvY2FsLk1vZHVsZS5JbnB1dDAwMSIpLFBpblR5cGUuUGluQ2F0ZWdvcnk9IlR5cGUiLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnk9IlBhcmFtZXRlclBpbiIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU9iamVjdD0iL1NjcmlwdC9Db3JlVU9iamVjdC5TY3JpcHRTdHJ1Y3QnL1NjcmlwdC9Db3JlVU9iamVjdC5WZWN0b3IzZiciLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlNZW1iZXJSZWZlcmVuY2U9KCksUGluVHlwZS5QaW5WYWx1ZVR5cGU9KCksUGluVHlwZS5Db250YWluZXJUeXBlPU5vbmUsUGluVHlwZS5iSXNSZWZlcmVuY2U9RmFsc2UsUGluVHlwZS5iSXNDb25zdD1GYWxzZSxQaW5UeXBlLmJJc1dlYWtQb2ludGVyPUZhbHNlLFBpblR5cGUuYklzVU9iamVjdFdyYXBwZXI9RmFsc2UsUGluVHlwZS5iU2VyaWFsaXplQXNTaW5nbGVQcmVjaXNpb25GbG9hdD1GYWxzZSxMaW5rZWRUbz0oTmlhZ2FyYU5vZGVJbnB1dF8wIDk5QzJDOTg4NDNBOTQ0MzJEOUU3RTI4NzIwRjU1RkM3LCksUGVyc2lzdGVudEd1aWQ9MTI3QTI2QjFEMTc3NDY4NjgwM0VEMkE5NkVGNTNEMkUsYkhpZGRlbj1GYWxzZSxiTm90Q29ubmVjdGFibGU9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzUmVhZE9ubHk9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzSWdub3JlZD1GYWxzZSxiQWR2YW5jZWRWaWV3PUZhbHNlLGJPcnBoYW5lZFBpbj1GYWxzZSwpDQogICBDdXN0b21Qcm9wZXJ0aWVzIFBpbiAoUGluSWQ9MjJCOTk3MzVGMDVFNENDQTlBMEIxQkE4NDIxMEFENUUsUGluTmFtZT0iTG9jYWwuTW9kdWxlLk5ld091dHB1dCIsUGluRnJpZW5kbHlOYW1lPUlOVlRFWFQoIkxvY2FsLk1vZHVsZS5OZXdPdXRwdXQiKSxQaW5UeXBlLlBpbkNhdGVnb3J5PSJUeXBlIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5PSJQYXJhbWV0ZXJQaW4iLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlPYmplY3Q9Ii9TY3JpcHQvQ29yZVVPYmplY3QuU2NyaXB0U3RydWN0Jy9TY3JpcHQvTmlhZ2FyYS5OaWFnYXJhUG9zaXRpb24nIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5TWVtYmVyUmVmZXJlbmNlPSgpLFBpblR5cGUuUGluVmFsdWVUeXBlPSgpLFBpblR5cGUuQ29udGFpbmVyVHlwZT1Ob25lLFBpblR5cGUuYklzUmVmZXJlbmNlPUZhbHNlLFBpblR5cGUuYklzQ29uc3Q9RmFsc2UsUGluVHlwZS5iSXNXZWFrUG9pbnRlcj1GYWxzZSxQaW5UeXBlLmJJc1VPYmplY3RXcmFwcGVyPUZhbHNlLFBpblR5cGUuYlNlcmlhbGl6ZUFzU2luZ2xlUHJlY2lzaW9uRmxvYXQ9RmFsc2UsTGlua2VkVG89KE5pYWdhcmFOb2RlRnVuY3Rpb25DYWxsXzE2OCAxRDY2M0EwQUEyRjk0RjBDODJCMjA0RUMwMTIyRTdFQiwpLFBlcnNpc3RlbnRHdWlkPTg0RDhGRkFENTA4OTQ1MTQ4MzFFMjFGQTM0QTMzQTk3LGJIaWRkZW49RmFsc2UsYk5vdENvbm5lY3RhYmxlPUZhbHNlLGJEZWZhdWx0VmFsdWVJc1JlYWRPbmx5PUZhbHNlLGJEZWZhdWx0VmFsdWVJc0lnbm9yZWQ9RmFsc2UsYkFkdmFuY2VkVmlldz1GYWxzZSxiT3JwaGFuZWRQaW49RmFsc2UsKQ0KICAgQ3VzdG9tUHJvcGVydGllcyBQaW4gKFBpbklkPTA2MUNFOEJGMUFCNTQzOTI5MDBFMjgxRTUwQjZBMkFCLFBpbk5hbWU9IkFkZCIsUGluVHlwZS5QaW5DYXRlZ29yeT0iTWlzYyIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeT0iRHluYW1pY0FkZFBpbiIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU9iamVjdD1Ob25lLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlNZW1iZXJSZWZlcmVuY2U9KCksUGluVHlwZS5QaW5WYWx1ZVR5cGU9KCksUGluVHlwZS5Db250YWluZXJUeXBlPU5vbmUsUGluVHlwZS5iSXNSZWZlcmVuY2U9RmFsc2UsUGluVHlwZS5iSXNDb25zdD1GYWxzZSxQaW5UeXBlLmJJc1dlYWtQb2ludGVyPUZhbHNlLFBpblR5cGUuYklzVU9iamVjdFdyYXBwZXI9RmFsc2UsUGluVHlwZS5iU2VyaWFsaXplQXNTaW5nbGVQcmVjaXNpb25GbG9hdD1GYWxzZSxQZXJzaXN0ZW50R3VpZD0wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCxiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCkVuZCBPYmplY3QNCg=="
End Object
`
await blueprintPage.paste(source)
expect(await blueprintPage.blueprintLocator.evaluate(blueprint => blueprint.entity.serialize()))
.toEqual(serialized(source))
// Var: Local.Module.Input, Local.Module.Input001, Local.Module.Camera Relative Position, Local.Module.X
// Add: Local.Module.Camera Relative Position (3), Local.Module.X (4)
// Has: Local.Module.Input (0), Local.Module.Input001 (1)
source = String.raw`
Begin Object Class=/Script/NiagaraEditor.NiagaraClipboardContent Name="NiagaraClipboardContent_8" ExportPath="/Script/NiagaraEditor.NiagaraClipboardContent'/Engine/Transient.NiagaraClipboardContent_8'"
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_4" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_4'"
End Object
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_3" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_3'"
End Object
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_1" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_1'"
End Object
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_0" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_0'"
End Object
Begin Object Name="NiagaraScriptVariable_4" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_4'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(VarData=(0,0,0,0,0,0,0,0,0,0,0,0),Name="Local.Module.X",TypeDefHandle=(RegisteredTypeIndex=88))
Metadata=(VariableGuid=9661E7AE20234E159801C8E970F0D03D)
DefaultValueVariant=(Bytes=(0,0,0,0,0,0,0,0,0,0,0,0),CurrentMode=Bytes)
ChangeId=751E3204296A40409ADC4335E4C33CE6
End Object
Begin Object Name="NiagaraScriptVariable_3" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_3'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(VarData=(0,0,0,0,0,0,0,0,0,0,0,0),Name="Local.Module.Camera Relative Position",TypeDefHandle=(RegisteredTypeIndex=88))
Metadata=(VariableGuid=0AD251B024C14B9AB06AAF654E8A3FF1)
DefaultValueVariant=(Bytes=(0,0,0,0,0,0,0,0,0,0,0,0),CurrentMode=Bytes)
ChangeId=4DD48BD81EA444099BB03E1AAE4F201E
End Object
Begin Object Name="NiagaraScriptVariable_1" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_1'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(VarData=(0,0,0,0,0,0,0,0,0,0,0,0),Name="Local.Module.Input001",TypeDefHandle=(RegisteredTypeIndex=88))
Metadata=(VariableGuid=775A1228426C413AB95CB9049C1E993A)
DefaultValueVariant=(Bytes=(0,0,0,0,0,0,0,0,0,0,0,0),CurrentMode=Bytes)
ChangeId=C38E0F30344D4A2689CC7972DFBAA6FA
End Object
Begin Object Name="NiagaraScriptVariable_0" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_0'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(Name="Local.Module.Input",TypeDefHandle=(RegisteredTypeIndex=59))
Metadata=(VariableGuid=0DAA63BD5851469990B3FE12816255A5)
ChangeId=2312FB889A9640CFA45B3A9E4AF7FC01
End Object
ScriptVariables(0)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_0'",OriginalChangeId=2312FB889A9640CFA45B3A9E4AF7FC01)
ScriptVariables(1)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_1'",OriginalChangeId=C38E0F30344D4A2689CC7972DFBAA6FA)
ScriptVariables(2)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_3'",OriginalChangeId=4DD48BD81EA444099BB03E1AAE4F201E)
ScriptVariables(3)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_4'",OriginalChangeId=751E3204296A40409ADC4335E4C33CE6)
ExportedNodes="QmVnaW4gT2JqZWN0IENsYXNzPS9TY3JpcHQvTmlhZ2FyYUVkaXRvci5OaWFnYXJhTm9kZVBhcmFtZXRlck1hcFNldCBOYW1lPSJOaWFnYXJhTm9kZVBhcmFtZXRlck1hcFNldF8xIiBFeHBvcnRQYXRoPSIvU2NyaXB0L05pYWdhcmFFZGl0b3IuTmlhZ2FyYU5vZGVQYXJhbWV0ZXJNYXBTZXQnL0VuZ2luZS9UcmFuc2llbnQuTmV3TmlhZ2FyYVNjcmlwdDI6TmlhZ2FyYVNjcmlwdFNvdXJjZV8wLk5pYWdhcmFHcmFwaF8wLk5pYWdhcmFOb2RlUGFyYW1ldGVyTWFwU2V0XzEnIgogICBDaGFuZ2VJZD05MzVGMjRENzMyMUE0NTREQUNENUY4NzMzNTE3NTVEMg0KICAgTm9kZVBvc1g9LTIyNA0KICAgTm9kZVBvc1k9MTQ0DQogICBOb2RlR3VpZD0yNkEwMEIzNUI4Q0E0RDcwQkVEMTQyODJGRTZENzNFMg0KICAgQ3VzdG9tUHJvcGVydGllcyBQaW4gKFBpbklkPUVDRDQxQjgwQTc5NTQzNUJCQjQwMTA5MkZGOTgwOTQ5LFBpbk5hbWU9IlNvdXJjZSIsUGluVHlwZS5QaW5DYXRlZ29yeT0iVHlwZSIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeT0iIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5T2JqZWN0PSIvU2NyaXB0L0NvcmVVT2JqZWN0LlNjcmlwdFN0cnVjdCcvU2NyaXB0L05pYWdhcmEuTmlhZ2FyYVBhcmFtZXRlck1hcCciLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlNZW1iZXJSZWZlcmVuY2U9KCksUGluVHlwZS5QaW5WYWx1ZVR5cGU9KCksUGluVHlwZS5Db250YWluZXJUeXBlPU5vbmUsUGluVHlwZS5iSXNSZWZlcmVuY2U9RmFsc2UsUGluVHlwZS5iSXNDb25zdD1GYWxzZSxQaW5UeXBlLmJJc1dlYWtQb2ludGVyPUZhbHNlLFBpblR5cGUuYklzVU9iamVjdFdyYXBwZXI9RmFsc2UsUGluVHlwZS5iU2VyaWFsaXplQXNTaW5nbGVQcmVjaXNpb25GbG9hdD1GYWxzZSxQZXJzaXN0ZW50R3VpZD0wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCxiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD02MEMxOEE0RjQxMkY0RDBCQkE1OEQ4NTlBNTgxRTFCOCxQaW5OYW1lPSJEZXN0IixEaXJlY3Rpb249IkVHUERfT3V0cHV0IixQaW5UeXBlLlBpbkNhdGVnb3J5PSJUeXBlIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5PSIiLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlPYmplY3Q9Ii9TY3JpcHQvQ29yZVVPYmplY3QuU2NyaXB0U3RydWN0Jy9TY3JpcHQvTmlhZ2FyYS5OaWFnYXJhUGFyYW1ldGVyTWFwJyIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU1lbWJlclJlZmVyZW5jZT0oKSxQaW5UeXBlLlBpblZhbHVlVHlwZT0oKSxQaW5UeXBlLkNvbnRhaW5lclR5cGU9Tm9uZSxQaW5UeXBlLmJJc1JlZmVyZW5jZT1GYWxzZSxQaW5UeXBlLmJJc0NvbnN0PUZhbHNlLFBpblR5cGUuYklzV2Vha1BvaW50ZXI9RmFsc2UsUGluVHlwZS5iSXNVT2JqZWN0V3JhcHBlcj1GYWxzZSxQaW5UeXBlLmJTZXJpYWxpemVBc1NpbmdsZVByZWNpc2lvbkZsb2F0PUZhbHNlLFBlcnNpc3RlbnRHdWlkPTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLGJIaWRkZW49RmFsc2UsYk5vdENvbm5lY3RhYmxlPUZhbHNlLGJEZWZhdWx0VmFsdWVJc1JlYWRPbmx5PUZhbHNlLGJEZWZhdWx0VmFsdWVJc0lnbm9yZWQ9RmFsc2UsYkFkdmFuY2VkVmlldz1GYWxzZSxiT3JwaGFuZWRQaW49RmFsc2UsKQ0KICAgQ3VzdG9tUHJvcGVydGllcyBQaW4gKFBpbklkPTI1NjE1RTJCMDQxNzRDQjVBRjVDMURGREFFREY3RUFBLFBpbk5hbWU9IkxvY2FsLk1vZHVsZS5JbnB1dCIsUGluRnJpZW5kbHlOYW1lPUlOVlRFWFQoIkxvY2FsLk1vZHVsZS5JbnB1dCIpLFBpblR5cGUuUGluQ2F0ZWdvcnk9IkNsYXNzIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5PSJQYXJhbWV0ZXJQaW4iLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlPYmplY3Q9Ii9TY3JpcHQvQ29yZVVPYmplY3QuQ2xhc3MnL1NjcmlwdC9OaWFnYXJhLk5pYWdhcmFEYXRhSW50ZXJmYWNlUmVuZGVyVGFyZ2V0MkQnIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5TWVtYmVyUmVmZXJlbmNlPSgpLFBpblR5cGUuUGluVmFsdWVUeXBlPSgpLFBpblR5cGUuQ29udGFpbmVyVHlwZT1Ob25lLFBpblR5cGUuYklzUmVmZXJlbmNlPUZhbHNlLFBpblR5cGUuYklzQ29uc3Q9RmFsc2UsUGluVHlwZS5iSXNXZWFrUG9pbnRlcj1GYWxzZSxQaW5UeXBlLmJJc1VPYmplY3RXcmFwcGVyPUZhbHNlLFBpblR5cGUuYlNlcmlhbGl6ZUFzU2luZ2xlUHJlY2lzaW9uRmxvYXQ9RmFsc2UsTGlua2VkVG89KE5pYWdhcmFOb2RlSW5wdXRfMTA5IEM1QUY3M0U4M0QxRDQ0QkNCNDBCNUVEQ0MxNjc4Q0JCLCksUGVyc2lzdGVudEd1aWQ9N0I1Q0M0NTRENUQzNDhFOTlBMDNFMjQ0QzE0MjVGQjAsYkhpZGRlbj1GYWxzZSxiTm90Q29ubmVjdGFibGU9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzUmVhZE9ubHk9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzSWdub3JlZD1GYWxzZSxiQWR2YW5jZWRWaWV3PUZhbHNlLGJPcnBoYW5lZFBpbj1GYWxzZSwpDQogICBDdXN0b21Qcm9wZXJ0aWVzIFBpbiAoUGluSWQ9NUNBMUM0N0VEMEU1NDY5MTg2NDhEMkI1NjU3MDc3M0MsUGluTmFtZT0iTG9jYWwuTW9kdWxlLkNhbWVyYSBSZWxhdGl2ZSBQb3NpdGlvbiIsUGluRnJpZW5kbHlOYW1lPUlOVlRFWFQoIkxvY2FsLk1vZHVsZS5DYW1lcmEgUmVsYXRpdmUgUG9zaXRpb24iKSxQaW5UeXBlLlBpbkNhdGVnb3J5PSJUeXBlIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5PSJQYXJhbWV0ZXJQaW4iLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlPYmplY3Q9Ii9TY3JpcHQvQ29yZVVPYmplY3QuU2NyaXB0U3RydWN0Jy9TY3JpcHQvQ29yZVVPYmplY3QuVmVjdG9yM2YnIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5TWVtYmVyUmVmZXJlbmNlPSgpLFBpblR5cGUuUGluVmFsdWVUeXBlPSgpLFBpblR5cGUuQ29udGFpbmVyVHlwZT1Ob25lLFBpblR5cGUuYklzUmVmZXJlbmNlPUZhbHNlLFBpblR5cGUuYklzQ29uc3Q9RmFsc2UsUGluVHlwZS5iSXNXZWFrUG9pbnRlcj1GYWxzZSxQaW5UeXBlLmJJc1VPYmplY3RXcmFwcGVyPUZhbHNlLFBpblR5cGUuYlNlcmlhbGl6ZUFzU2luZ2xlUHJlY2lzaW9uRmxvYXQ9RmFsc2UsTGlua2VkVG89KE5pYWdhcmFOb2RlRnVuY3Rpb25DYWxsXzE0IDMyRjBBQkFDREVCNTQ5OEY5MzNCRDk4N0U3RjZCMTM5LCksUGVyc2lzdGVudEd1aWQ9MTI4NTcyQTRENTIwNENCQUJGRjE1RDRGM0I4QzdFMjcsYkhpZGRlbj1GYWxzZSxiTm90Q29ubmVjdGFibGU9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzUmVhZE9ubHk9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzSWdub3JlZD1GYWxzZSxiQWR2YW5jZWRWaWV3PUZhbHNlLGJPcnBoYW5lZFBpbj1GYWxzZSwpDQogICBDdXN0b21Qcm9wZXJ0aWVzIFBpbiAoUGluSWQ9QzE5QzEzQjE2RUJBNDM1Q0I1NURDMzNCMkVGRjU2NkIsUGluTmFtZT0iTG9jYWwuTW9kdWxlLklucHV0MDAxIixQaW5GcmllbmRseU5hbWU9SU5WVEVYVCgiTG9jYWwuTW9kdWxlLklucHV0MDAxIiksUGluVHlwZS5QaW5DYXRlZ29yeT0iVHlwZSIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeT0iUGFyYW1ldGVyUGluIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5T2JqZWN0PSIvU2NyaXB0L0NvcmVVT2JqZWN0LlNjcmlwdFN0cnVjdCcvU2NyaXB0L0NvcmVVT2JqZWN0LlZlY3RvcjNmJyIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU1lbWJlclJlZmVyZW5jZT0oKSxQaW5UeXBlLlBpblZhbHVlVHlwZT0oKSxQaW5UeXBlLkNvbnRhaW5lclR5cGU9Tm9uZSxQaW5UeXBlLmJJc1JlZmVyZW5jZT1GYWxzZSxQaW5UeXBlLmJJc0NvbnN0PUZhbHNlLFBpblR5cGUuYklzV2Vha1BvaW50ZXI9RmFsc2UsUGluVHlwZS5iSXNVT2JqZWN0V3JhcHBlcj1GYWxzZSxQaW5UeXBlLmJTZXJpYWxpemVBc1NpbmdsZVByZWNpc2lvbkZsb2F0PUZhbHNlLExpbmtlZFRvPShOaWFnYXJhTm9kZUlucHV0XzAgOTlDMkM5ODg0M0E5NDQzMkQ5RTdFMjg3MjBGNTVGQzcsKSxQZXJzaXN0ZW50R3VpZD05NzYwNzZGMzU2RTg0MzM0QTQxQzY1RDgyMDE2NjE5MCxiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD0wRTdERDc5MDhFQjM0MkFBOEZGNjA0NDdBQjU5RTE4QSxQaW5OYW1lPSJMb2NhbC5Nb2R1bGUuWCIsUGluRnJpZW5kbHlOYW1lPUlOVlRFWFQoIkxvY2FsLk1vZHVsZS5YIiksUGluVHlwZS5QaW5DYXRlZ29yeT0iVHlwZSIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeT0iUGFyYW1ldGVyUGluIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5T2JqZWN0PSIvU2NyaXB0L0NvcmVVT2JqZWN0LlNjcmlwdFN0cnVjdCcvU2NyaXB0L0NvcmVVT2JqZWN0LlZlY3RvcjNmJyIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU1lbWJlclJlZmVyZW5jZT0oKSxQaW5UeXBlLlBpblZhbHVlVHlwZT0oKSxQaW5UeXBlLkNvbnRhaW5lclR5cGU9Tm9uZSxQaW5UeXBlLmJJc1JlZmVyZW5jZT1GYWxzZSxQaW5UeXBlLmJJc0NvbnN0PUZhbHNlLFBpblR5cGUuYklzV2Vha1BvaW50ZXI9RmFsc2UsUGluVHlwZS5iSXNVT2JqZWN0V3JhcHBlcj1GYWxzZSxQaW5UeXBlLmJTZXJpYWxpemVBc1NpbmdsZVByZWNpc2lvbkZsb2F0PUZhbHNlLExpbmtlZFRvPShOaWFnYXJhTm9kZUZ1bmN0aW9uQ2FsbF8xNjQgQjdDNTc1QkM4RjI3NDVGQTlGRTJCQkE0RjQzOTdBNzksKSxQZXJzaXN0ZW50R3VpZD01NjBFMjc3NTNGODk0M0ZCOTM5NTU4MzYxRDVFMDFBMixiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD0zNDUwNkNFOTc1M0U0QzEyODA2M0EwQjk0MzY5RTkyNixQaW5OYW1lPSJMb2NhbC5Nb2R1bGUuQ2FtZXJhIFJlbGF0aXZlIFBvc2l0aW9uIixQaW5GcmllbmRseU5hbWU9SU5WVEVYVCgiTG9jYWwuTW9kdWxlLkNhbWVyYSBSZWxhdGl2ZSBQb3NpdGlvbiIpLFBpblR5cGUuUGluQ2F0ZWdvcnk9IlR5cGUiLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnk9IlBhcmFtZXRlclBpbiIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU9iamVjdD0iL1NjcmlwdC9Db3JlVU9iamVjdC5TY3JpcHRTdHJ1Y3QnL1NjcmlwdC9Db3JlVU9iamVjdC5WZWN0b3IzZiciLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlNZW1iZXJSZWZlcmVuY2U9KCksUGluVHlwZS5QaW5WYWx1ZVR5cGU9KCksUGluVHlwZS5Db250YWluZXJUeXBlPU5vbmUsUGluVHlwZS5iSXNSZWZlcmVuY2U9RmFsc2UsUGluVHlwZS5iSXNDb25zdD1GYWxzZSxQaW5UeXBlLmJJc1dlYWtQb2ludGVyPUZhbHNlLFBpblR5cGUuYklzVU9iamVjdFdyYXBwZXI9RmFsc2UsUGluVHlwZS5iU2VyaWFsaXplQXNTaW5nbGVQcmVjaXNpb25GbG9hdD1GYWxzZSxMaW5rZWRUbz0oTmlhZ2FyYU5vZGVGdW5jdGlvbkNhbGxfMTQgMzJGMEFCQUNERUI1NDk4RjkzM0JEOTg3RTdGNkIxMzksKSxQZXJzaXN0ZW50R3VpZD0zREJFOUNDNDA0MDA0Qzg2OTZDNTUyQjJCQkI2MDc4NixiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD0zRjJGQjY0NkEyMDc0QjlEQkVBRkI5NEM5Qjc0MjYwRCxQaW5OYW1lPSJBZGQiLFBpblR5cGUuUGluQ2F0ZWdvcnk9Ik1pc2MiLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnk9IkR5bmFtaWNBZGRQaW4iLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlPYmplY3Q9Tm9uZSxQaW5UeXBlLlBpblN1YkNhdGVnb3J5TWVtYmVyUmVmZXJlbmNlPSgpLFBpblR5cGUuUGluVmFsdWVUeXBlPSgpLFBpblR5cGUuQ29udGFpbmVyVHlwZT1Ob25lLFBpblR5cGUuYklzUmVmZXJlbmNlPUZhbHNlLFBpblR5cGUuYklzQ29uc3Q9RmFsc2UsUGluVHlwZS5iSXNXZWFrUG9pbnRlcj1GYWxzZSxQaW5UeXBlLmJJc1VPYmplY3RXcmFwcGVyPUZhbHNlLFBpblR5cGUuYlNlcmlhbGl6ZUFzU2luZ2xlUHJlY2lzaW9uRmxvYXQ9RmFsc2UsUGVyc2lzdGVudEd1aWQ9MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAsYkhpZGRlbj1GYWxzZSxiTm90Q29ubmVjdGFibGU9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzUmVhZE9ubHk9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzSWdub3JlZD1GYWxzZSxiQWR2YW5jZWRWaWV3PUZhbHNlLGJPcnBoYW5lZFBpbj1GYWxzZSwpDQpFbmQgT2JqZWN0DQo="
End Object
`
await blueprintPage.paste(source)
source = String.raw`
Begin Object Class=/Script/NiagaraEditor.NiagaraClipboardContent Name="NiagaraClipboardContent_8" ExportPath="/Script/NiagaraEditor.NiagaraClipboardContent'/Engine/Transient.NiagaraClipboardContent_8'"
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_4" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_4'"
End Object
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_3" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_3'"
End Object
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_2" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_2'"
End Object
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_1" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_1'"
End Object
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_0" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_0'"
End Object
Begin Object Name="NiagaraScriptVariable_4" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_4'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(VarData=(0,0,0,0,0,0,0,0,0,0,0,0),Name="Local.Module.X",TypeDefHandle=(RegisteredTypeIndex=88))
Metadata=(VariableGuid=9661E7AE20234E159801C8E970F0D03D)
DefaultValueVariant=(Bytes=(0,0,0,0,0,0,0,0,0,0,0,0),CurrentMode=Bytes)
ChangeId=751E3204296A40409ADC4335E4C33CE6
End Object
Begin Object Name="NiagaraScriptVariable_3" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_3'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(VarData=(0,0,0,0,0,0,0,0,0,0,0,0),Name="Local.Module.Camera Relative Position",TypeDefHandle=(RegisteredTypeIndex=88))
Metadata=(VariableGuid=0AD251B024C14B9AB06AAF654E8A3FF1)
DefaultValueVariant=(Bytes=(0,0,0,0,0,0,0,0,0,0,0,0),CurrentMode=Bytes)
ChangeId=4DD48BD81EA444099BB03E1AAE4F201E
End Object
Begin Object Name="NiagaraScriptVariable_2" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_2'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(VarData=(0,0,0,0,0,0,0,0,0,0,0,0),Name="Local.Module.NewOutput",TypeDefHandle=(RegisteredTypeIndex=91))
Metadata=(VariableGuid=274F4E069AD943DBAAB943F92BE558EA)
DefaultValueVariant=(Bytes=(0,0,0,0,0,0,0,0,0,0,0,0),CurrentMode=Bytes)
ChangeId=DE05B442E3734F5D9AEA76603B33E271
End Object
Begin Object Name="NiagaraScriptVariable_1" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_1'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(VarData=(0,0,0,0,0,0,0,0,0,0,0,0),Name="Local.Module.Input001",TypeDefHandle=(RegisteredTypeIndex=88))
Metadata=(VariableGuid=775A1228426C413AB95CB9049C1E993A)
DefaultValueVariant=(Bytes=(0,0,0,0,0,0,0,0,0,0,0,0),CurrentMode=Bytes)
ChangeId=C38E0F30344D4A2689CC7972DFBAA6FA
End Object
Begin Object Name="NiagaraScriptVariable_0" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_0'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(Name="Local.Module.Input",TypeDefHandle=(RegisteredTypeIndex=59))
Metadata=(VariableGuid=0DAA63BD5851469990B3FE12816255A5)
ChangeId=2312FB889A9640CFA45B3A9E4AF7FC01
End Object
ScriptVariables(0)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_0'",OriginalChangeId=2312FB889A9640CFA45B3A9E4AF7FC01)
ScriptVariables(1)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_1'",OriginalChangeId=C38E0F30344D4A2689CC7972DFBAA6FA)
ScriptVariables(2)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_2'",OriginalChangeId=DE05B442E3734F5D9AEA76603B33E271)
ScriptVariables(3)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_3'",OriginalChangeId=4DD48BD81EA444099BB03E1AAE4F201E)
ScriptVariables(4)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_4'",OriginalChangeId=751E3204296A40409ADC4335E4C33CE6)
ExportedNodes="QmVnaW4gT2JqZWN0IENsYXNzPS9TY3JpcHQvTmlhZ2FyYUVkaXRvci5OaWFnYXJhTm9kZVBhcmFtZXRlck1hcFNldCBOYW1lPSJOaWFnYXJhTm9kZVBhcmFtZXRlck1hcFNldF8xIiBFeHBvcnRQYXRoPSIvU2NyaXB0L05pYWdhcmFFZGl0b3IuTmlhZ2FyYU5vZGVQYXJhbWV0ZXJNYXBTZXQnL0VuZ2luZS9UcmFuc2llbnQuTmV3TmlhZ2FyYVNjcmlwdDI6TmlhZ2FyYVNjcmlwdFNvdXJjZV8wLk5pYWdhcmFHcmFwaF8wLk5pYWdhcmFOb2RlUGFyYW1ldGVyTWFwU2V0XzEnIgogICBDaGFuZ2VJZD05MzVGMjRENzMyMUE0NTREQUNENUY4NzMzNTE3NTVEMg0KICAgTm9kZVBvc1g9LTIyNA0KICAgTm9kZVBvc1k9MTQ0DQogICBOb2RlR3VpZD0yNkEwMEIzNUI4Q0E0RDcwQkVEMTQyODJGRTZENzNFMg0KICAgQ3VzdG9tUHJvcGVydGllcyBQaW4gKFBpbklkPUVDRDQxQjgwQTc5NTQzNUJCQjQwMTA5MkZGOTgwOTQ5LFBpbk5hbWU9IlNvdXJjZSIsUGluVHlwZS5QaW5DYXRlZ29yeT0iVHlwZSIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeT0iIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5T2JqZWN0PSIvU2NyaXB0L0NvcmVVT2JqZWN0LlNjcmlwdFN0cnVjdCcvU2NyaXB0L05pYWdhcmEuTmlhZ2FyYVBhcmFtZXRlck1hcCciLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlNZW1iZXJSZWZlcmVuY2U9KCksUGluVHlwZS5QaW5WYWx1ZVR5cGU9KCksUGluVHlwZS5Db250YWluZXJUeXBlPU5vbmUsUGluVHlwZS5iSXNSZWZlcmVuY2U9RmFsc2UsUGluVHlwZS5iSXNDb25zdD1GYWxzZSxQaW5UeXBlLmJJc1dlYWtQb2ludGVyPUZhbHNlLFBpblR5cGUuYklzVU9iamVjdFdyYXBwZXI9RmFsc2UsUGluVHlwZS5iU2VyaWFsaXplQXNTaW5nbGVQcmVjaXNpb25GbG9hdD1GYWxzZSxQZXJzaXN0ZW50R3VpZD0wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCxiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD02MEMxOEE0RjQxMkY0RDBCQkE1OEQ4NTlBNTgxRTFCOCxQaW5OYW1lPSJEZXN0IixEaXJlY3Rpb249IkVHUERfT3V0cHV0IixQaW5UeXBlLlBpbkNhdGVnb3J5PSJUeXBlIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5PSIiLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlPYmplY3Q9Ii9TY3JpcHQvQ29yZVVPYmplY3QuU2NyaXB0U3RydWN0Jy9TY3JpcHQvTmlhZ2FyYS5OaWFnYXJhUGFyYW1ldGVyTWFwJyIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU1lbWJlclJlZmVyZW5jZT0oKSxQaW5UeXBlLlBpblZhbHVlVHlwZT0oKSxQaW5UeXBlLkNvbnRhaW5lclR5cGU9Tm9uZSxQaW5UeXBlLmJJc1JlZmVyZW5jZT1GYWxzZSxQaW5UeXBlLmJJc0NvbnN0PUZhbHNlLFBpblR5cGUuYklzV2Vha1BvaW50ZXI9RmFsc2UsUGluVHlwZS5iSXNVT2JqZWN0V3JhcHBlcj1GYWxzZSxQaW5UeXBlLmJTZXJpYWxpemVBc1NpbmdsZVByZWNpc2lvbkZsb2F0PUZhbHNlLFBlcnNpc3RlbnRHdWlkPTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLGJIaWRkZW49RmFsc2UsYk5vdENvbm5lY3RhYmxlPUZhbHNlLGJEZWZhdWx0VmFsdWVJc1JlYWRPbmx5PUZhbHNlLGJEZWZhdWx0VmFsdWVJc0lnbm9yZWQ9RmFsc2UsYkFkdmFuY2VkVmlldz1GYWxzZSxiT3JwaGFuZWRQaW49RmFsc2UsKQ0KICAgQ3VzdG9tUHJvcGVydGllcyBQaW4gKFBpbklkPTI1NjE1RTJCMDQxNzRDQjVBRjVDMURGREFFREY3RUFBLFBpbk5hbWU9IkxvY2FsLk1vZHVsZS5JbnB1dCIsUGluRnJpZW5kbHlOYW1lPUlOVlRFWFQoIkxvY2FsLk1vZHVsZS5JbnB1dCIpLFBpblR5cGUuUGluQ2F0ZWdvcnk9IkNsYXNzIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5PSJQYXJhbWV0ZXJQaW4iLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlPYmplY3Q9Ii9TY3JpcHQvQ29yZVVPYmplY3QuQ2xhc3MnL1NjcmlwdC9OaWFnYXJhLk5pYWdhcmFEYXRhSW50ZXJmYWNlUmVuZGVyVGFyZ2V0MkQnIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5TWVtYmVyUmVmZXJlbmNlPSgpLFBpblR5cGUuUGluVmFsdWVUeXBlPSgpLFBpblR5cGUuQ29udGFpbmVyVHlwZT1Ob25lLFBpblR5cGUuYklzUmVmZXJlbmNlPUZhbHNlLFBpblR5cGUuYklzQ29uc3Q9RmFsc2UsUGluVHlwZS5iSXNXZWFrUG9pbnRlcj1GYWxzZSxQaW5UeXBlLmJJc1VPYmplY3RXcmFwcGVyPUZhbHNlLFBpblR5cGUuYlNlcmlhbGl6ZUFzU2luZ2xlUHJlY2lzaW9uRmxvYXQ9RmFsc2UsTGlua2VkVG89KE5pYWdhcmFOb2RlSW5wdXRfMTA5IEM1QUY3M0U4M0QxRDQ0QkNCNDBCNUVEQ0MxNjc4Q0JCLCksUGVyc2lzdGVudEd1aWQ9N0I1Q0M0NTRENUQzNDhFOTlBMDNFMjQ0QzE0MjVGQjAsYkhpZGRlbj1GYWxzZSxiTm90Q29ubmVjdGFibGU9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzUmVhZE9ubHk9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzSWdub3JlZD1GYWxzZSxiQWR2YW5jZWRWaWV3PUZhbHNlLGJPcnBoYW5lZFBpbj1GYWxzZSwpDQogICBDdXN0b21Qcm9wZXJ0aWVzIFBpbiAoUGluSWQ9NUNBMUM0N0VEMEU1NDY5MTg2NDhEMkI1NjU3MDc3M0MsUGluTmFtZT0iTG9jYWwuTW9kdWxlLkNhbWVyYSBSZWxhdGl2ZSBQb3NpdGlvbiIsUGluRnJpZW5kbHlOYW1lPUlOVlRFWFQoIkxvY2FsLk1vZHVsZS5DYW1lcmEgUmVsYXRpdmUgUG9zaXRpb24iKSxQaW5UeXBlLlBpbkNhdGVnb3J5PSJUeXBlIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5PSJQYXJhbWV0ZXJQaW4iLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlPYmplY3Q9Ii9TY3JpcHQvQ29yZVVPYmplY3QuU2NyaXB0U3RydWN0Jy9TY3JpcHQvQ29yZVVPYmplY3QuVmVjdG9yM2YnIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5TWVtYmVyUmVmZXJlbmNlPSgpLFBpblR5cGUuUGluVmFsdWVUeXBlPSgpLFBpblR5cGUuQ29udGFpbmVyVHlwZT1Ob25lLFBpblR5cGUuYklzUmVmZXJlbmNlPUZhbHNlLFBpblR5cGUuYklzQ29uc3Q9RmFsc2UsUGluVHlwZS5iSXNXZWFrUG9pbnRlcj1GYWxzZSxQaW5UeXBlLmJJc1VPYmplY3RXcmFwcGVyPUZhbHNlLFBpblR5cGUuYlNlcmlhbGl6ZUFzU2luZ2xlUHJlY2lzaW9uRmxvYXQ9RmFsc2UsTGlua2VkVG89KE5pYWdhcmFOb2RlRnVuY3Rpb25DYWxsXzE0IDMyRjBBQkFDREVCNTQ5OEY5MzNCRDk4N0U3RjZCMTM5LCksUGVyc2lzdGVudEd1aWQ9MTI4NTcyQTRENTIwNENCQUJGRjE1RDRGM0I4QzdFMjcsYkhpZGRlbj1GYWxzZSxiTm90Q29ubmVjdGFibGU9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzUmVhZE9ubHk9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzSWdub3JlZD1GYWxzZSxiQWR2YW5jZWRWaWV3PUZhbHNlLGJPcnBoYW5lZFBpbj1GYWxzZSwpDQogICBDdXN0b21Qcm9wZXJ0aWVzIFBpbiAoUGluSWQ9QzE5QzEzQjE2RUJBNDM1Q0I1NURDMzNCMkVGRjU2NkIsUGluTmFtZT0iTG9jYWwuTW9kdWxlLklucHV0MDAxIixQaW5GcmllbmRseU5hbWU9SU5WVEVYVCgiTG9jYWwuTW9kdWxlLklucHV0MDAxIiksUGluVHlwZS5QaW5DYXRlZ29yeT0iVHlwZSIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeT0iUGFyYW1ldGVyUGluIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5T2JqZWN0PSIvU2NyaXB0L0NvcmVVT2JqZWN0LlNjcmlwdFN0cnVjdCcvU2NyaXB0L0NvcmVVT2JqZWN0LlZlY3RvcjNmJyIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU1lbWJlclJlZmVyZW5jZT0oKSxQaW5UeXBlLlBpblZhbHVlVHlwZT0oKSxQaW5UeXBlLkNvbnRhaW5lclR5cGU9Tm9uZSxQaW5UeXBlLmJJc1JlZmVyZW5jZT1GYWxzZSxQaW5UeXBlLmJJc0NvbnN0PUZhbHNlLFBpblR5cGUuYklzV2Vha1BvaW50ZXI9RmFsc2UsUGluVHlwZS5iSXNVT2JqZWN0V3JhcHBlcj1GYWxzZSxQaW5UeXBlLmJTZXJpYWxpemVBc1NpbmdsZVByZWNpc2lvbkZsb2F0PUZhbHNlLExpbmtlZFRvPShOaWFnYXJhTm9kZUlucHV0XzAgOTlDMkM5ODg0M0E5NDQzMkQ5RTdFMjg3MjBGNTVGQzcsKSxQZXJzaXN0ZW50R3VpZD05NzYwNzZGMzU2RTg0MzM0QTQxQzY1RDgyMDE2NjE5MCxiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD0wRTdERDc5MDhFQjM0MkFBOEZGNjA0NDdBQjU5RTE4QSxQaW5OYW1lPSJMb2NhbC5Nb2R1bGUuWCIsUGluRnJpZW5kbHlOYW1lPUlOVlRFWFQoIkxvY2FsLk1vZHVsZS5YIiksUGluVHlwZS5QaW5DYXRlZ29yeT0iVHlwZSIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeT0iUGFyYW1ldGVyUGluIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5T2JqZWN0PSIvU2NyaXB0L0NvcmVVT2JqZWN0LlNjcmlwdFN0cnVjdCcvU2NyaXB0L0NvcmVVT2JqZWN0LlZlY3RvcjNmJyIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU1lbWJlclJlZmVyZW5jZT0oKSxQaW5UeXBlLlBpblZhbHVlVHlwZT0oKSxQaW5UeXBlLkNvbnRhaW5lclR5cGU9Tm9uZSxQaW5UeXBlLmJJc1JlZmVyZW5jZT1GYWxzZSxQaW5UeXBlLmJJc0NvbnN0PUZhbHNlLFBpblR5cGUuYklzV2Vha1BvaW50ZXI9RmFsc2UsUGluVHlwZS5iSXNVT2JqZWN0V3JhcHBlcj1GYWxzZSxQaW5UeXBlLmJTZXJpYWxpemVBc1NpbmdsZVByZWNpc2lvbkZsb2F0PUZhbHNlLExpbmtlZFRvPShOaWFnYXJhTm9kZUZ1bmN0aW9uQ2FsbF8xNjQgQjdDNTc1QkM4RjI3NDVGQTlGRTJCQkE0RjQzOTdBNzksKSxQZXJzaXN0ZW50R3VpZD01NjBFMjc3NTNGODk0M0ZCOTM5NTU4MzYxRDVFMDFBMixiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD0zNDUwNkNFOTc1M0U0QzEyODA2M0EwQjk0MzY5RTkyNixQaW5OYW1lPSJMb2NhbC5Nb2R1bGUuQ2FtZXJhIFJlbGF0aXZlIFBvc2l0aW9uIixQaW5GcmllbmRseU5hbWU9SU5WVEVYVCgiTG9jYWwuTW9kdWxlLkNhbWVyYSBSZWxhdGl2ZSBQb3NpdGlvbiIpLFBpblR5cGUuUGluQ2F0ZWdvcnk9IlR5cGUiLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnk9IlBhcmFtZXRlclBpbiIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU9iamVjdD0iL1NjcmlwdC9Db3JlVU9iamVjdC5TY3JpcHRTdHJ1Y3QnL1NjcmlwdC9Db3JlVU9iamVjdC5WZWN0b3IzZiciLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlNZW1iZXJSZWZlcmVuY2U9KCksUGluVHlwZS5QaW5WYWx1ZVR5cGU9KCksUGluVHlwZS5Db250YWluZXJUeXBlPU5vbmUsUGluVHlwZS5iSXNSZWZlcmVuY2U9RmFsc2UsUGluVHlwZS5iSXNDb25zdD1GYWxzZSxQaW5UeXBlLmJJc1dlYWtQb2ludGVyPUZhbHNlLFBpblR5cGUuYklzVU9iamVjdFdyYXBwZXI9RmFsc2UsUGluVHlwZS5iU2VyaWFsaXplQXNTaW5nbGVQcmVjaXNpb25GbG9hdD1GYWxzZSxMaW5rZWRUbz0oTmlhZ2FyYU5vZGVGdW5jdGlvbkNhbGxfMTQgMzJGMEFCQUNERUI1NDk4RjkzM0JEOTg3RTdGNkIxMzksKSxQZXJzaXN0ZW50R3VpZD0zREJFOUNDNDA0MDA0Qzg2OTZDNTUyQjJCQkI2MDc4NixiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD0zRjJGQjY0NkEyMDc0QjlEQkVBRkI5NEM5Qjc0MjYwRCxQaW5OYW1lPSJBZGQiLFBpblR5cGUuUGluQ2F0ZWdvcnk9Ik1pc2MiLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnk9IkR5bmFtaWNBZGRQaW4iLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlPYmplY3Q9Tm9uZSxQaW5UeXBlLlBpblN1YkNhdGVnb3J5TWVtYmVyUmVmZXJlbmNlPSgpLFBpblR5cGUuUGluVmFsdWVUeXBlPSgpLFBpblR5cGUuQ29udGFpbmVyVHlwZT1Ob25lLFBpblR5cGUuYklzUmVmZXJlbmNlPUZhbHNlLFBpblR5cGUuYklzQ29uc3Q9RmFsc2UsUGluVHlwZS5iSXNXZWFrUG9pbnRlcj1GYWxzZSxQaW5UeXBlLmJJc1VPYmplY3RXcmFwcGVyPUZhbHNlLFBpblR5cGUuYlNlcmlhbGl6ZUFzU2luZ2xlUHJlY2lzaW9uRmxvYXQ9RmFsc2UsUGVyc2lzdGVudEd1aWQ9MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAsYkhpZGRlbj1GYWxzZSxiTm90Q29ubmVjdGFibGU9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzUmVhZE9ubHk9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzSWdub3JlZD1GYWxzZSxiQWR2YW5jZWRWaWV3PUZhbHNlLGJPcnBoYW5lZFBpbj1GYWxzZSwpDQpFbmQgT2JqZWN0DQo="
End Object
`
expect(await blueprintPage.blueprintLocator.evaluate(blueprint => blueprint.entity.serialize()))
.toEqual(serialized(source))
// Var: Local.Module.Input, Local.Module.Camera Relative Position, Local.Module.X, Particles.RibbonLinkOrder, Particles.SubImageIndex
// Add: Particles.RibbonLinkOrder, Particles.SubImageIndex
// Has: Local.Module.Input, Local.Module.Camera Relative Position, Local.Module.X
source = String.raw`
Begin Object Class=/Script/NiagaraEditor.NiagaraClipboardContent Name="NiagaraClipboardContent_8" ExportPath="/Script/NiagaraEditor.NiagaraClipboardContent'/Engine/Transient.NiagaraClipboardContent_8'"
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_4" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_4'"
End Object
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_3" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_3'"
End Object
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_1" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_1'"
End Object
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_0" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_0'"
End Object
Begin Object Name="NiagaraScriptVariable_4" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_4'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(VarData=(0,0,0,0,0,0,0,0,0,0,0,0),Name="Local.Module.X",TypeDefHandle=(RegisteredTypeIndex=88))
Metadata=(VariableGuid=9661E7AE20234E159801C8E970F0D03D)
DefaultValueVariant=(Bytes=(0,0,0,0,0,0,0,0,0,0,0,0),CurrentMode=Bytes)
ChangeId=751E3204296A40409ADC4335E4C33CE6
End Object
Begin Object Name="NiagaraScriptVariable_3" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_3'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(VarData=(0,0,0,0,0,0,0,0,0,0,0,0),Name="Local.Module.Camera Relative Position",TypeDefHandle=(RegisteredTypeIndex=88))
Metadata=(VariableGuid=0AD251B024C14B9AB06AAF654E8A3FF1)
DefaultValueVariant=(Bytes=(0,0,0,0,0,0,0,0,0,0,0,0),CurrentMode=Bytes)
ChangeId=4DD48BD81EA444099BB03E1AAE4F201E
End Object
Begin Object Name="NiagaraScriptVariable_1" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_1'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(VarData=(0,0,0,0,0,0,0,0,0,0,0,0),Name="Local.Module.Input001",TypeDefHandle=(RegisteredTypeIndex=88))
Metadata=(VariableGuid=775A1228426C413AB95CB9049C1E993A)
DefaultValueVariant=(Bytes=(0,0,0,0,0,0,0,0,0,0,0,0),CurrentMode=Bytes)
ChangeId=C38E0F30344D4A2689CC7972DFBAA6FA
End Object
Begin Object Name="NiagaraScriptVariable_0" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_0'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(Name="Local.Module.Input",TypeDefHandle=(RegisteredTypeIndex=59))
Metadata=(VariableGuid=0DAA63BD5851469990B3FE12816255A5)
ChangeId=2312FB889A9640CFA45B3A9E4AF7FC01
End Object
ScriptVariables(0)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_0'",OriginalChangeId=2312FB889A9640CFA45B3A9E4AF7FC01)
ScriptVariables(1)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_1'",OriginalChangeId=C38E0F30344D4A2689CC7972DFBAA6FA)
ScriptVariables(2)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_3'",OriginalChangeId=4DD48BD81EA444099BB03E1AAE4F201E)
ScriptVariables(3)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_4'",OriginalChangeId=751E3204296A40409ADC4335E4C33CE6)
ExportedNodes="QmVnaW4gT2JqZWN0IENsYXNzPS9TY3JpcHQvTmlhZ2FyYUVkaXRvci5OaWFnYXJhTm9kZVBhcmFtZXRlck1hcFNldCBOYW1lPSJOaWFnYXJhTm9kZVBhcmFtZXRlck1hcFNldF8xIiBFeHBvcnRQYXRoPSIvU2NyaXB0L05pYWdhcmFFZGl0b3IuTmlhZ2FyYU5vZGVQYXJhbWV0ZXJNYXBTZXQnL0VuZ2luZS9UcmFuc2llbnQuTmV3TmlhZ2FyYVNjcmlwdDI6TmlhZ2FyYVNjcmlwdFNvdXJjZV8wLk5pYWdhcmFHcmFwaF8wLk5pYWdhcmFOb2RlUGFyYW1ldGVyTWFwU2V0XzEnIgogICBDaGFuZ2VJZD05MzVGMjRENzMyMUE0NTREQUNENUY4NzMzNTE3NTVEMg0KICAgTm9kZVBvc1g9LTIyNA0KICAgTm9kZVBvc1k9MTQ0DQogICBOb2RlR3VpZD0yNkEwMEIzNUI4Q0E0RDcwQkVEMTQyODJGRTZENzNFMg0KICAgQ3VzdG9tUHJvcGVydGllcyBQaW4gKFBpbklkPUVDRDQxQjgwQTc5NTQzNUJCQjQwMTA5MkZGOTgwOTQ5LFBpbk5hbWU9IlNvdXJjZSIsUGluVHlwZS5QaW5DYXRlZ29yeT0iVHlwZSIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeT0iIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5T2JqZWN0PSIvU2NyaXB0L0NvcmVVT2JqZWN0LlNjcmlwdFN0cnVjdCcvU2NyaXB0L05pYWdhcmEuTmlhZ2FyYVBhcmFtZXRlck1hcCciLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlNZW1iZXJSZWZlcmVuY2U9KCksUGluVHlwZS5QaW5WYWx1ZVR5cGU9KCksUGluVHlwZS5Db250YWluZXJUeXBlPU5vbmUsUGluVHlwZS5iSXNSZWZlcmVuY2U9RmFsc2UsUGluVHlwZS5iSXNDb25zdD1GYWxzZSxQaW5UeXBlLmJJc1dlYWtQb2ludGVyPUZhbHNlLFBpblR5cGUuYklzVU9iamVjdFdyYXBwZXI9RmFsc2UsUGluVHlwZS5iU2VyaWFsaXplQXNTaW5nbGVQcmVjaXNpb25GbG9hdD1GYWxzZSxQZXJzaXN0ZW50R3VpZD0wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCxiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD02MEMxOEE0RjQxMkY0RDBCQkE1OEQ4NTlBNTgxRTFCOCxQaW5OYW1lPSJEZXN0IixEaXJlY3Rpb249IkVHUERfT3V0cHV0IixQaW5UeXBlLlBpbkNhdGVnb3J5PSJUeXBlIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5PSIiLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlPYmplY3Q9Ii9TY3JpcHQvQ29yZVVPYmplY3QuU2NyaXB0U3RydWN0Jy9TY3JpcHQvTmlhZ2FyYS5OaWFnYXJhUGFyYW1ldGVyTWFwJyIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU1lbWJlclJlZmVyZW5jZT0oKSxQaW5UeXBlLlBpblZhbHVlVHlwZT0oKSxQaW5UeXBlLkNvbnRhaW5lclR5cGU9Tm9uZSxQaW5UeXBlLmJJc1JlZmVyZW5jZT1GYWxzZSxQaW5UeXBlLmJJc0NvbnN0PUZhbHNlLFBpblR5cGUuYklzV2Vha1BvaW50ZXI9RmFsc2UsUGluVHlwZS5iSXNVT2JqZWN0V3JhcHBlcj1GYWxzZSxQaW5UeXBlLmJTZXJpYWxpemVBc1NpbmdsZVByZWNpc2lvbkZsb2F0PUZhbHNlLFBlcnNpc3RlbnRHdWlkPTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLGJIaWRkZW49RmFsc2UsYk5vdENvbm5lY3RhYmxlPUZhbHNlLGJEZWZhdWx0VmFsdWVJc1JlYWRPbmx5PUZhbHNlLGJEZWZhdWx0VmFsdWVJc0lnbm9yZWQ9RmFsc2UsYkFkdmFuY2VkVmlldz1GYWxzZSxiT3JwaGFuZWRQaW49RmFsc2UsKQ0KICAgQ3VzdG9tUHJvcGVydGllcyBQaW4gKFBpbklkPTI1NjE1RTJCMDQxNzRDQjVBRjVDMURGREFFREY3RUFBLFBpbk5hbWU9IkxvY2FsLk1vZHVsZS5JbnB1dCIsUGluRnJpZW5kbHlOYW1lPUlOVlRFWFQoIkxvY2FsLk1vZHVsZS5JbnB1dCIpLFBpblR5cGUuUGluQ2F0ZWdvcnk9IkNsYXNzIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5PSJQYXJhbWV0ZXJQaW4iLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlPYmplY3Q9Ii9TY3JpcHQvQ29yZVVPYmplY3QuQ2xhc3MnL1NjcmlwdC9OaWFnYXJhLk5pYWdhcmFEYXRhSW50ZXJmYWNlUmVuZGVyVGFyZ2V0MkQnIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5TWVtYmVyUmVmZXJlbmNlPSgpLFBpblR5cGUuUGluVmFsdWVUeXBlPSgpLFBpblR5cGUuQ29udGFpbmVyVHlwZT1Ob25lLFBpblR5cGUuYklzUmVmZXJlbmNlPUZhbHNlLFBpblR5cGUuYklzQ29uc3Q9RmFsc2UsUGluVHlwZS5iSXNXZWFrUG9pbnRlcj1GYWxzZSxQaW5UeXBlLmJJc1VPYmplY3RXcmFwcGVyPUZhbHNlLFBpblR5cGUuYlNlcmlhbGl6ZUFzU2luZ2xlUHJlY2lzaW9uRmxvYXQ9RmFsc2UsTGlua2VkVG89KE5pYWdhcmFOb2RlSW5wdXRfMTA5IEM1QUY3M0U4M0QxRDQ0QkNCNDBCNUVEQ0MxNjc4Q0JCLCksUGVyc2lzdGVudEd1aWQ9N0I1Q0M0NTRENUQzNDhFOTlBMDNFMjQ0QzE0MjVGQjAsYkhpZGRlbj1GYWxzZSxiTm90Q29ubmVjdGFibGU9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzUmVhZE9ubHk9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzSWdub3JlZD1GYWxzZSxiQWR2YW5jZWRWaWV3PUZhbHNlLGJPcnBoYW5lZFBpbj1GYWxzZSwpDQogICBDdXN0b21Qcm9wZXJ0aWVzIFBpbiAoUGluSWQ9NUNBMUM0N0VEMEU1NDY5MTg2NDhEMkI1NjU3MDc3M0MsUGluTmFtZT0iTG9jYWwuTW9kdWxlLkNhbWVyYSBSZWxhdGl2ZSBQb3NpdGlvbiIsUGluRnJpZW5kbHlOYW1lPUlOVlRFWFQoIkxvY2FsLk1vZHVsZS5DYW1lcmEgUmVsYXRpdmUgUG9zaXRpb24iKSxQaW5UeXBlLlBpbkNhdGVnb3J5PSJUeXBlIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5PSJQYXJhbWV0ZXJQaW4iLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlPYmplY3Q9Ii9TY3JpcHQvQ29yZVVPYmplY3QuU2NyaXB0U3RydWN0Jy9TY3JpcHQvQ29yZVVPYmplY3QuVmVjdG9yM2YnIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5TWVtYmVyUmVmZXJlbmNlPSgpLFBpblR5cGUuUGluVmFsdWVUeXBlPSgpLFBpblR5cGUuQ29udGFpbmVyVHlwZT1Ob25lLFBpblR5cGUuYklzUmVmZXJlbmNlPUZhbHNlLFBpblR5cGUuYklzQ29uc3Q9RmFsc2UsUGluVHlwZS5iSXNXZWFrUG9pbnRlcj1GYWxzZSxQaW5UeXBlLmJJc1VPYmplY3RXcmFwcGVyPUZhbHNlLFBpblR5cGUuYlNlcmlhbGl6ZUFzU2luZ2xlUHJlY2lzaW9uRmxvYXQ9RmFsc2UsTGlua2VkVG89KE5pYWdhcmFOb2RlRnVuY3Rpb25DYWxsXzE0IDMyRjBBQkFDREVCNTQ5OEY5MzNCRDk4N0U3RjZCMTM5LCksUGVyc2lzdGVudEd1aWQ9MTI4NTcyQTRENTIwNENCQUJGRjE1RDRGM0I4QzdFMjcsYkhpZGRlbj1GYWxzZSxiTm90Q29ubmVjdGFibGU9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzUmVhZE9ubHk9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzSWdub3JlZD1GYWxzZSxiQWR2YW5jZWRWaWV3PUZhbHNlLGJPcnBoYW5lZFBpbj1GYWxzZSwpDQogICBDdXN0b21Qcm9wZXJ0aWVzIFBpbiAoUGluSWQ9QzE5QzEzQjE2RUJBNDM1Q0I1NURDMzNCMkVGRjU2NkIsUGluTmFtZT0iTG9jYWwuTW9kdWxlLklucHV0MDAxIixQaW5GcmllbmRseU5hbWU9SU5WVEVYVCgiTG9jYWwuTW9kdWxlLklucHV0MDAxIiksUGluVHlwZS5QaW5DYXRlZ29yeT0iVHlwZSIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeT0iUGFyYW1ldGVyUGluIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5T2JqZWN0PSIvU2NyaXB0L0NvcmVVT2JqZWN0LlNjcmlwdFN0cnVjdCcvU2NyaXB0L0NvcmVVT2JqZWN0LlZlY3RvcjNmJyIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU1lbWJlclJlZmVyZW5jZT0oKSxQaW5UeXBlLlBpblZhbHVlVHlwZT0oKSxQaW5UeXBlLkNvbnRhaW5lclR5cGU9Tm9uZSxQaW5UeXBlLmJJc1JlZmVyZW5jZT1GYWxzZSxQaW5UeXBlLmJJc0NvbnN0PUZhbHNlLFBpblR5cGUuYklzV2Vha1BvaW50ZXI9RmFsc2UsUGluVHlwZS5iSXNVT2JqZWN0V3JhcHBlcj1GYWxzZSxQaW5UeXBlLmJTZXJpYWxpemVBc1NpbmdsZVByZWNpc2lvbkZsb2F0PUZhbHNlLExpbmtlZFRvPShOaWFnYXJhTm9kZUlucHV0XzAgOTlDMkM5ODg0M0E5NDQzMkQ5RTdFMjg3MjBGNTVGQzcsKSxQZXJzaXN0ZW50R3VpZD05NzYwNzZGMzU2RTg0MzM0QTQxQzY1RDgyMDE2NjE5MCxiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD0wRTdERDc5MDhFQjM0MkFBOEZGNjA0NDdBQjU5RTE4QSxQaW5OYW1lPSJMb2NhbC5Nb2R1bGUuWCIsUGluRnJpZW5kbHlOYW1lPUlOVlRFWFQoIkxvY2FsLk1vZHVsZS5YIiksUGluVHlwZS5QaW5DYXRlZ29yeT0iVHlwZSIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeT0iUGFyYW1ldGVyUGluIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5T2JqZWN0PSIvU2NyaXB0L0NvcmVVT2JqZWN0LlNjcmlwdFN0cnVjdCcvU2NyaXB0L0NvcmVVT2JqZWN0LlZlY3RvcjNmJyIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU1lbWJlclJlZmVyZW5jZT0oKSxQaW5UeXBlLlBpblZhbHVlVHlwZT0oKSxQaW5UeXBlLkNvbnRhaW5lclR5cGU9Tm9uZSxQaW5UeXBlLmJJc1JlZmVyZW5jZT1GYWxzZSxQaW5UeXBlLmJJc0NvbnN0PUZhbHNlLFBpblR5cGUuYklzV2Vha1BvaW50ZXI9RmFsc2UsUGluVHlwZS5iSXNVT2JqZWN0V3JhcHBlcj1GYWxzZSxQaW5UeXBlLmJTZXJpYWxpemVBc1NpbmdsZVByZWNpc2lvbkZsb2F0PUZhbHNlLExpbmtlZFRvPShOaWFnYXJhTm9kZUZ1bmN0aW9uQ2FsbF8xNjQgQjdDNTc1QkM4RjI3NDVGQTlGRTJCQkE0RjQzOTdBNzksKSxQZXJzaXN0ZW50R3VpZD01NjBFMjc3NTNGODk0M0ZCOTM5NTU4MzYxRDVFMDFBMixiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD0zNDUwNkNFOTc1M0U0QzEyODA2M0EwQjk0MzY5RTkyNixQaW5OYW1lPSJMb2NhbC5Nb2R1bGUuQ2FtZXJhIFJlbGF0aXZlIFBvc2l0aW9uIixQaW5GcmllbmRseU5hbWU9SU5WVEVYVCgiTG9jYWwuTW9kdWxlLkNhbWVyYSBSZWxhdGl2ZSBQb3NpdGlvbiIpLFBpblR5cGUuUGluQ2F0ZWdvcnk9IlR5cGUiLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnk9IlBhcmFtZXRlclBpbiIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU9iamVjdD0iL1NjcmlwdC9Db3JlVU9iamVjdC5TY3JpcHRTdHJ1Y3QnL1NjcmlwdC9Db3JlVU9iamVjdC5WZWN0b3IzZiciLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlNZW1iZXJSZWZlcmVuY2U9KCksUGluVHlwZS5QaW5WYWx1ZVR5cGU9KCksUGluVHlwZS5Db250YWluZXJUeXBlPU5vbmUsUGluVHlwZS5iSXNSZWZlcmVuY2U9RmFsc2UsUGluVHlwZS5iSXNDb25zdD1GYWxzZSxQaW5UeXBlLmJJc1dlYWtQb2ludGVyPUZhbHNlLFBpblR5cGUuYklzVU9iamVjdFdyYXBwZXI9RmFsc2UsUGluVHlwZS5iU2VyaWFsaXplQXNTaW5nbGVQcmVjaXNpb25GbG9hdD1GYWxzZSxMaW5rZWRUbz0oTmlhZ2FyYU5vZGVGdW5jdGlvbkNhbGxfMTQgMzJGMEFCQUNERUI1NDk4RjkzM0JEOTg3RTdGNkIxMzksKSxQZXJzaXN0ZW50R3VpZD0zREJFOUNDNDA0MDA0Qzg2OTZDNTUyQjJCQkI2MDc4NixiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD0zRjJGQjY0NkEyMDc0QjlEQkVBRkI5NEM5Qjc0MjYwRCxQaW5OYW1lPSJBZGQiLFBpblR5cGUuUGluQ2F0ZWdvcnk9Ik1pc2MiLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnk9IkR5bmFtaWNBZGRQaW4iLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlPYmplY3Q9Tm9uZSxQaW5UeXBlLlBpblN1YkNhdGVnb3J5TWVtYmVyUmVmZXJlbmNlPSgpLFBpblR5cGUuUGluVmFsdWVUeXBlPSgpLFBpblR5cGUuQ29udGFpbmVyVHlwZT1Ob25lLFBpblR5cGUuYklzUmVmZXJlbmNlPUZhbHNlLFBpblR5cGUuYklzQ29uc3Q9RmFsc2UsUGluVHlwZS5iSXNXZWFrUG9pbnRlcj1GYWxzZSxQaW5UeXBlLmJJc1VPYmplY3RXcmFwcGVyPUZhbHNlLFBpblR5cGUuYlNlcmlhbGl6ZUFzU2luZ2xlUHJlY2lzaW9uRmxvYXQ9RmFsc2UsUGVyc2lzdGVudEd1aWQ9MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAsYkhpZGRlbj1GYWxzZSxiTm90Q29ubmVjdGFibGU9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzUmVhZE9ubHk9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzSWdub3JlZD1GYWxzZSxiQWR2YW5jZWRWaWV3PUZhbHNlLGJPcnBoYW5lZFBpbj1GYWxzZSwpDQpFbmQgT2JqZWN0DQo="
End Object
`
await blueprintPage.paste(source)
source = String.raw`
Begin Object Class=/Script/NiagaraEditor.NiagaraClipboardContent Name="NiagaraClipboardContent_8" ExportPath="/Script/NiagaraEditor.NiagaraClipboardContent'/Engine/Transient.NiagaraClipboardContent_8'"
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_4" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_4'"
End Object
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_3" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_3'"
End Object
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_2" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_2'"
End Object
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_1" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_1'"
End Object
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_0" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_0'"
End Object
Begin Object Name="NiagaraScriptVariable_4" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_4'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(VarData=(0,0,0,0,0,0,0,0,0,0,0,0),Name="Local.Module.X",TypeDefHandle=(RegisteredTypeIndex=88))
Metadata=(VariableGuid=9661E7AE20234E159801C8E970F0D03D)
DefaultValueVariant=(Bytes=(0,0,0,0,0,0,0,0,0,0,0,0),CurrentMode=Bytes)
ChangeId=751E3204296A40409ADC4335E4C33CE6
End Object
Begin Object Name="NiagaraScriptVariable_3" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_3'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(VarData=(0,0,0,0,0,0,0,0,0,0,0,0),Name="Local.Module.Camera Relative Position",TypeDefHandle=(RegisteredTypeIndex=88))
Metadata=(VariableGuid=0AD251B024C14B9AB06AAF654E8A3FF1)
DefaultValueVariant=(Bytes=(0,0,0,0,0,0,0,0,0,0,0,0),CurrentMode=Bytes)
ChangeId=4DD48BD81EA444099BB03E1AAE4F201E
End Object
Begin Object Name="NiagaraScriptVariable_2" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_2'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(VarData=(0,0,0,0,0,0,0,0,0,0,0,0),Name="Local.Module.NewOutput",TypeDefHandle=(RegisteredTypeIndex=91))
Metadata=(VariableGuid=274F4E069AD943DBAAB943F92BE558EA)
DefaultValueVariant=(Bytes=(0,0,0,0,0,0,0,0,0,0,0,0),CurrentMode=Bytes)
ChangeId=DE05B442E3734F5D9AEA76603B33E271
End Object
Begin Object Name="NiagaraScriptVariable_1" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_1'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(VarData=(0,0,0,0,0,0,0,0,0,0,0,0),Name="Local.Module.Input001",TypeDefHandle=(RegisteredTypeIndex=88))
Metadata=(VariableGuid=775A1228426C413AB95CB9049C1E993A)
DefaultValueVariant=(Bytes=(0,0,0,0,0,0,0,0,0,0,0,0),CurrentMode=Bytes)
ChangeId=C38E0F30344D4A2689CC7972DFBAA6FA
End Object
Begin Object Name="NiagaraScriptVariable_0" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_8:NiagaraScriptVariable_0'"
DefaultMode=FailIfPreviouslyNotSet
Variable=(Name="Local.Module.Input",TypeDefHandle=(RegisteredTypeIndex=59))
Metadata=(VariableGuid=0DAA63BD5851469990B3FE12816255A5)
ChangeId=2312FB889A9640CFA45B3A9E4AF7FC01
End Object
ScriptVariables(0)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_0'",OriginalChangeId=2312FB889A9640CFA45B3A9E4AF7FC01)
ScriptVariables(1)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_1'",OriginalChangeId=C38E0F30344D4A2689CC7972DFBAA6FA)
ScriptVariables(2)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_2'",OriginalChangeId=DE05B442E3734F5D9AEA76603B33E271)
ScriptVariables(3)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_3'",OriginalChangeId=4DD48BD81EA444099BB03E1AAE4F201E)
ScriptVariables(4)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_4'",OriginalChangeId=751E3204296A40409ADC4335E4C33CE6)
ExportedNodes="QmVnaW4gT2JqZWN0IENsYXNzPS9TY3JpcHQvTmlhZ2FyYUVkaXRvci5OaWFnYXJhTm9kZVBhcmFtZXRlck1hcFNldCBOYW1lPSJOaWFnYXJhTm9kZVBhcmFtZXRlck1hcFNldF8xIiBFeHBvcnRQYXRoPSIvU2NyaXB0L05pYWdhcmFFZGl0b3IuTmlhZ2FyYU5vZGVQYXJhbWV0ZXJNYXBTZXQnL0VuZ2luZS9UcmFuc2llbnQuTmV3TmlhZ2FyYVNjcmlwdDI6TmlhZ2FyYVNjcmlwdFNvdXJjZV8wLk5pYWdhcmFHcmFwaF8wLk5pYWdhcmFOb2RlUGFyYW1ldGVyTWFwU2V0XzEnIgogICBDaGFuZ2VJZD05MzVGMjRENzMyMUE0NTREQUNENUY4NzMzNTE3NTVEMg0KICAgTm9kZVBvc1g9LTIyNA0KICAgTm9kZVBvc1k9MTQ0DQogICBOb2RlR3VpZD0yNkEwMEIzNUI4Q0E0RDcwQkVEMTQyODJGRTZENzNFMg0KICAgQ3VzdG9tUHJvcGVydGllcyBQaW4gKFBpbklkPUVDRDQxQjgwQTc5NTQzNUJCQjQwMTA5MkZGOTgwOTQ5LFBpbk5hbWU9IlNvdXJjZSIsUGluVHlwZS5QaW5DYXRlZ29yeT0iVHlwZSIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeT0iIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5T2JqZWN0PSIvU2NyaXB0L0NvcmVVT2JqZWN0LlNjcmlwdFN0cnVjdCcvU2NyaXB0L05pYWdhcmEuTmlhZ2FyYVBhcmFtZXRlck1hcCciLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlNZW1iZXJSZWZlcmVuY2U9KCksUGluVHlwZS5QaW5WYWx1ZVR5cGU9KCksUGluVHlwZS5Db250YWluZXJUeXBlPU5vbmUsUGluVHlwZS5iSXNSZWZlcmVuY2U9RmFsc2UsUGluVHlwZS5iSXNDb25zdD1GYWxzZSxQaW5UeXBlLmJJc1dlYWtQb2ludGVyPUZhbHNlLFBpblR5cGUuYklzVU9iamVjdFdyYXBwZXI9RmFsc2UsUGluVHlwZS5iU2VyaWFsaXplQXNTaW5nbGVQcmVjaXNpb25GbG9hdD1GYWxzZSxQZXJzaXN0ZW50R3VpZD0wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCxiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD02MEMxOEE0RjQxMkY0RDBCQkE1OEQ4NTlBNTgxRTFCOCxQaW5OYW1lPSJEZXN0IixEaXJlY3Rpb249IkVHUERfT3V0cHV0IixQaW5UeXBlLlBpbkNhdGVnb3J5PSJUeXBlIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5PSIiLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlPYmplY3Q9Ii9TY3JpcHQvQ29yZVVPYmplY3QuU2NyaXB0U3RydWN0Jy9TY3JpcHQvTmlhZ2FyYS5OaWFnYXJhUGFyYW1ldGVyTWFwJyIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU1lbWJlclJlZmVyZW5jZT0oKSxQaW5UeXBlLlBpblZhbHVlVHlwZT0oKSxQaW5UeXBlLkNvbnRhaW5lclR5cGU9Tm9uZSxQaW5UeXBlLmJJc1JlZmVyZW5jZT1GYWxzZSxQaW5UeXBlLmJJc0NvbnN0PUZhbHNlLFBpblR5cGUuYklzV2Vha1BvaW50ZXI9RmFsc2UsUGluVHlwZS5iSXNVT2JqZWN0V3JhcHBlcj1GYWxzZSxQaW5UeXBlLmJTZXJpYWxpemVBc1NpbmdsZVByZWNpc2lvbkZsb2F0PUZhbHNlLFBlcnNpc3RlbnRHdWlkPTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLGJIaWRkZW49RmFsc2UsYk5vdENvbm5lY3RhYmxlPUZhbHNlLGJEZWZhdWx0VmFsdWVJc1JlYWRPbmx5PUZhbHNlLGJEZWZhdWx0VmFsdWVJc0lnbm9yZWQ9RmFsc2UsYkFkdmFuY2VkVmlldz1GYWxzZSxiT3JwaGFuZWRQaW49RmFsc2UsKQ0KICAgQ3VzdG9tUHJvcGVydGllcyBQaW4gKFBpbklkPTI1NjE1RTJCMDQxNzRDQjVBRjVDMURGREFFREY3RUFBLFBpbk5hbWU9IkxvY2FsLk1vZHVsZS5JbnB1dCIsUGluRnJpZW5kbHlOYW1lPUlOVlRFWFQoIkxvY2FsLk1vZHVsZS5JbnB1dCIpLFBpblR5cGUuUGluQ2F0ZWdvcnk9IkNsYXNzIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5PSJQYXJhbWV0ZXJQaW4iLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlPYmplY3Q9Ii9TY3JpcHQvQ29yZVVPYmplY3QuQ2xhc3MnL1NjcmlwdC9OaWFnYXJhLk5pYWdhcmFEYXRhSW50ZXJmYWNlUmVuZGVyVGFyZ2V0MkQnIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5TWVtYmVyUmVmZXJlbmNlPSgpLFBpblR5cGUuUGluVmFsdWVUeXBlPSgpLFBpblR5cGUuQ29udGFpbmVyVHlwZT1Ob25lLFBpblR5cGUuYklzUmVmZXJlbmNlPUZhbHNlLFBpblR5cGUuYklzQ29uc3Q9RmFsc2UsUGluVHlwZS5iSXNXZWFrUG9pbnRlcj1GYWxzZSxQaW5UeXBlLmJJc1VPYmplY3RXcmFwcGVyPUZhbHNlLFBpblR5cGUuYlNlcmlhbGl6ZUFzU2luZ2xlUHJlY2lzaW9uRmxvYXQ9RmFsc2UsTGlua2VkVG89KE5pYWdhcmFOb2RlSW5wdXRfMTA5IEM1QUY3M0U4M0QxRDQ0QkNCNDBCNUVEQ0MxNjc4Q0JCLCksUGVyc2lzdGVudEd1aWQ9N0I1Q0M0NTRENUQzNDhFOTlBMDNFMjQ0QzE0MjVGQjAsYkhpZGRlbj1GYWxzZSxiTm90Q29ubmVjdGFibGU9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzUmVhZE9ubHk9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzSWdub3JlZD1GYWxzZSxiQWR2YW5jZWRWaWV3PUZhbHNlLGJPcnBoYW5lZFBpbj1GYWxzZSwpDQogICBDdXN0b21Qcm9wZXJ0aWVzIFBpbiAoUGluSWQ9NUNBMUM0N0VEMEU1NDY5MTg2NDhEMkI1NjU3MDc3M0MsUGluTmFtZT0iTG9jYWwuTW9kdWxlLkNhbWVyYSBSZWxhdGl2ZSBQb3NpdGlvbiIsUGluRnJpZW5kbHlOYW1lPUlOVlRFWFQoIkxvY2FsLk1vZHVsZS5DYW1lcmEgUmVsYXRpdmUgUG9zaXRpb24iKSxQaW5UeXBlLlBpbkNhdGVnb3J5PSJUeXBlIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5PSJQYXJhbWV0ZXJQaW4iLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlPYmplY3Q9Ii9TY3JpcHQvQ29yZVVPYmplY3QuU2NyaXB0U3RydWN0Jy9TY3JpcHQvQ29yZVVPYmplY3QuVmVjdG9yM2YnIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5TWVtYmVyUmVmZXJlbmNlPSgpLFBpblR5cGUuUGluVmFsdWVUeXBlPSgpLFBpblR5cGUuQ29udGFpbmVyVHlwZT1Ob25lLFBpblR5cGUuYklzUmVmZXJlbmNlPUZhbHNlLFBpblR5cGUuYklzQ29uc3Q9RmFsc2UsUGluVHlwZS5iSXNXZWFrUG9pbnRlcj1GYWxzZSxQaW5UeXBlLmJJc1VPYmplY3RXcmFwcGVyPUZhbHNlLFBpblR5cGUuYlNlcmlhbGl6ZUFzU2luZ2xlUHJlY2lzaW9uRmxvYXQ9RmFsc2UsTGlua2VkVG89KE5pYWdhcmFOb2RlRnVuY3Rpb25DYWxsXzE0IDMyRjBBQkFDREVCNTQ5OEY5MzNCRDk4N0U3RjZCMTM5LCksUGVyc2lzdGVudEd1aWQ9MTI4NTcyQTRENTIwNENCQUJGRjE1RDRGM0I4QzdFMjcsYkhpZGRlbj1GYWxzZSxiTm90Q29ubmVjdGFibGU9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzUmVhZE9ubHk9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzSWdub3JlZD1GYWxzZSxiQWR2YW5jZWRWaWV3PUZhbHNlLGJPcnBoYW5lZFBpbj1GYWxzZSwpDQogICBDdXN0b21Qcm9wZXJ0aWVzIFBpbiAoUGluSWQ9QzE5QzEzQjE2RUJBNDM1Q0I1NURDMzNCMkVGRjU2NkIsUGluTmFtZT0iTG9jYWwuTW9kdWxlLklucHV0MDAxIixQaW5GcmllbmRseU5hbWU9SU5WVEVYVCgiTG9jYWwuTW9kdWxlLklucHV0MDAxIiksUGluVHlwZS5QaW5DYXRlZ29yeT0iVHlwZSIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeT0iUGFyYW1ldGVyUGluIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5T2JqZWN0PSIvU2NyaXB0L0NvcmVVT2JqZWN0LlNjcmlwdFN0cnVjdCcvU2NyaXB0L0NvcmVVT2JqZWN0LlZlY3RvcjNmJyIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU1lbWJlclJlZmVyZW5jZT0oKSxQaW5UeXBlLlBpblZhbHVlVHlwZT0oKSxQaW5UeXBlLkNvbnRhaW5lclR5cGU9Tm9uZSxQaW5UeXBlLmJJc1JlZmVyZW5jZT1GYWxzZSxQaW5UeXBlLmJJc0NvbnN0PUZhbHNlLFBpblR5cGUuYklzV2Vha1BvaW50ZXI9RmFsc2UsUGluVHlwZS5iSXNVT2JqZWN0V3JhcHBlcj1GYWxzZSxQaW5UeXBlLmJTZXJpYWxpemVBc1NpbmdsZVByZWNpc2lvbkZsb2F0PUZhbHNlLExpbmtlZFRvPShOaWFnYXJhTm9kZUlucHV0XzAgOTlDMkM5ODg0M0E5NDQzMkQ5RTdFMjg3MjBGNTVGQzcsKSxQZXJzaXN0ZW50R3VpZD05NzYwNzZGMzU2RTg0MzM0QTQxQzY1RDgyMDE2NjE5MCxiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD0wRTdERDc5MDhFQjM0MkFBOEZGNjA0NDdBQjU5RTE4QSxQaW5OYW1lPSJMb2NhbC5Nb2R1bGUuWCIsUGluRnJpZW5kbHlOYW1lPUlOVlRFWFQoIkxvY2FsLk1vZHVsZS5YIiksUGluVHlwZS5QaW5DYXRlZ29yeT0iVHlwZSIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeT0iUGFyYW1ldGVyUGluIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5T2JqZWN0PSIvU2NyaXB0L0NvcmVVT2JqZWN0LlNjcmlwdFN0cnVjdCcvU2NyaXB0L0NvcmVVT2JqZWN0LlZlY3RvcjNmJyIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU1lbWJlclJlZmVyZW5jZT0oKSxQaW5UeXBlLlBpblZhbHVlVHlwZT0oKSxQaW5UeXBlLkNvbnRhaW5lclR5cGU9Tm9uZSxQaW5UeXBlLmJJc1JlZmVyZW5jZT1GYWxzZSxQaW5UeXBlLmJJc0NvbnN0PUZhbHNlLFBpblR5cGUuYklzV2Vha1BvaW50ZXI9RmFsc2UsUGluVHlwZS5iSXNVT2JqZWN0V3JhcHBlcj1GYWxzZSxQaW5UeXBlLmJTZXJpYWxpemVBc1NpbmdsZVByZWNpc2lvbkZsb2F0PUZhbHNlLExpbmtlZFRvPShOaWFnYXJhTm9kZUZ1bmN0aW9uQ2FsbF8xNjQgQjdDNTc1QkM4RjI3NDVGQTlGRTJCQkE0RjQzOTdBNzksKSxQZXJzaXN0ZW50R3VpZD01NjBFMjc3NTNGODk0M0ZCOTM5NTU4MzYxRDVFMDFBMixiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD0zNDUwNkNFOTc1M0U0QzEyODA2M0EwQjk0MzY5RTkyNixQaW5OYW1lPSJMb2NhbC5Nb2R1bGUuQ2FtZXJhIFJlbGF0aXZlIFBvc2l0aW9uIixQaW5GcmllbmRseU5hbWU9SU5WVEVYVCgiTG9jYWwuTW9kdWxlLkNhbWVyYSBSZWxhdGl2ZSBQb3NpdGlvbiIpLFBpblR5cGUuUGluQ2F0ZWdvcnk9IlR5cGUiLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnk9IlBhcmFtZXRlclBpbiIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU9iamVjdD0iL1NjcmlwdC9Db3JlVU9iamVjdC5TY3JpcHRTdHJ1Y3QnL1NjcmlwdC9Db3JlVU9iamVjdC5WZWN0b3IzZiciLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlNZW1iZXJSZWZlcmVuY2U9KCksUGluVHlwZS5QaW5WYWx1ZVR5cGU9KCksUGluVHlwZS5Db250YWluZXJUeXBlPU5vbmUsUGluVHlwZS5iSXNSZWZlcmVuY2U9RmFsc2UsUGluVHlwZS5iSXNDb25zdD1GYWxzZSxQaW5UeXBlLmJJc1dlYWtQb2ludGVyPUZhbHNlLFBpblR5cGUuYklzVU9iamVjdFdyYXBwZXI9RmFsc2UsUGluVHlwZS5iU2VyaWFsaXplQXNTaW5nbGVQcmVjaXNpb25GbG9hdD1GYWxzZSxMaW5rZWRUbz0oTmlhZ2FyYU5vZGVGdW5jdGlvbkNhbGxfMTQgMzJGMEFCQUNERUI1NDk4RjkzM0JEOTg3RTdGNkIxMzksKSxQZXJzaXN0ZW50R3VpZD0zREJFOUNDNDA0MDA0Qzg2OTZDNTUyQjJCQkI2MDc4NixiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD0zRjJGQjY0NkEyMDc0QjlEQkVBRkI5NEM5Qjc0MjYwRCxQaW5OYW1lPSJBZGQiLFBpblR5cGUuUGluQ2F0ZWdvcnk9Ik1pc2MiLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnk9IkR5bmFtaWNBZGRQaW4iLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlPYmplY3Q9Tm9uZSxQaW5UeXBlLlBpblN1YkNhdGVnb3J5TWVtYmVyUmVmZXJlbmNlPSgpLFBpblR5cGUuUGluVmFsdWVUeXBlPSgpLFBpblR5cGUuQ29udGFpbmVyVHlwZT1Ob25lLFBpblR5cGUuYklzUmVmZXJlbmNlPUZhbHNlLFBpblR5cGUuYklzQ29uc3Q9RmFsc2UsUGluVHlwZS5iSXNXZWFrUG9pbnRlcj1GYWxzZSxQaW5UeXBlLmJJc1VPYmplY3RXcmFwcGVyPUZhbHNlLFBpblR5cGUuYlNlcmlhbGl6ZUFzU2luZ2xlUHJlY2lzaW9uRmxvYXQ9RmFsc2UsUGVyc2lzdGVudEd1aWQ9MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAsYkhpZGRlbj1GYWxzZSxiTm90Q29ubmVjdGFibGU9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzUmVhZE9ubHk9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzSWdub3JlZD1GYWxzZSxiQWR2YW5jZWRWaWV3PUZhbHNlLGJPcnBoYW5lZFBpbj1GYWxzZSwpDQpFbmQgT2JqZWN0DQo="
End Object
`
expect(await blueprintPage.blueprintLocator.evaluate(blueprint => blueprint.entity.serialize()))
.toEqual(serialized(source))
await blueprintPage.removeNodes()
source = String.raw`
Begin Object Class=/Script/NiagaraEditor.NiagaraClipboardContent Name="NiagaraClipboardContent_16" ExportPath="/Script/NiagaraEditor.NiagaraClipboardContent'/Engine/Transient.NiagaraClipboardContent_16'"
Begin Object Class=/Script/NiagaraEditor.NiagaraScriptVariable Name="NiagaraScriptVariable_10" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_16:NiagaraScriptVariable_10'"
End Object
Begin Object Name="NiagaraScriptVariable_10" ExportPath="/Script/NiagaraEditor.NiagaraScriptVariable'/Engine/Transient.NiagaraClipboardContent_16:NiagaraScriptVariable_10'"
Variable=(VarData=(0,0,0,0),Name="Particles.SubImageIndex",TypeDefHandle=(RegisteredTypeIndex=83))
Metadata=(Description=NSLOCTEXT("", "A6EEC0624C1820790D5859A816C48DF0", "A value from 0 to the number of entries in the table of SubUV images."),VariableGuid=FD5D89194EA839DE285E639670017225)
DefaultValueVariant=(Bytes=(0,0,0,0),CurrentMode=Bytes)
bSubscribedToParameterDefinitions=True
ChangeId=F1627BE74919FE97C923DDB4710A9FE7
End Object
ScriptVariables(0)=(ScriptVariable="/Script/NiagaraEditor.NiagaraScriptVariable'NiagaraScriptVariable_10'",OriginalChangeId=F1627BE74919FE97C923DDB4710A9FE7)
ExportedNodes="QmVnaW4gT2JqZWN0IENsYXNzPS9TY3JpcHQvTmlhZ2FyYUVkaXRvci5OaWFnYXJhTm9kZVBhcmFtZXRlck1hcFNldCBOYW1lPSJOaWFnYXJhTm9kZVBhcmFtZXRlck1hcFNldF8xIiBFeHBvcnRQYXRoPSIvU2NyaXB0L05pYWdhcmFFZGl0b3IuTmlhZ2FyYU5vZGVQYXJhbWV0ZXJNYXBTZXQnL0VuZ2luZS9UcmFuc2llbnQuTmV3TmlhZ2FyYVNjcmlwdDI6TmlhZ2FyYVNjcmlwdFNvdXJjZV8wLk5pYWdhcmFHcmFwaF8wLk5pYWdhcmFOb2RlUGFyYW1ldGVyTWFwU2V0XzEnIgogICBDaGFuZ2VJZD0yQjhENTgyRjlFQjM0OUREQkMyRUU1MThCNzdENEI4RQ0KICAgTm9kZVBvc1g9LTI1Ng0KICAgTm9kZVBvc1k9NDgwDQogICBiQ29tbWVudEJ1YmJsZVBpbm5lZD1UcnVlDQogICBiQ29tbWVudEJ1YmJsZVZpc2libGU9VHJ1ZQ0KICAgTm9kZUNvbW1lbnQ9IkNvbW1lbnQiDQogICBOb2RlR3VpZD00OEJBRTgwQ0Y0MTc0OTI0QTMzMTM0MDk5MzkxRkIzMg0KICAgQ3VzdG9tUHJvcGVydGllcyBQaW4gKFBpbklkPUVDRDQxQjgwQTc5NTQzNUJCQjQwMTA5MkZGOTgwOTQ5LFBpbk5hbWU9IlNvdXJjZSIsUGluVHlwZS5QaW5DYXRlZ29yeT0iVHlwZSIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeT0iIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5T2JqZWN0PSIvU2NyaXB0L0NvcmVVT2JqZWN0LlNjcmlwdFN0cnVjdCcvU2NyaXB0L05pYWdhcmEuTmlhZ2FyYVBhcmFtZXRlck1hcCciLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlNZW1iZXJSZWZlcmVuY2U9KCksUGluVHlwZS5QaW5WYWx1ZVR5cGU9KCksUGluVHlwZS5Db250YWluZXJUeXBlPU5vbmUsUGluVHlwZS5iSXNSZWZlcmVuY2U9RmFsc2UsUGluVHlwZS5iSXNDb25zdD1GYWxzZSxQaW5UeXBlLmJJc1dlYWtQb2ludGVyPUZhbHNlLFBpblR5cGUuYklzVU9iamVjdFdyYXBwZXI9RmFsc2UsUGluVHlwZS5iU2VyaWFsaXplQXNTaW5nbGVQcmVjaXNpb25GbG9hdD1GYWxzZSxQZXJzaXN0ZW50R3VpZD0wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCxiSGlkZGVuPUZhbHNlLGJOb3RDb25uZWN0YWJsZT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNSZWFkT25seT1GYWxzZSxiRGVmYXVsdFZhbHVlSXNJZ25vcmVkPUZhbHNlLGJBZHZhbmNlZFZpZXc9RmFsc2UsYk9ycGhhbmVkUGluPUZhbHNlLCkNCiAgIEN1c3RvbVByb3BlcnRpZXMgUGluIChQaW5JZD02MEMxOEE0RjQxMkY0RDBCQkE1OEQ4NTlBNTgxRTFCOCxQaW5OYW1lPSJEZXN0IixEaXJlY3Rpb249IkVHUERfT3V0cHV0IixQaW5UeXBlLlBpbkNhdGVnb3J5PSJUeXBlIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5PSIiLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlPYmplY3Q9Ii9TY3JpcHQvQ29yZVVPYmplY3QuU2NyaXB0U3RydWN0Jy9TY3JpcHQvTmlhZ2FyYS5OaWFnYXJhUGFyYW1ldGVyTWFwJyIsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU1lbWJlclJlZmVyZW5jZT0oKSxQaW5UeXBlLlBpblZhbHVlVHlwZT0oKSxQaW5UeXBlLkNvbnRhaW5lclR5cGU9Tm9uZSxQaW5UeXBlLmJJc1JlZmVyZW5jZT1GYWxzZSxQaW5UeXBlLmJJc0NvbnN0PUZhbHNlLFBpblR5cGUuYklzV2Vha1BvaW50ZXI9RmFsc2UsUGluVHlwZS5iSXNVT2JqZWN0V3JhcHBlcj1GYWxzZSxQaW5UeXBlLmJTZXJpYWxpemVBc1NpbmdsZVByZWNpc2lvbkZsb2F0PUZhbHNlLFBlcnNpc3RlbnRHdWlkPTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLGJIaWRkZW49RmFsc2UsYk5vdENvbm5lY3RhYmxlPUZhbHNlLGJEZWZhdWx0VmFsdWVJc1JlYWRPbmx5PUZhbHNlLGJEZWZhdWx0VmFsdWVJc0lnbm9yZWQ9RmFsc2UsYkFkdmFuY2VkVmlldz1GYWxzZSxiT3JwaGFuZWRQaW49RmFsc2UsKQ0KICAgQ3VzdG9tUHJvcGVydGllcyBQaW4gKFBpbklkPTE5MEM1QzQ1RjdEMDQ0RjFCOEZBQzcxMDQ0ODJFRDRGLFBpbk5hbWU9IlBhcnRpY2xlcy5TdWJJbWFnZUluZGV4IixQaW5GcmllbmRseU5hbWU9SU5WVEVYVCgiUGFydGljbGVzLlN1YkltYWdlSW5kZXgiKSxQaW5UeXBlLlBpbkNhdGVnb3J5PSJUeXBlIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5PSJQYXJhbWV0ZXJQaW4iLFBpblR5cGUuUGluU3ViQ2F0ZWdvcnlPYmplY3Q9Ii9TY3JpcHQvQ29yZVVPYmplY3QuU2NyaXB0U3RydWN0Jy9TY3JpcHQvTmlhZ2FyYS5OaWFnYXJhRmxvYXQnIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5TWVtYmVyUmVmZXJlbmNlPSgpLFBpblR5cGUuUGluVmFsdWVUeXBlPSgpLFBpblR5cGUuQ29udGFpbmVyVHlwZT1Ob25lLFBpblR5cGUuYklzUmVmZXJlbmNlPUZhbHNlLFBpblR5cGUuYklzQ29uc3Q9RmFsc2UsUGluVHlwZS5iSXNXZWFrUG9pbnRlcj1GYWxzZSxQaW5UeXBlLmJJc1VPYmplY3RXcmFwcGVyPUZhbHNlLFBpblR5cGUuYlNlcmlhbGl6ZUFzU2luZ2xlUHJlY2lzaW9uRmxvYXQ9RmFsc2UsUGVyc2lzdGVudEd1aWQ9M0ZGMzA3Nzk4Rjg2NDZGREJEOTUwMzdGRTlFRTNENzksYkhpZGRlbj1GYWxzZSxiTm90Q29ubmVjdGFibGU9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzUmVhZE9ubHk9RmFsc2UsYkRlZmF1bHRWYWx1ZUlzSWdub3JlZD1GYWxzZSxiQWR2YW5jZWRWaWV3PUZhbHNlLGJPcnBoYW5lZFBpbj1GYWxzZSwpDQogICBDdXN0b21Qcm9wZXJ0aWVzIFBpbiAoUGluSWQ9NkU5MTY5RUJBQTc2NDY0Rjk2MUJEMkQwQzYwQTNGQTgsUGluTmFtZT0iQWRkIixQaW5UeXBlLlBpbkNhdGVnb3J5PSJNaXNjIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5PSJEeW5hbWljQWRkUGluIixQaW5UeXBlLlBpblN1YkNhdGVnb3J5T2JqZWN0PU5vbmUsUGluVHlwZS5QaW5TdWJDYXRlZ29yeU1lbWJlclJlZmVyZW5jZT0oKSxQaW5UeXBlLlBpblZhbHVlVHlwZT0oKSxQaW5UeXBlLkNvbnRhaW5lclR5cGU9Tm9uZSxQaW5UeXBlLmJJc1JlZmVyZW5jZT1GYWxzZSxQaW5UeXBlLmJJc0NvbnN0PUZhbHNlLFBpblR5cGUuYklzV2Vha1BvaW50ZXI9RmFsc2UsUGluVHlwZS5iSXNVT2JqZWN0V3JhcHBlcj1GYWxzZSxQaW5UeXBlLmJTZXJpYWxpemVBc1NpbmdsZVByZWNpc2lvbkZsb2F0PUZhbHNlLFBlcnNpc3RlbnRHdWlkPTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLGJIaWRkZW49RmFsc2UsYk5vdENvbm5lY3RhYmxlPUZhbHNlLGJEZWZhdWx0VmFsdWVJc1JlYWRPbmx5PUZhbHNlLGJEZWZhdWx0VmFsdWVJc0lnbm9yZWQ9RmFsc2UsYkFkdmFuY2VkVmlldz1GYWxzZSxiT3JwaGFuZWRQaW49RmFsc2UsKQ0KRW5kIE9iamVjdA0K"
End Object
`
await blueprintPage.paste(source)
const expectedWords = source
.split("\n")
.map(row => row.match(/\s*("?\w+(\s+\w+)*).+/)?.[1])
.filter(v => v?.length > 0)
source = await blueprintPage.getSerializedNodes()
expect(source).toMatch(Utility.getFirstWordOrder(expectedWords))
blueprintPage.cleanup()
})
})