ENGINE: Migrated Assembly Management Functionality

This commit is contained in:
2025-10-28 21:46:19 -06:00
parent fd6601c337
commit fce49f697c
30 changed files with 2636 additions and 8 deletions

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,16 @@
{
"version": 1,
"name": "Remote Agent Update [WIN]",
"description": "Reaches out to the remote Borealis agent and triggers an automatic unattended update from the Github repository.",
"category": "script",
"type": "powershell",
"script": "W0NtZGxldEJpbmRpbmcoKV0KcGFyYW0oCiAgICBbUGFyYW1ldGVyKCldCiAgICBbc3RyaW5nXSRUYXNrTmFtZSA9ICJCb3JlYWxpcyBBZ2VudCIsCgogICAgW1BhcmFtZXRlcigpXQogICAgW3N0cmluZ10kVGFza1BhdGgKKQoKJHRhc2tQYXJhbXMgPSBAeyBUYXNrTmFtZSA9ICRUYXNrTmFtZTsgRXJyb3JBY3Rpb24gPSAnU3RvcCcgfQppZiAoJFRhc2tQYXRoKSB7ICR0YXNrUGFyYW1zLlRhc2tQYXRoID0gJFRhc2tQYXRoIH0KCnRyeSB7CiAgICAkdGFzayA9IEdldC1TY2hlZHVsZWRUYXNrIEB0YXNrUGFyYW1zCn0gY2F0Y2ggewogICAgdGhyb3cgIlNjaGVkdWxlZCB0YXNrICckVGFza05hbWUnIHdhcyBub3QgZm91bmQuIgp9CgokZXhlY0FjdGlvbiA9ICR0YXNrLkFjdGlvbnMgfCBXaGVyZS1PYmplY3QgeyAkXy5DaW1DbGFzcy5DaW1DbGFzc05hbWUgLWVxICdNU0ZUX1Rhc2tFeGVjQWN0aW9uJyB9IHwgU2VsZWN0LU9iamVjdCAtRmlyc3QgMQppZiAoLW5vdCAkZXhlY0FjdGlvbikgeyB0aHJvdyAiU2NoZWR1bGVkIHRhc2sgJyRUYXNrTmFtZScgZG9lcyBub3QgY29udGFpbiBhbiBleGVjdXRhYmxlIGFjdGlvbi4iIH0KCiR3b3JraW5nRGlyZWN0b3J5ID0gJGV4ZWNBY3Rpb24uV29ya2luZ0RpcmVjdG9yeQppZiAoW3N0cmluZ106OklzTnVsbE9yV2hpdGVTcGFjZSgkd29ya2luZ0RpcmVjdG9yeSkpIHsKICAgICRjYW5kaWRhdGUgPSBTcGxpdC1QYXRoIC1QYXRoICRleGVjQWN0aW9uLkV4ZWN1dGUgLVBhcmVudAogICAgaWYgKFtzdHJpbmddOjpJc051bGxPcldoaXRlU3BhY2UoJGNhbmRpZGF0ZSkpIHsKICAgICAgICB0aHJvdyAiVW5hYmxlIHRvIGRldGVybWluZSB3b3JraW5nIGRpcmVjdG9yeSBmb3IgJyRUYXNrTmFtZScuIgogICAgfQogICAgJHdvcmtpbmdEaXJlY3RvcnkgPSAkY2FuZGlkYXRlCn0KCnRyeSB7CiAgICAkYWdlbnRSb290ID0gUmVzb2x2ZS1QYXRoIC1QYXRoICR3b3JraW5nRGlyZWN0b3J5IC1FcnJvckFjdGlvbiBTdG9wCn0gY2F0Y2ggewogICAgdGhyb3cgIlRoZSB3b3JraW5nIGRpcmVjdG9yeSAnJHdvcmtpbmdEaXJlY3RvcnknIGRvZXMgbm90IGV4aXN0LiIKfQoKdHJ5IHsKICAgICRyZXBvUm9vdCA9IFJlc29sdmUtUGF0aCAtUGF0aCAoSm9pbi1QYXRoICRhZ2VudFJvb3QgJy4uXC4uJykgLUVycm9yQWN0aW9uIFN0b3AKfSBjYXRjaCB7CiAgICB0aHJvdyAiVW5hYmxlIHRvIHJlc29sdmUgQm9yZWFsaXMgcmVwb3NpdG9yeSByb290IGZyb20gJyRhZ2VudFJvb3QnLiIKfQoKJHVwZGF0ZVNjcmlwdCA9IEpvaW4tUGF0aCAkcmVwb1Jvb3QgJ1VwZGF0ZS5wczEnCmlmICgtbm90IChUZXN0LVBhdGggJHVwZGF0ZVNjcmlwdCAtUGF0aFR5cGUgTGVhZikpIHsKICAgIHRocm93ICJVcGRhdGUucHMxIG5vdCBmb3VuZCBhdCAnJHVwZGF0ZVNjcmlwdCcuIgp9CgpXcml0ZS1WZXJib3NlICJBZ2VudCBSb290OiAkYWdlbnRSb290IgpXcml0ZS1WZXJib3NlICJSZXBvIFJvb3Q6ICRyZXBvUm9vdCIKV3JpdGUtVmVyYm9zZSAiSW52b2tpbmcgVXBkYXRlLnBzMS4uLiIKClB1c2gtTG9jYXRpb24gJHJlcG9Sb290CiR1cGRhdGVTdWNjZWVkZWQgPSAkZmFsc2UKdHJ5IHsKICAgICYgJHVwZGF0ZVNjcmlwdAogICAgJHVwZGF0ZVN1Y2NlZWRlZCA9ICQ/Cn0gZmluYWxseSB7CiAgICBQb3AtTG9jYXRpb24KfQoKaWYgKC1ub3QgJHVwZGF0ZVN1Y2NlZWRlZCkgewogICAgdGhyb3cgJ1VwZGF0ZS5wczEgVXBkYXRlIEZhaWxlZC4nCn0=",
"timeout_seconds": 3600,
"sites": {
"mode": "all",
"values": []
},
"variables": [],
"files": [],
"script_encoding": "base64"
}

View File

@@ -0,0 +1,25 @@
{
"version": 1,
"name": "Write Canary File to C Drive",
"description": "Writes a simple text file to the C:\\ drive of the computer. Requires SYSTEM level execution context to work.",
"category": "script",
"type": "powershell",
"script": "IyBEZWZpbmUgdGhlIGZpbGUgcGF0aAokZmlsZVBhdGggPSAiQzpcQ2FuYXJ5LnR4dCIKCiMgV3JpdGUgc29tZSBjb250ZW50IGludG8gdGhlIGZpbGUKJGVudjpjYW5hcnlNZXNzYWdlIHwgT3V0LUZpbGUgLUZpbGVQYXRoICRmaWxlUGF0aCAtRW5jb2RpbmcgVVRGOAo=",
"timeout_seconds": 3600,
"sites": {
"mode": "all",
"values": []
},
"variables": [
{
"name": "canaryMessage",
"label": "Canary Message",
"type": "string",
"default": "Hello world!",
"required": true,
"description": "This is the text that will be written into the canary file."
}
],
"files": [],
"script_encoding": "base64"
}

View File

@@ -0,0 +1,33 @@
{
"version": 1,
"name": "Write Canary File to a Specific Folder",
"description": "Writes a basic canary file to a specific folder with specific input.",
"category": "script",
"type": "powershell",
"script": "JGVudjpjYW5hcnlNZXNzYWdlIHwgT3V0LUZpbGUgLUZpbGVQYXRoICRlbnY6Y2FuYXJ5TG9jYXRpb24gLUVuY29kaW5nIFVURjgK",
"timeout_seconds": 3600,
"sites": {
"mode": "all",
"values": []
},
"variables": [
{
"name": "canaryLocation",
"label": "Folder Location",
"type": "string",
"default": "C:\\Users\\example\\Desktop\\Canary.txt",
"required": true,
"description": "Location of Canary File"
},
{
"name": "canaryMessage",
"label": "Message",
"type": "string",
"default": "Hello World!",
"required": false,
"description": "Message to be written into the canary file."
}
],
"files": [],
"script_encoding": "base64"
}

View File

@@ -0,0 +1,25 @@
{
"version": 1,
"name": "Ad-Hoc Powershell Command [WIN]",
"description": "Run an arbitrary powershell command (or series of commands) ad-hoc. Useful for a variety of tasks.",
"category": "script",
"type": "powershell",
"script": "IyBNb3ZlIGludG8gdGhlIGZvbGRlciBvZiB3aGVyZSB0aGlzIHNjcmlwdCBpcyBydW5uaW5nClNldC1Mb2NhdGlvbiAtUGF0aCAoU3BsaXQtUGF0aCAtUGFyZW50ICRQU0NvbW1hbmRQYXRoKQoKIyBSZXBvcnQgdGhlIGNvbW1hbmQgaXNzdWVkIHRvIHRoZSBTdGRPdXQKV3JpdGUtSG9zdCAiQ29tbWFuZCBFeGVjdXRlZDogJGVudjpjb21tYW5kIgoKIyBSdW4gdGhlIENvbW1hbmQKSW52b2tlLUV4cHJlc3Npb24gJGVudjpjb21tYW5kCg==",
"timeout_seconds": 3600,
"sites": {
"mode": "all",
"values": []
},
"variables": [
{
"name": "command",
"label": "Powershell Command",
"type": "string",
"default": "",
"required": true,
"description": "Command to invoke in Powershell"
}
],
"files": [],
"script_encoding": "base64"
}

View File

@@ -0,0 +1,25 @@
{
"version": 1,
"name": "Shutdown Device [WIN]",
"description": "Shutdown the device with a configurable countdown.",
"category": "script",
"type": "powershell",
"script": "c2h1dGRvd24uZXhlIC9zIC9mIC90ICRlbnY6dGltZW91dA==",
"timeout_seconds": 3600,
"sites": {
"mode": "all",
"values": []
},
"variables": [
{
"name": "timeout",
"label": "Shutdown Countdown",
"type": "number",
"default": "30",
"required": true,
"description": "Amount of time to wait before shutdown occurs."
}
],
"files": [],
"script_encoding": "base64"
}

View File

@@ -0,0 +1,25 @@
{
"version": 1,
"name": "ipconfig Release & Renew",
"description": "Releases the current IP address, waits n seconds, then renews the IP asking for a new one.",
"category": "script",
"type": "powershell",
"script": "aXBjb25maWcgL3JlbGVhc2UgClN0YXJ0LVNsZWVwIC1TZWNvbmRzICRlbnY6c2xlZXBUaW1lCmlwY29uZmlnIC9yZW5ldw==",
"timeout_seconds": 3600,
"sites": {
"mode": "all",
"values": []
},
"variables": [
{
"name": "sleepTime",
"label": "Seconds Until Renew",
"type": "string",
"default": "5",
"required": true,
"description": "Number of seconds between releasing the IP and asking for a new one."
}
],
"files": [],
"script_encoding": "base64"
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,16 @@
{
"version": 1,
"name": "RocketChat [WIN]",
"description": "Silently pulls down the most recent x64 MSI installer of RocketChat from Github and installs it for all users on the device.",
"category": "script",
"type": "powershell",
"script": "IyMjIFBvd2VyU2hlbGwgU2NyaXB0IHRvIERvd25sb2FkIGFuZCBJbnN0YWxsIHRoZSBMYXRlc3QgUm9ja2V0LkNoYXQgTVNJIEluc3RhbGxlcgoKIyBEZWZpbmUgdmFyaWFibGVzIGZvciB0aGUgR2l0SHViIHJlcG9zaXRvcnkgYW5kIHRoZSBsb2NhbCBkb3dubG9hZCBwYXRoCiRHaXRIdWJSZXBvID0gImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvUm9ja2V0Q2hhdC9Sb2NrZXQuQ2hhdC5FbGVjdHJvbi9yZWxlYXNlcy9sYXRlc3QiCiREb3dubG9hZFBhdGggPSAiJGVudjpURU1QXHJvY2tldGNoYXQtbGF0ZXN0Lm1zaSIKCnRyeSB7CiAgICAjIFN0ZXAgMTogRmV0Y2ggdGhlIGxhdGVzdCByZWxlYXNlIGluZm9ybWF0aW9uIGZyb20gR2l0SHViCiAgICBXcml0ZS1Ib3N0ICJGZXRjaGluZyB0aGUgbGF0ZXN0IHJlbGVhc2UgaW5mb3JtYXRpb24gZnJvbSBHaXRIdWIuLi4iCiAgICAkUmVsZWFzZUluZm8gPSBJbnZva2UtUmVzdE1ldGhvZCAtVXJpICRHaXRIdWJSZXBvIC1Vc2VCYXNpY1BhcnNpbmcKCiAgICAjIFN0ZXAgMjogRXh0cmFjdCB0aGUgVVJMIG9mIHRoZSB4NjQgTVNJIGZpbGUgZnJvbSB0aGUgcmVsZWFzZSBhc3NldHMKICAgICRNU0lBc3NldCA9ICRSZWxlYXNlSW5mby5hc3NldHMgfCBXaGVyZS1PYmplY3QgeyAkXy5uYW1lIC1saWtlICIqeDY0Lm1zaSIgfSB8IFNlbGVjdC1PYmplY3QgLUZpcnN0IDEKICAgIGlmICgtbm90ICRNU0lBc3NldCkgewogICAgICAgIFdyaXRlLUVycm9yICJObyB4NjQgTVNJIGluc3RhbGxlciBmb3VuZCBpbiB0aGUgbGF0ZXN0IHJlbGVhc2UuIgogICAgICAgIGV4aXQgMQogICAgfQoKICAgICRNU0lVcmwgPSAkTVNJQXNzZXQuYnJvd3Nlcl9kb3dubG9hZF91cmwKICAgIFdyaXRlLUhvc3QgIkZvdW5kIHg2NCBNU0kgaW5zdGFsbGVyOiAkTVNJVXJsIgoKICAgICMgU3RlcCAzOiBEb3dubG9hZCB0aGUgTVNJIGluc3RhbGxlciB0byB0aGUgbG9jYWwgcGF0aAogICAgV3JpdGUtSG9zdCAiRG93bmxvYWRpbmcgdGhlIHg2NCBNU0kgaW5zdGFsbGVyLi4uIgogICAgSW52b2tlLVdlYlJlcXVlc3QgLVVyaSAkTVNJVXJsIC1PdXRGaWxlICREb3dubG9hZFBhdGgKCiAgICBpZiAoLU5vdCAoVGVzdC1QYXRoICREb3dubG9hZFBhdGgpKSB7CiAgICAgICAgV3JpdGUtRXJyb3IgIkZhaWxlZCB0byBkb3dubG9hZCB0aGUgTVNJIGluc3RhbGxlci4iCiAgICAgICAgZXhpdCAxCiAgICB9CgogICAgV3JpdGUtSG9zdCAieDY0IE1TSSBpbnN0YWxsZXIgZG93bmxvYWRlZCBzdWNjZXNzZnVsbHkgdG8gJERvd25sb2FkUGF0aCIKCiAgICAjIFN0ZXAgNDogSW5zdGFsbCB0aGUgTVNJIGluc3RhbGxlciBzaWxlbnRseSB3aXRoIGFkbWluIHByaXZpbGVnZXMKICAgIFdyaXRlLUhvc3QgIkluc3RhbGxpbmcgUm9ja2V0LkNoYXQgc2lsZW50bHkuLi4iCiAgICAkQXJndW1lbnRzID0gIi9pIGAiJERvd25sb2FkUGF0aGAiIC9xdWlldCAvbm9yZXN0YXJ0IEFMTFVTRVJTPTEiCiAgICBTdGFydC1Qcm9jZXNzIG1zaWV4ZWMuZXhlIC1Bcmd1bWVudExpc3QgJEFyZ3VtZW50cyAtV2FpdCAtTm9OZXdXaW5kb3cKCiAgICBXcml0ZS1Ib3N0ICJSb2NrZXQuQ2hhdCBpbnN0YWxsYXRpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseS4iCgp9IGNhdGNoIHsKICAgICMgQ2F0Y2ggYW5kIGRpc3BsYXkgYW55IGVycm9ycyBkdXJpbmcgdGhlIHByb2Nlc3MKICAgIFdyaXRlLUVycm9yICJBbiBlcnJvciBvY2N1cnJlZDogJF8iCn0gZmluYWxseSB7CiAgICAjIFN0ZXAgNTogQ2xlYW4gdXAgdGhlIGRvd25sb2FkZWQgZmlsZSBpZiBuZWVkZWQKICAgIGlmIChUZXN0LVBhdGggJERvd25sb2FkUGF0aCkgewogICAgICAgIFJlbW92ZS1JdGVtICREb3dubG9hZFBhdGggLUZvcmNlCiAgICAgICAgV3JpdGUtSG9zdCAiQ2xlYW5lZCB1cCB0aGUgZG93bmxvYWRlZCBpbnN0YWxsZXIuIgogICAgfQp9Cg==",
"timeout_seconds": 3600,
"sites": {
"mode": "all",
"values": []
},
"variables": [],
"files": [],
"script_encoding": "base64"
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,16 @@
{
"version": 1,
"name": "PuTTY [WIN]",
"description": "",
"category": "application",
"type": "powershell",
"script": "PCMgUHVUVFkgaW5zdGFsbGVyIChzaWxlbnQsIGluc3RhbGwtb25seSkgIz4KCmZ1bmN0aW9uIEVuYWJsZS1UbHMxMiB7CiAgICB0cnkgeyBbTmV0LlNlcnZpY2VQb2ludE1hbmFnZXJdOjpTZWN1cml0eVByb3RvY29sID0gW0VudW1dOjpUb09iamVjdChbTmV0LlNlY3VyaXR5UHJvdG9jb2xUeXBlXSwzMDcyKSB9IGNhdGNoIHt9Cn0KCmZ1bmN0aW9uIEdldC1BcmNoVXJsIHsKICAgICR2ZXIgPSAiMC44MyIKICAgIGlmIChbSW50UHRyXTo6U2l6ZSAtZXEgNCkgewogICAgICAgIHJldHVybiAiaHR0cHM6Ly90aGUuZWFydGgubGkvfnNndGF0aGFtL3B1dHR5LyR2ZXIvdzMyL3B1dHR5LSR2ZXItaW5zdGFsbGVyLm1zaSIKICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuICJodHRwczovL3RoZS5lYXJ0aC5saS9+c2d0YXRoYW0vcHV0dHkvJHZlci93NjQvcHV0dHktNjRiaXQtJHZlci1pbnN0YWxsZXIubXNpIgogICAgfQp9CgpmdW5jdGlvbiBUcnktRG93bmxvYWQgewogICAgcGFyYW0oW3N0cmluZ10kVXJsLFtzdHJpbmddJERlc3QpCiAgICBFbmFibGUtVGxzMTIKICAgIHRyeSB7CiAgICAgICAgJHdjID0gTmV3LU9iamVjdCBTeXN0ZW0uTmV0LldlYkNsaWVudAogICAgICAgICR3Yy5IZWFkZXJzLkFkZChbU3lzdGVtLk5ldC5IdHRwUmVxdWVzdEhlYWRlcl06OlVzZXJBZ2VudCwiTW96aWxsYS81LjAiKQogICAgICAgICR3Yy5Eb3dubG9hZEZpbGUoJFVybCwkRGVzdCkKICAgICAgICBpZiAoVGVzdC1QYXRoICREZXN0KSB7IHJldHVybiAkdHJ1ZSB9CiAgICB9IGNhdGNoIHt9CiAgICB0cnkgewogICAgICAgIEltcG9ydC1Nb2R1bGUgQml0c1RyYW5zZmVyIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlIHwgT3V0LU51bGwKICAgICAgICBTdGFydC1CaXRzVHJhbnNmZXIgLVNvdXJjZSAkVXJsIC1EZXN0aW5hdGlvbiAkRGVzdCAtRXJyb3JBY3Rpb24gU3RvcAogICAgICAgIGlmIChUZXN0LVBhdGggJERlc3QpIHsgcmV0dXJuICR0cnVlIH0KICAgIH0gY2F0Y2gge30KICAgIHRyeSB7CiAgICAgICAgSW52b2tlLVdlYlJlcXVlc3QgLVVyaSAkVXJsIC1Vc2VCYXNpY1BhcnNpbmcgLU91dEZpbGUgJERlc3QgLUVycm9yQWN0aW9uIFN0b3AKICAgICAgICBpZiAoVGVzdC1QYXRoICREZXN0KSB7IHJldHVybiAkdHJ1ZSB9CiAgICB9IGNhdGNoIHt9CiAgICB0cnkgewogICAgICAgICRjdXJsID0gR2V0LUNvbW1hbmQgY3VybC5leGUgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUKICAgICAgICBpZiAoJGN1cmwpIHsKICAgICAgICAgICAgJiAkY3VybC5QYXRoIC1MIC1vICREZXN0ICRVcmwgfCBPdXQtTnVsbAogICAgICAgICAgICBpZiAoVGVzdC1QYXRoICREZXN0KSB7IHJldHVybiAkdHJ1ZSB9CiAgICAgICAgfQogICAgfSBjYXRjaCB7fQogICAgcmV0dXJuICRmYWxzZQp9CgojIHByZXZlbnQgaW5zdGFsbCB3aGlsZSBydW5uaW5nCmlmIChHZXQtUHJvY2VzcyAtTmFtZSAicHV0dHkiIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlKSB7IGV4aXQgMSB9CgokdXJsICAgICA9IEdldC1BcmNoVXJsCiRtc2lQYXRoID0gSm9pbi1QYXRoIC1QYXRoICRlbnY6VEVNUCAtQ2hpbGRQYXRoICgicHV0dHlfezB9Lm1zaSIgLWYgW0RhdGVUaW1lXTo6VXRjTm93LlRvU3RyaW5nKCJ5eXl5TU1kZEhIbW1zcyIpKQoKaWYgKC1ub3QgKFRyeS1Eb3dubG9hZCAtVXJsICR1cmwgLURlc3QgJG1zaVBhdGgpKSB7IGV4aXQgMiB9CgokcHJvYyA9IFN0YXJ0LVByb2Nlc3MgIm1zaWV4ZWMuZXhlIiAtQXJndW1lbnRMaXN0ICIvaSBgIiRtc2lQYXRoYCIgL3FuIC9ub3Jlc3RhcnQiIC1XYWl0IC1QYXNzVGhydSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZQokY29kZSA9IGlmICgkcHJvYykgeyAkcHJvYy5FeGl0Q29kZSB9IGVsc2UgeyAxIH0KClJlbW92ZS1JdGVtICRtc2lQYXRoIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZQpleGl0ICRjb2RlCg==",
"timeout_seconds": 3600,
"sites": {
"mode": "all",
"values": []
},
"variables": [],
"files": [],
"script_encoding": "base64"
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,16 @@
{
"version": 1,
"name": "Microsoft Visual C++ Redistributable (2015-2022) [WIN]",
"description": "",
"category": "application",
"type": "powershell",
"script": "V3JpdGUtSG9zdCAiTWljcm9zb2Z0IFZpc3VhbCBDKysgUmVkaXN0cmlidXRhYmxlICgyMDE14oCTMjAyMikiCldyaXRlLUhvc3QgIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIKCiMgVExTIGVuYWJsZW1lbnQKdHJ5IHsKICAgIFtOZXQuU2VydmljZVBvaW50TWFuYWdlcl06OlNlY3VyaXR5UHJvdG9jb2wgPSBbRW51bV06OlRvT2JqZWN0KFtOZXQuU2VjdXJpdHlQcm90b2NvbFR5cGVdLCAzMDcyKQp9IGNhdGNoIHt9CgpmdW5jdGlvbiBOZXctSHR0cENsaWVudCB7CiAgICAkaGFuZGxlciA9IE5ldy1PYmplY3QgU3lzdGVtLk5ldC5IdHRwLkh0dHBDbGllbnRIYW5kbGVyCiAgICB0cnkgewogICAgICAgICRwcm94eSA9IFtTeXN0ZW0uTmV0LldlYlJlcXVlc3RdOjpEZWZhdWx0V2ViUHJveHkKICAgICAgICBpZiAoJHByb3h5KSB7CiAgICAgICAgICAgICRoYW5kbGVyLlVzZVByb3h5ID0gJHRydWUKICAgICAgICAgICAgJGhhbmRsZXIuUHJveHkgICAgPSAkcHJveHkKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkaGFuZGxlci5Vc2VQcm94eSA9ICRmYWxzZQogICAgICAgIH0KICAgIH0gY2F0Y2ggewogICAgICAgICRoYW5kbGVyLlVzZVByb3h5ID0gJGZhbHNlCiAgICB9CiAgICAkY2xpZW50ID0gTmV3LU9iamVjdCBTeXN0ZW0uTmV0Lkh0dHAuSHR0cENsaWVudCgkaGFuZGxlcikKICAgICRjbGllbnQuRGVmYXVsdFJlcXVlc3RIZWFkZXJzLlVzZXJBZ2VudC5QYXJzZUFkZCgiTW96aWxsYS81LjAiKQogICAgcmV0dXJuICRjbGllbnQKfQoKZnVuY3Rpb24gU2F2ZS1SZW1vdGVGaWxlIHsKICAgIHBhcmFtKAogICAgICAgIFtQYXJhbWV0ZXIoTWFuZGF0b3J5PSR0cnVlKV1bc3RyaW5nXSRVcmksCiAgICAgICAgW1BhcmFtZXRlcihNYW5kYXRvcnk9JHRydWUpXVtzdHJpbmddJFBhdGgKICAgICkKICAgICRjbGllbnQgPSBOZXctSHR0cENsaWVudAogICAgdHJ5IHsKICAgICAgICAkcmVzcG9uc2UgPSAkY2xpZW50LkdldEFzeW5jKCRVcmkpLlJlc3VsdAogICAgICAgIGlmICgtbm90ICRyZXNwb25zZS5Jc1N1Y2Nlc3NTdGF0dXNDb2RlKSB7CiAgICAgICAgICAgIFdyaXRlLUhvc3QgIiEgRVJST1I6IERvd25sb2FkIGZhaWxlZDogJCgkcmVzcG9uc2UuU3RhdHVzQ29kZSkiOyBleGl0IDEKICAgICAgICB9CiAgICAgICAgW0lPLkZpbGVdOjpXcml0ZUFsbEJ5dGVzKCRQYXRoLCAkcmVzcG9uc2UuQ29udGVudC5SZWFkQXNCeXRlQXJyYXlBc3luYygpLlJlc3VsdCkKICAgICAgICBpZiAoLW5vdCAoVGVzdC1QYXRoICRQYXRoKSkgeyBXcml0ZS1Ib3N0ICIhIEVSUk9SOiBGaWxlIG5vdCBmb3VuZCBhZnRlciBkb3dubG9hZC4iOyBleGl0IDEgfQogICAgfSBmaW5hbGx5IHsKICAgICAgICAkY2xpZW50LkRpc3Bvc2UoKQogICAgfQp9CgpmdW5jdGlvbiBJbnN0YWxsLVZDIHsKICAgIHBhcmFtKFtQYXJhbWV0ZXIoTWFuZGF0b3J5PSR0cnVlKV1bVmFsaWRhdGVTZXQoJ3g4NicsJ3g2NCcpXVtzdHJpbmddJEFyY2gpCiAgICAkdXJsICA9ICJodHRwczovL2FrYS5tcy92cy8xNy9yZWxlYXNlL3ZjX3JlZGlzdC4kQXJjaC5leGUiCiAgICAkZGVzdCA9IEpvaW4tUGF0aCAoW1N5c3RlbS5JTy5QYXRoXTo6R2V0VGVtcFBhdGgoKSkgKCJ2Y18kQXJjaC5leGUiKQogICAgV3JpdGUtSG9zdCAiLSBEb3dubG9hZGluZzogJHVybCIKICAgIFNhdmUtUmVtb3RlRmlsZSAtVXJpICR1cmwgLVBhdGggJGRlc3QKICAgIFdyaXRlLUhvc3QgIi0gSW5zdGFsbGluZyAoJEFyY2gpIgogICAgJHAgPSBTdGFydC1Qcm9jZXNzICRkZXN0IC1Bcmd1bWVudExpc3QgIi9pbnN0YWxsIC9wYXNzaXZlIC9ub3Jlc3RhcnQiIC1XYWl0IC1QYXNzVGhydSAtTm9OZXdXaW5kb3cKICAgIHN3aXRjaCAoJHAuRXhpdENvZGUpIHsKICAgICAgICAwICAgIHsgV3JpdGUtSG9zdCAiLSAkQXJjaCBpbnN0YWxsZWQgc3VjY2Vzc2Z1bGx5LiIgfQogICAgICAgIDMwMTAgeyBXcml0ZS1Ib3N0ICItICRBcmNoIGluc3RhbGxlZDsgcmVib290IHJlcXVpcmVkLiIgfQogICAgICAgIGRlZmF1bHQgeyBXcml0ZS1Ib3N0ICIhIEVSUk9SOiAkQXJjaCBpbnN0YWxsZXIgZXhpdGVkIHdpdGggY29kZSAkKCRwLkV4aXRDb2RlKS4iIH0KICAgIH0KfQoKaWYgKFtFbnZpcm9ubWVudF06OklzNjRCaXRPcGVyYXRpbmdTeXN0ZW0pIHsKICAgIEluc3RhbGwtVkMgLUFyY2ggeDg2CiAgICBJbnN0YWxsLVZDIC1BcmNoIHg2NAp9IGVsc2UgewogICAgSW5zdGFsbC1WQyAtQXJjaCB4ODYKfQoKV3JpdGUtSG9zdCAiLSBPcGVyYXRpb25zIGNvbXBsZXRlLiIK",
"timeout_seconds": 3600,
"sites": {
"mode": "all",
"values": []
},
"variables": [],
"files": [],
"script_encoding": "base64"
}