Option Explicit
' Sorena-LanguageNotifier v1.1.0 - offline single-file setup
Const AppName = "Sorena-LanguageNotifier"
Const AppVersion = "1.1.0"
Const ForWriting = 2
Dim fso, shell, installDir, appPath, launcherPath, setupPath
Dim startupLink, menuLink, programsDir, startupDir, uninstallMode, validateMode, i, answer

Set fso = CreateObject("Scripting.FileSystemObject")
Set shell = CreateObject("WScript.Shell")
installDir = shell.ExpandEnvironmentStrings("%LOCALAPPDATA%") & "\Programs\" & AppName
appPath = installDir & "\Sorena-LanguageNotifier.ps1"
launcherPath = installDir & "\LaunchHidden.vbs"
setupPath = installDir & "\Sorena-LanguageNotifier_Setup.vbs"
startupDir = shell.SpecialFolders("Startup")
programsDir = shell.SpecialFolders("Programs")
startupLink = startupDir & "\" & AppName & ".lnk"
menuLink = programsDir & "\" & AppName & ".lnk"
uninstallMode = False
validateMode = False

For i = 0 To WScript.Arguments.Count - 1
    If LCase(WScript.Arguments(i)) = "/uninstall" Then uninstallMode = True
    If LCase(WScript.Arguments(i)) = "/validate" Then validateMode = True
Next

If validateMode Then
    WScript.Echo "OK " & Len(DecodeBase64Utf8(Payload()))
    WScript.Quit
End If

If uninstallMode Then
    If MsgBox("Remove " & AppName & " from this user account?", vbYesNo + vbQuestion, AppName) = vbYes Then UninstallApp
    WScript.Quit
End If

If fso.FileExists(appPath) Then
    answer = MsgBox(AppName & " " & AppVersion & vbCrLf & vbCrLf & _
        "Yes: Install / Update" & vbCrLf & _
        "No: Uninstall" & vbCrLf & _
        "Cancel: Close", vbYesNoCancel + vbQuestion, AppName & " Setup")
    If answer = vbNo Then
        UninstallApp
        WScript.Quit
    ElseIf answer <> vbYes Then
        WScript.Quit
    End If
Else
    answer = MsgBox("Install " & AppName & " " & AppVersion & "?" & vbCrLf & vbCrLf & _
        "No administrator permission is required." & vbCrLf & _
        "The app will start automatically when you sign in.", _
        vbOKCancel + vbInformation, AppName & " Setup")
    If answer <> vbOK Then WScript.Quit
End If

InstallApp

Sub InstallApp
    On Error Resume Next
    StopApp
    If Not fso.FolderExists(installDir) Then fso.CreateFolder installDir
    If Err.Number <> 0 Then Fail "Could not create the installation folder."

    WriteUtf8 appPath, DecodeBase64Utf8(Payload())
    If Err.Number <> 0 Or Not fso.FileExists(appPath) Then Fail "Could not write the application file."

    WriteAscii launcherPath, _
        "Option Explicit" & vbCrLf & _
        "Dim sh, fso, app" & vbCrLf & _
        "Set sh = CreateObject(""WScript.Shell"")" & vbCrLf & _
        "Set fso = CreateObject(""Scripting.FileSystemObject"")" & vbCrLf & _
        "app = fso.BuildPath(fso.GetParentFolderName(WScript.ScriptFullName), ""Sorena-LanguageNotifier.ps1"")" & vbCrLf & _
        "sh.Run ""powershell.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File """""" & app & """""""", 0, False" & vbCrLf

    fso.CopyFile WScript.ScriptFullName, setupPath, True
    CreateShortcut menuLink
    CreateShortcut startupLink

    shell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\" & AppName & "\DisplayName", AppName, "REG_SZ"
    shell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\" & AppName & "\DisplayVersion", AppVersion, "REG_SZ"
    shell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\" & AppName & "\Publisher", "TKLA", "REG_SZ"
    shell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\" & AppName & "\InstallLocation", installDir, "REG_SZ"
    shell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\" & AppName & "\UninstallString", _
        "wscript.exe " & Quote(setupPath) & " /uninstall", "REG_SZ"
    shell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\" & AppName & "\NoModify", 1, "REG_DWORD"
    shell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\" & AppName & "\NoRepair", 1, "REG_DWORD"

    If Err.Number <> 0 Then Fail "Installation could not be completed."
    shell.Run "wscript.exe " & Quote(launcherPath), 0, False
    MsgBox AppName & " " & AppVersion & " installed successfully." & vbCrLf & vbCrLf & _
        "The app is running near the Windows clock.", vbInformation, AppName
End Sub

Sub UninstallApp
    On Error Resume Next
    StopApp
    If fso.FileExists(startupLink) Then fso.DeleteFile startupLink, True
    If fso.FileExists(menuLink) Then fso.DeleteFile menuLink, True
    shell.RegDelete "HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\" & AppName & "\"
    MsgBox AppName & " was removed successfully.", vbInformation, AppName
    If fso.FolderExists(installDir) Then fso.DeleteFolder installDir, True
End Sub

Sub StopApp
    On Error Resume Next
    Dim svc, processes, p, cmd
    Set svc = GetObject("winmgmts:\\.\root\cimv2")
    Set processes = svc.ExecQuery("Select * from Win32_Process where Name='powershell.exe' or Name='pwsh.exe'")
    For Each p In processes
        cmd = "" & p.CommandLine
        If InStr(1, cmd, appPath, vbTextCompare) > 0 Then p.Terminate
    Next
End Sub

Sub CreateShortcut(path)
    Dim link
    Set link = shell.CreateShortcut(path)
    link.TargetPath = shell.ExpandEnvironmentStrings("%WINDIR%") & "\System32\wscript.exe"
    link.Arguments = Quote(launcherPath)
    link.WorkingDirectory = installDir
    link.Description = AppName & " " & AppVersion
    link.Save
End Sub

Sub WriteAscii(path, text)
    Dim file
    Set file = fso.CreateTextFile(path, True, False)
    file.Write text
    file.Close
End Sub

Sub WriteUtf8(path, text)
    Dim stream
    Set stream = CreateObject("ADODB.Stream")
    stream.Type = 2
    stream.Charset = "utf-8"
    stream.Open
    stream.WriteText text
    stream.SaveToFile path, 2
    stream.Close
End Sub

Function DecodeBase64Utf8(value)
    Dim xml, node, stream
    Set xml = CreateObject("Msxml2.DOMDocument.6.0")
    Set node = xml.CreateElement("base64")
    node.DataType = "bin.base64"
    node.Text = value
    Set stream = CreateObject("ADODB.Stream")
    stream.Type = 1
    stream.Open
    stream.Write node.NodeTypedValue
    stream.Position = 0
    stream.Type = 2
    stream.Charset = "utf-8"
    DecodeBase64Utf8 = stream.ReadText
    stream.Close
End Function

Function Quote(value)
    Quote = Chr(34) & value & Chr(34)
End Function

Sub Fail(message)
    Dim detail
    detail = message
    If Err.Number <> 0 Then detail = detail & vbCrLf & vbCrLf & "Error " & Err.Number & ": " & Err.Description
    MsgBox detail, vbCritical, AppName & " Setup"
    WScript.Quit 1
End Sub

Function Payload()
    Dim s
    s = ""
    s = s & "IyBTb3JlbmEtTGFuZ3VhZ2VOb3RpZmllciAxLjEuMAojIENvcHlyaWdodCAoYykgVEtMQS4gUnVudGltZSBpcyBpbnRlbnRpb25hbGx5IHJlYWRhYmxlIGFu"
    s = s & "ZCBjb250YWlucyBubyBrZXlzdHJva2UgbG9nZ2luZy4KW0NtZGxldEJpbmRpbmcoKV0KcGFyYW0oKQoKJEVycm9yQWN0aW9uUHJlZmVyZW5jZSA9ICJTdG9w"
    s = s & "Igokc2NyaXB0OkFwcE5hbWUgPSAiU29yZW5hLUxhbmd1YWdlTm90aWZpZXIiCiRzY3JpcHQ6VmVyc2lvbiA9ICIxLjEuMCIKJHNjcmlwdDpEYXRhRGlyID0g"
    s = s & "Sm9pbi1QYXRoICRlbnY6TE9DQUxBUFBEQVRBICRzY3JpcHQ6QXBwTmFtZQokc2NyaXB0OkNvbmZpZ1BhdGggPSBKb2luLVBhdGggJHNjcmlwdDpEYXRhRGly"
    s = s & "ICJzZXR0aW5ncy5qc29uIgokc2NyaXB0OkxvZ1BhdGggPSBKb2luLVBhdGggJHNjcmlwdDpEYXRhRGlyICJhcHAubG9nIgokc2NyaXB0OlNpZ25hbFBhdGgg"
    s = s & "PSBKb2luLVBhdGggJHNjcmlwdDpEYXRhRGlyICJvcGVuLXNldHRpbmdzLnNpZ25hbCIKJHNjcmlwdDpQZW5kaW5nS2V5ID0gLTEKJHNjcmlwdDpQZW5kaW5n"
    s = s & "QXQgPSBbRGF0ZVRpbWVdOjpNaW5WYWx1ZQokc2NyaXB0Okxhc3RUeXBpbmcgPSBbRGF0ZVRpbWVdOjpNaW5WYWx1ZQokc2NyaXB0Okxhc3ROb3RpY2UgPSBb"
    s = s & "RGF0ZVRpbWVdOjpNaW5WYWx1ZQokc2NyaXB0Okxhc3RMQ0lEID0gLTEKJHNjcmlwdDpQYXVzZWRVbnRpbCA9IFtEYXRlVGltZV06Ok1pblZhbHVlCiRzY3Jp"
    s = s & "cHQ6SWNvbkNhY2hlID0gQHt9CiRzY3JpcHQ6U2V0dGluZ3NPcGVuID0gJGZhbHNlCgpOZXctSXRlbSAtSXRlbVR5cGUgRGlyZWN0b3J5IC1QYXRoICRzY3Jp"
    s = s & "cHQ6RGF0YURpciAtRm9yY2UgfCBPdXQtTnVsbAoKZnVuY3Rpb24gV3JpdGUtTG9nKFtzdHJpbmddJE1lc3NhZ2UpIHsKICAgIHRyeSB7CiAgICAgICAgaWYg"
    s = s & "KChUZXN0LVBhdGggJHNjcmlwdDpMb2dQYXRoKSAtYW5kIChHZXQtSXRlbSAkc2NyaXB0OkxvZ1BhdGgpLkxlbmd0aCAtZ3QgMU1CKSB7CiAgICAgICAgICAg"
    s = s & "IE1vdmUtSXRlbSAkc2NyaXB0OkxvZ1BhdGggIiQoJHNjcmlwdDpMb2dQYXRoKS4xIiAtRm9yY2UKICAgICAgICB9CiAgICAgICAgQWRkLUNvbnRlbnQgJHNj"
    s = s & "cmlwdDpMb2dQYXRoICJbJChHZXQtRGF0ZSAtRm9ybWF0ICd5eXl5LU1NLWRkIEhIOm1tOnNzJyldICRNZXNzYWdlIiAtRW5jb2RpbmcgVVRGOAogICAgfSBj"
    s = s & "YXRjaCB7fQp9CgpmdW5jdGlvbiBOZXctRGVmYXVsdENvbmZpZyB7CiAgICBbb3JkZXJlZF1AewogICAgICAgIFZvaWNlRW5hYmxlZCAgICAgICA9ICR0cnVl"
    s = s & "CiAgICAgICAgVm9pY2VWb2x1bWUgICAgICAgID0gODAKICAgICAgICBPdmVybGF5RW5hYmxlZCAgICAgPSAkdHJ1ZQogICAgICAgIE92ZXJsYXlTaXplICAg"
    s = s & "ICAgICA9IDE1MAogICAgICAgIE92ZXJsYXlEdXJhdGlvbk1zICA9IDEzMDAKICAgICAgICBPdmVybGF5T3BhY2l0eSAgICAgPSA4OAogICAgICAgIE92ZXJs"
    s = s & "YXlBbmltYXRpb24gICA9ICJGYWRlIgogICAgICAgIE92ZXJsYXlQb3NpdGlvbiAgICA9ICJCb3R0b21SaWdodCIKICAgICAgICBOb3RpZnlPbkZpcnN0VHlw"
    s = s & "ZSAgPSAkdHJ1ZQogICAgICAgIElkbGVSZXNldE1zICAgICAgICA9IDE1MDAKICAgICAgICBCcm93c2VyRmFsbGJhY2sgICAgPSAkdHJ1ZQogICAgICAgIFN1"
    s = s & "cHByZXNzRnVsbHNjcmVlbiA9ICR0cnVlCiAgICAgICAgUXVpZXRIb3Vyc0VuYWJsZWQgID0gJGZhbHNlCiAgICAgICAgUXVpZXRTdGFydCAgICAgICAgID0g"
    s = s & "IjIyOjAwIgogICAgICAgIFF1aWV0RW5kICAgICAgICAgICA9ICIwNzowMCIKICAgICAgICBCbG9ja2VkQXBwcyAgICAgICAgPSBAKCJnYW1lYmFyIiwgIm9i"
    s = s & "czY0IikKICAgICAgICBBbGxvd2VkQXBwcyAgICAgICAgPSBAKCkKICAgICAgICBQcm9maWxlcyAgICAgICAgICAgPSBbb3JkZXJlZF1Ae30KICAgICAgICBM"
    s = s & "YW5ndWFnZVN0eWxlcyAgICAgPSBbb3JkZXJlZF1AewogICAgICAgICAgICAiZW4iID0gW29yZGVyZWRdQHsgQ29sb3IgPSAiIzAwNTQ4QyI7IFZvaWNlID0g"
    s = s & "IkVuZ2xpc2giIH0KICAgICAgICAgICAgImZhIiA9IFtvcmRlcmVkXUB7IENvbG9yID0gIiMwMDg5N0IiOyBWb2ljZSA9ICJQZXJzaWFuIiB9CiAgICAgICAg"
    s = s & "ICAgICJhciIgPSBbb3JkZXJlZF1AeyBDb2xvciA9ICIjN0IxRkEyIjsgVm9pY2UgPSAiQXJhYmljIiB9CiAgICAgICAgfQogICAgICAgIEhvdGtleXMgICAg"
    s = s & "ICAgICAgICA9IFtvcmRlcmVkXUB7CiAgICAgICAgICAgIFRvZ2dsZVBhdXNlID0gIkN0cmwrQWx0K1AiCiAgICAgICAgICAgIFNwZWFrTm93ICAgID0gIkN0"
    s = s & "cmwrQWx0K0wiCiAgICAgICAgICAgIFNldHRpbmdzICAgID0gIkN0cmwrQWx0K1MiCiAgICAgICAgfQogICAgfQp9CgpmdW5jdGlvbiBNZXJnZS1Db25maWco"
    s = s & "JERlZmF1bHQsICRTYXZlZCkgewogICAgaWYgKCRudWxsIC1lcSAkU2F2ZWQpIHsgcmV0dXJuICREZWZhdWx0IH0KICAgIGZvcmVhY2ggKCRwIGluICRTYXZl"
    s = s & "ZC5QU09iamVjdC5Qcm9wZXJ0aWVzKSB7CiAgICAgICAgaWYgKCREZWZhdWx0LkNvbnRhaW5zKCRwLk5hbWUpKSB7ICREZWZhdWx0WyRwLk5hbWVdID0gJHAu"
    s = s & "VmFsdWUgfQogICAgfQogICAgcmV0dXJuICREZWZhdWx0Cn0KCmZ1bmN0aW9uIEltcG9ydC1Db25maWcgewogICAgJGRlZmF1bHQgPSBOZXctRGVmYXVsdENv"
    s = s & "bmZpZwogICAgdHJ5IHsKICAgICAgICBpZiAoVGVzdC1QYXRoICRzY3JpcHQ6Q29uZmlnUGF0aCkgewogICAgICAgICAgICByZXR1cm4gTWVyZ2UtQ29uZmln"
    s = s & "ICRkZWZhdWx0IChHZXQtQ29udGVudCAkc2NyaXB0OkNvbmZpZ1BhdGggLVJhdyAtRW5jb2RpbmcgVVRGOCB8IENvbnZlcnRGcm9tLUpzb24pCiAgICAgICAg"
    s = s & "fQogICAgfSBjYXRjaCB7IFdyaXRlLUxvZyAiQ29uZmlnIGxvYWQgZmFpbGVkOiAkKCRfLkV4Y2VwdGlvbi5NZXNzYWdlKSIgfQogICAgcmV0dXJuICRkZWZh"
    s = s & "dWx0Cn0KCmZ1bmN0aW9uIFNhdmUtQ29uZmlnIHsKICAgIHRyeSB7CiAgICAgICAgJGpzb24gPSAkc2NyaXB0OkNvbmZpZyB8IENvbnZlcnRUby1Kc29uIC1E"
    s = s & "ZXB0aCA4CiAgICAgICAgJHRtcCA9ICIkKCRzY3JpcHQ6Q29uZmlnUGF0aCkudG1wIgogICAgICAgIFNldC1Db250ZW50ICR0bXAgJGpzb24gLUVuY29kaW5n"
    s = s & "IFVURjgKICAgICAgICBNb3ZlLUl0ZW0gJHRtcCAkc2NyaXB0OkNvbmZpZ1BhdGggLUZvcmNlCiAgICB9IGNhdGNoIHsgV3JpdGUtTG9nICJDb25maWcgc2F2"
    s = s & "ZSBmYWlsZWQ6ICQoJF8uRXhjZXB0aW9uLk1lc3NhZ2UpIiB9Cn0KCiRzY3JpcHQ6Q29uZmlnID0gSW1wb3J0LUNvbmZpZwoKdHJ5IHsKICAgICRjcmVhdGVk"
    s = s & "ID0gJGZhbHNlCiAgICAkc2NyaXB0Ok11dGV4ID0gW1RocmVhZGluZy5NdXRleF06Om5ldygkdHJ1ZSwgIkxvY2FsXFNvcmVuYV9MYW5ndWFnZU5vdGlmaWVy"
    s = s & "IiwgW3JlZl0kY3JlYXRlZCkKICAgIGlmICgtbm90ICRjcmVhdGVkKSB7CiAgICAgICAgU2V0LUNvbnRlbnQgJHNjcmlwdDpTaWduYWxQYXRoIChHZXQtRGF0"
    s = s & "ZSkuVG9TdHJpbmcoIm8iKSAtRW5jb2RpbmcgQVNDSUkgLUZvcmNlCiAgICAgICAgZXhpdAogICAgfQoKICAgIEFkZC1UeXBlIC1Bc3NlbWJseU5hbWUgU3lz"
    s = s & "dGVtLldpbmRvd3MuRm9ybXMKICAgIEFkZC1UeXBlIC1Bc3NlbWJseU5hbWUgU3lzdGVtLkRyYXdpbmcKICAgIEFkZC1UeXBlIC1Bc3NlbWJseU5hbWUgVUlB"
    s = s & "dXRvbWF0aW9uQ2xpZW50CiAgICBBZGQtVHlwZSAtQXNzZW1ibHlOYW1lIFVJQXV0b21hdGlvblR5cGVzCiAgICBbV2luZG93cy5Gb3Jtcy5BcHBsaWNhdGlv"
    s = s & "bl06OkVuYWJsZVZpc3VhbFN0eWxlcygpCgogICAgJG5hdGl2ZVNvdXJjZSA9IEAiCnVzaW5nIFN5c3RlbTsKdXNpbmcgU3lzdGVtLkRpYWdub3N0aWNzOwp1"
    s = s & "c2luZyBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXM7CnVzaW5nIFN5c3RlbS5UZXh0Owp1c2luZyBTeXN0ZW0uV2luZG93cy5Gb3JtczsKCnB1Ymxp"
    s = s & "YyBzdGF0aWMgY2xhc3MgU29yZW5hTmF0aXZlIHsKICAgIHB1YmxpYyBzdGF0aWMgQWN0aW9uPGludD4gT25LZXk7CiAgICBwdWJsaWMgc3RhdGljIEFjdGlv"
    s = s & "bjxpbnQ+IE9uSG90a2V5OwogICAgY29uc3QgaW50IFdIX0tFWUJPQVJEX0xMPTEzLCBXTV9LRVlET1dOPTB4MTAwLCBXTV9TWVNLRVlET1dOPTB4MTA0LCBX"
    s = s & "TV9IT1RLRVk9MHgwMzEyOwogICAgc3RhdGljIEhvb2tQcm9jIHByb2M9SG9va0NhbGxiYWNrOwogICAgc3RhdGljIEludFB0ciBob29rPUludFB0ci5aZXJv"
    s = s & "OwoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBTdGFydEhvb2soKSB7CiAgICAgICAgaWYoaG9vayE9SW50UHRyLlplcm8pIHJldHVybjsKICAgICAgICB1c2lu"
    s = s & "ZyhQcm9jZXNzIHA9UHJvY2Vzcy5HZXRDdXJyZW50UHJvY2VzcygpKQogICAgICAgIHVzaW5nKFByb2Nlc3NNb2R1bGUgbT1wLk1haW5Nb2R1bGUpCiAgICAg"
    s = s & "ICAgICAgIGhvb2s9U2V0V2luZG93c0hvb2tFeChXSF9LRVlCT0FSRF9MTCxwcm9jLEdldE1vZHVsZUhhbmRsZShtLk1vZHVsZU5hbWUpLDApOwogICAgfQog"
    s = s & "ICAgcHVibGljIHN0YXRpYyB2b2lkIFN0b3BIb29rKCkgewogICAgICAgIGlmKGhvb2shPUludFB0ci5aZXJvKXsgVW5ob29rV2luZG93c0hvb2tFeChob29r"
    s = s & "KTsgaG9vaz1JbnRQdHIuWmVybzsgfQogICAgfQogICAgc3RhdGljIEludFB0ciBIb29rQ2FsbGJhY2soaW50IGNvZGUsSW50UHRyIHcsSW50UHRyIGwpIHsK"
    s = s & "ICAgICAgICBpZihjb2RlPj0wICYmICh3PT0oSW50UHRyKVdNX0tFWURPV04gfHwgdz09KEludFB0cilXTV9TWVNLRVlET1dOKSkgewogICAgICAgICAgICB0"
    s = s & "cnkgeyBpZihPbktleSE9bnVsbCkgT25LZXkoTWFyc2hhbC5SZWFkSW50MzIobCkpOyB9IGNhdGNoIHt9CiAgICAgICAgfQogICAgICAgIHJldHVybiBDYWxs"
    s = s & "TmV4dEhvb2tFeChob29rLGNvZGUsdyxsKTsKICAgIH0KICAgIHB1YmxpYyBzdGF0aWMgaW50IEdldExDSUQoKSB7CiAgICAgICAgSW50UHRyIGg9R2V0Rm9y"
    s = s & "ZWdyb3VuZFdpbmRvdygpOyBpZihoPT1JbnRQdHIuWmVybykgcmV0dXJuIDA7CiAgICAgICAgdWludCB0aWQ9R2V0V2luZG93VGhyZWFkUHJvY2Vzc0lkKGgs"
    s = s & "SW50UHRyLlplcm8pOwogICAgICAgIHJldHVybiAoaW50KShHZXRLZXlib2FyZExheW91dCh0aWQpLlRvSW50NjQoKSAmIDB4ZmZmZik7CiAgICB9CiAgICBw"
    s = s & "dWJsaWMgc3RhdGljIHN0cmluZyBQcm9jZXNzTmFtZSgpIHsKICAgICAgICB0cnkgeyB1aW50IHA7IEdldFdpbmRvd1RocmVhZFByb2Nlc3NJZChHZXRGb3Jl"
    s = s & "Z3JvdW5kV2luZG93KCksb3V0IHApOyByZXR1cm4gUHJvY2Vzcy5HZXRQcm9jZXNzQnlJZCgoaW50KXApLlByb2Nlc3NOYW1lLlRvTG93ZXJJbnZhcmlhbnQo"
    s = s & "KTsgfQogICAgICAgIGNhdGNoIHsgcmV0dXJuICIiOyB9CiAgICB9CiAgICBwdWJsaWMgc3RhdGljIHN0cmluZyBXaW5kb3dUaXRsZSgpIHsKICAgICAgICBT"
    s = s & "dHJpbmdCdWlsZGVyIHM9bmV3IFN0cmluZ0J1aWxkZXIoNTEyKTsgR2V0V2luZG93VGV4dChHZXRGb3JlZ3JvdW5kV2luZG93KCkscyxzLkNhcGFjaXR5KTsg"
    s = s & "cmV0dXJuIHMuVG9TdHJpbmcoKTsKICAgIH0KICAgIHB1YmxpYyBzdGF0aWMgYm9vbCBIYXNDYXJldCgpIHsKICAgICAgICBJbnRQdHIgaD1HZXRGb3JlZ3Jv"
    s = s & "dW5kV2luZG93KCk7IGlmKGg9PUludFB0ci5aZXJvKSByZXR1cm4gZmFsc2U7CiAgICAgICAgdWludCB0aWQ9R2V0V2luZG93VGhyZWFkUHJvY2Vzc0lkKGgs"
    s = s & "SW50UHRyLlplcm8pOwogICAgICAgIEdVSSBnPW5ldyBHVUkoKTsgZy5jYlNpemU9TWFyc2hhbC5TaXplT2YodHlwZW9mKEdVSSkpOwogICAgICAgIHJldHVy"
    s = s & "biBHZXRHVUlUaHJlYWRJbmZvKHRpZCxyZWYgZykgJiYgZy5od25kQ2FyZXQhPUludFB0ci5aZXJvOwogICAgfQogICAgcHVibGljIHN0YXRpYyBib29sIElz"
    s = s & "RnVsbHNjcmVlbigpIHsKICAgICAgICBJbnRQdHIgaD1HZXRGb3JlZ3JvdW5kV2luZG93KCk7IGlmKGg9PUludFB0ci5aZXJvKSByZXR1cm4gZmFsc2U7CiAg"
    s = s & "ICAgICAgUkVDVCByOyBpZighR2V0V2luZG93UmVjdChoLG91dCByKSkgcmV0dXJuIGZhbHNlOwogICAgICAgIFNjcmVlbiBzPVNjcmVlbi5Gcm9tSGFuZGxl"
    s = s & "KGgpOwogICAgICAgIHJldHVybiByLkxlZnQ8PXMuQm91bmRzLkxlZnQgJiYgci5Ub3A8PXMuQm91bmRzLlRvcCAmJiByLlJpZ2h0Pj1zLkJvdW5kcy5SaWdo"
    s = s & "dCAmJiByLkJvdHRvbT49cy5Cb3VuZHMuQm90dG9tOwogICAgfQogICAgcHVibGljIHN0YXRpYyBJbnRQdHIgRm9yZWdyb3VuZFdpbmRvdygpeyByZXR1cm4g"
    s = s & "R2V0Rm9yZWdyb3VuZFdpbmRvdygpOyB9CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgUmVsZWFzZUljb24oSW50UHRyIGljb24peyBpZihpY29uIT1JbnRQdHIu"
    s = s & "WmVybykgRGVzdHJveUljb24oaWNvbik7IH0KICAgIHB1YmxpYyBzdGF0aWMgYm9vbCBSZWdpc3RlckhvdGtleShJbnRQdHIgaHduZCxpbnQgaWQsdWludCBt"
    s = s & "b2RpZmllcnMsdWludCBrZXkpeyByZXR1cm4gUmVnaXN0ZXJIb3RLZXkoaHduZCxpZCxtb2RpZmllcnMsa2V5KTsgfQogICAgcHVibGljIHN0YXRpYyB2b2lk"
    s = s & "IFVucmVnaXN0ZXJIb3RrZXlzKEludFB0ciBod25kKXsgZm9yKGludCBpPTE7aTw9MztpKyspIFVucmVnaXN0ZXJIb3RLZXkoaHduZCxpKTsgfQoKICAgIHB1"
    s = s & "YmxpYyBjbGFzcyBIb3RrZXlXaW5kb3cgOiBOYXRpdmVXaW5kb3csIElEaXNwb3NhYmxlIHsKICAgICAgICBwdWJsaWMgSG90a2V5V2luZG93KCl7IENyZWF0"
    s = s & "ZUhhbmRsZShuZXcgQ3JlYXRlUGFyYW1zKCkpOyB9CiAgICAgICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZvaWQgV25kUHJvYyhyZWYgTWVzc2FnZSBtKXsKICAg"
    s = s & "ICAgICAgICAgaWYobS5Nc2c9PVdNX0hPVEtFWSAmJiBPbkhvdGtleSE9bnVsbCkgT25Ib3RrZXkobS5XUGFyYW0uVG9JbnQzMigpKTsKICAgICAgICAgICAg"
    s = s & "YmFzZS5XbmRQcm9jKHJlZiBtKTsKICAgICAgICB9CiAgICAgICAgcHVibGljIHZvaWQgRGlzcG9zZSgpeyBEZXN0cm95SGFuZGxlKCk7IH0KICAgIH0KICAg"
    s = s & "IGRlbGVnYXRlIEludFB0ciBIb29rUHJvYyhpbnQgYyxJbnRQdHIgdyxJbnRQdHIgbCk7CiAgICBbU3RydWN0TGF5b3V0KExheW91dEtpbmQuU2VxdWVudGlh"
    s = s & "bCldIHN0cnVjdCBSRUNUIHsgcHVibGljIGludCBMZWZ0LFRvcCxSaWdodCxCb3R0b207IH0KICAgIFtTdHJ1Y3RMYXlvdXQoTGF5b3V0S2luZC5TZXF1ZW50"
    s = s & "aWFsKV0gc3RydWN0IEdVSSB7CiAgICAgICAgcHVibGljIGludCBjYlNpemUsZmxhZ3M7IHB1YmxpYyBJbnRQdHIgaHduZEFjdGl2ZSxod25kRm9jdXMsaHdu"
    s = s & "ZENhcHR1cmUsaHduZE1lbnVPd25lcixod25kTW92ZVNpemUsaHduZENhcmV0OyBwdWJsaWMgUkVDVCByY0NhcmV0OwogICAgfQogICAgW0RsbEltcG9ydCgi"
    s = s & "dXNlcjMyLmRsbCIpXSBzdGF0aWMgZXh0ZXJuIEludFB0ciBTZXRXaW5kb3dzSG9va0V4KGludCBpZCxIb29rUHJvYyBwLEludFB0ciBtLHVpbnQgdCk7CiAg"
    s = s & "ICBbRGxsSW1wb3J0KCJ1c2VyMzIuZGxsIildIHN0YXRpYyBleHRlcm4gYm9vbCBVbmhvb2tXaW5kb3dzSG9va0V4KEludFB0ciBoKTsKICAgIFtEbGxJbXBv"
    s = s & "cnQoInVzZXIzMi5kbGwiKV0gc3RhdGljIGV4dGVybiBJbnRQdHIgQ2FsbE5leHRIb29rRXgoSW50UHRyIGgsaW50IGMsSW50UHRyIHcsSW50UHRyIGwpOwog"
    s = s & "ICAgW0RsbEltcG9ydCgia2VybmVsMzIuZGxsIildIHN0YXRpYyBleHRlcm4gSW50UHRyIEdldE1vZHVsZUhhbmRsZShzdHJpbmcgbik7CiAgICBbRGxsSW1w"
    s = s & "b3J0KCJ1c2VyMzIuZGxsIildIHN0YXRpYyBleHRlcm4gSW50UHRyIEdldEZvcmVncm91bmRXaW5kb3coKTsKICAgIFtEbGxJbXBvcnQoInVzZXIzMi5kbGwi"
    s = s & "KV0gc3RhdGljIGV4dGVybiB1aW50IEdldFdpbmRvd1RocmVhZFByb2Nlc3NJZChJbnRQdHIgaCxJbnRQdHIgcCk7CiAgICBbRGxsSW1wb3J0KCJ1c2VyMzIu"
    s = s & "ZGxsIildIHN0YXRpYyBleHRlcm4gdWludCBHZXRXaW5kb3dUaHJlYWRQcm9jZXNzSWQoSW50UHRyIGgsb3V0IHVpbnQgcCk7CiAgICBbRGxsSW1wb3J0KCJ1"
    s = s & "c2VyMzIuZGxsIildIHN0YXRpYyBleHRlcm4gSW50UHRyIEdldEtleWJvYXJkTGF5b3V0KHVpbnQgdCk7CiAgICBbRGxsSW1wb3J0KCJ1c2VyMzIuZGxsIild"
    s = s & "IHN0YXRpYyBleHRlcm4gYm9vbCBHZXRHVUlUaHJlYWRJbmZvKHVpbnQgdCxyZWYgR1VJIGcpOwogICAgW0RsbEltcG9ydCgidXNlcjMyLmRsbCIpXSBzdGF0"
    s = s & "aWMgZXh0ZXJuIGludCBHZXRXaW5kb3dUZXh0KEludFB0ciBoLFN0cmluZ0J1aWxkZXIgcyxpbnQgbik7CiAgICBbRGxsSW1wb3J0KCJ1c2VyMzIuZGxsIild"
    s = s & "IHN0YXRpYyBleHRlcm4gYm9vbCBHZXRXaW5kb3dSZWN0KEludFB0ciBoLG91dCBSRUNUIHIpOwogICAgW0RsbEltcG9ydCgidXNlcjMyLmRsbCIpXSBzdGF0"
    s = s & "aWMgZXh0ZXJuIGJvb2wgUmVnaXN0ZXJIb3RLZXkoSW50UHRyIGgsaW50IGlkLHVpbnQgbSx1aW50IGspOwogICAgW0RsbEltcG9ydCgidXNlcjMyLmRsbCIp"
    s = s & "XSBzdGF0aWMgZXh0ZXJuIGJvb2wgVW5yZWdpc3RlckhvdEtleShJbnRQdHIgaCxpbnQgaWQpOwogICAgW0RsbEltcG9ydCgidXNlcjMyLmRsbCIpXSBzdGF0"
    s = s & "aWMgZXh0ZXJuIGJvb2wgRGVzdHJveUljb24oSW50UHRyIGgpOwp9CiJACiAgICBBZGQtVHlwZSAtVHlwZURlZmluaXRpb24gJG5hdGl2ZVNvdXJjZSAtUmVm"
    s = s & "ZXJlbmNlZEFzc2VtYmxpZXMgQCgiU3lzdGVtLldpbmRvd3MuRm9ybXMiLCJTeXN0ZW0uRHJhd2luZyIpCgogICAgZnVuY3Rpb24gR2V0LUxhbmd1YWdlSW5m"
    s = s & "byB7CiAgICAgICAgJGxjaWQgPSB0cnkgeyBbU29yZW5hTmF0aXZlXTo6R2V0TENJRCgpIH0gY2F0Y2ggeyAwIH0KICAgICAgICBpZiAoLW5vdCAkbGNpZCkg"
    s = s & "eyB0cnkgeyAkbGNpZCA9IFtXaW5kb3dzLkZvcm1zLklucHV0TGFuZ3VhZ2VdOjpDdXJyZW50SW5wdXRMYW5ndWFnZS5DdWx0dXJlLkxDSUQgfSBjYXRjaCB7"
    s = s & "fSB9CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJGN1bHR1cmUgPSBbR2xvYmFsaXphdGlvbi5DdWx0dXJlSW5mb106Om5ldygkbGNpZCkKICAgICAgICAg"
    s = s & "ICAgJHR3byA9ICRjdWx0dXJlLlR3b0xldHRlcklTT0xhbmd1YWdlTmFtZS5Ub0xvd2VySW52YXJpYW50KCkKICAgICAgICAgICAgJG5hbWUgPSAkY3VsdHVy"
    s = s & "ZS5FbmdsaXNoTmFtZQogICAgICAgIH0gY2F0Y2ggeyAkdHdvID0gIj8/IjsgJG5hbWUgPSAiVW5rbm93biBsYW5ndWFnZSIgfQogICAgICAgICRzdHlsZSA9"
    s = s & "ICRzY3JpcHQ6Q29uZmlnLkxhbmd1YWdlU3R5bGVzLiR0d28KICAgICAgICAkdm9pY2UgPSBpZiAoJHN0eWxlIC1hbmQgJHN0eWxlLlZvaWNlKSB7IFtzdHJp"
    s = s & "bmddJHN0eWxlLlZvaWNlIH0gZWxzZSB7ICRuYW1lLlNwbGl0KCIoIilbMF0uVHJpbSgpIH0KICAgICAgICBbcHNjdXN0b21vYmplY3RdQHsgTENJRD0kbGNp"
    s = s & "ZDsgQ29kZT0kdHdvLlRvVXBwZXJJbnZhcmlhbnQoKTsgS2V5PSR0d287IE5hbWU9JG5hbWU7IFZvaWNlPSR2b2ljZSB9CiAgICB9CgogICAgZnVuY3Rpb24g"
    s = s & "VGVzdC1UeXBpbmdLZXkoW2ludF0kS2V5KSB7CiAgICAgICAgKCRLZXkgLWdlIDB4MzAgLWFuZCAkS2V5IC1sZSAweDM5KSAtb3IKICAgICAgICAoJEtleSAt"
    s = s & "Z2UgMHg0MSAtYW5kICRLZXkgLWxlIDB4NUEpIC1vcgogICAgICAgICgkS2V5IC1nZSAweDYwIC1hbmQgJEtleSAtbGUgMHg2OSkgLW9yCiAgICAgICAgKCRL"
    s = s & "ZXkgLWluIEAoMHgyMCwweEJBLDB4QkIsMHhCQywweEJELDB4QkUsMHhCRiwweEMwLDB4REIsMHhEQywweERELDB4REUsMHg2QSwweDZCLDB4NkQsMHg2RSww"
    s = s & "eDZGKSkKICAgIH0KCiAgICBmdW5jdGlvbiBHZXQtQXBwUHJvZmlsZShbc3RyaW5nXSRQcm9jZXNzKSB7CiAgICAgICAgJHByb2ZpbGUgPSAkc2NyaXB0OkNv"
    s = s & "bmZpZy5Qcm9maWxlcy4kUHJvY2VzcwogICAgICAgIGlmICgkbnVsbCAtZXEgJHByb2ZpbGUpIHsgcmV0dXJuICRudWxsIH0KICAgICAgICByZXR1cm4gJHBy"
    s = s & "b2ZpbGUKICAgIH0KCiAgICBmdW5jdGlvbiBUZXN0LVF1aWV0SG91cnMgewogICAgICAgIGlmICgtbm90ICRzY3JpcHQ6Q29uZmlnLlF1aWV0SG91cnNFbmFi"
    s = s & "bGVkKSB7IHJldHVybiAkZmFsc2UgfQogICAgICAgIHRyeSB7CiAgICAgICAgICAgICRub3cgPSAoR2V0LURhdGUpLlRpbWVPZkRheQogICAgICAgICAgICAk"
    s = s & "c3RhcnQgPSBbVGltZVNwYW5dOjpQYXJzZSgkc2NyaXB0OkNvbmZpZy5RdWlldFN0YXJ0KQogICAgICAgICAgICAkZW5kID0gW1RpbWVTcGFuXTo6UGFyc2Uo"
    s = s & "JHNjcmlwdDpDb25maWcuUXVpZXRFbmQpCiAgICAgICAgICAgIGlmICgkc3RhcnQgLWxlICRlbmQpIHsgcmV0dXJuICRub3cgLWdlICRzdGFydCAtYW5kICRu"
    s = s & "b3cgLWx0ICRlbmQgfQogICAgICAgICAgICByZXR1cm4gJG5vdyAtZ2UgJHN0YXJ0IC1vciAkbm93IC1sdCAkZW5kCiAgICAgICAgfSBjYXRjaCB7IHJldHVy"
    s = s & "biAkZmFsc2UgfQogICAgfQoKICAgIGZ1bmN0aW9uIFRlc3QtTm90aWZpY2F0aW9uQWxsb3dlZChbc3RyaW5nXSRQcm9jZXNzKSB7CiAgICAgICAgaWYgKChH"
    s = s & "ZXQtRGF0ZSkgLWx0ICRzY3JpcHQ6UGF1c2VkVW50aWwpIHsgcmV0dXJuICRmYWxzZSB9CiAgICAgICAgaWYgKFRlc3QtUXVpZXRIb3VycykgeyByZXR1cm4g"
    s = s & "JGZhbHNlIH0KICAgICAgICBpZiAoJHNjcmlwdDpDb25maWcuU3VwcHJlc3NGdWxsc2NyZWVuIC1hbmQgW1NvcmVuYU5hdGl2ZV06OklzRnVsbHNjcmVlbigp"
    s = s & "KSB7IHJldHVybiAkZmFsc2UgfQogICAgICAgIGlmICgkc2NyaXB0OkNvbmZpZy5BbGxvd2VkQXBwcy5Db3VudCAtZ3QgMCAtYW5kICRQcm9jZXNzIC1ub3Rp"
    s = s & "biAkc2NyaXB0OkNvbmZpZy5BbGxvd2VkQXBwcykgeyByZXR1cm4gJGZhbHNlIH0KICAgICAgICBpZiAoJFByb2Nlc3MgLWluICRzY3JpcHQ6Q29uZmlnLkJs"
    s = s & "b2NrZWRBcHBzKSB7IHJldHVybiAkZmFsc2UgfQogICAgICAgIHJldHVybiAkdHJ1ZQogICAgfQoKICAgIGZ1bmN0aW9uIFRlc3QtRWRpdGFibGVDb250ZXh0"
    s = s & "KFtzdHJpbmddJFByb2Nlc3MpIHsKICAgICAgICB0cnkgeyBpZiAoW1NvcmVuYU5hdGl2ZV06Okhhc0NhcmV0KCkpIHsgcmV0dXJuICR0cnVlIH0gfSBjYXRj"
    s = s & "aCB7fQogICAgICAgIHRyeSB7CiAgICAgICAgICAgICRlbCA9IFtXaW5kb3dzLkF1dG9tYXRpb24uQXV0b21hdGlvbkVsZW1lbnRdOjpGb2N1c2VkRWxlbWVu"
    s = s & "dAogICAgICAgICAgICBpZiAoJGVsKSB7CiAgICAgICAgICAgICAgICAkY3QgPSAkZWwuQ3VycmVudC5Db250cm9sVHlwZS5Qcm9ncmFtbWF0aWNOYW1lCiAg"
    s = s & "ICAgICAgICAgICAgICBpZiAoJGN0IC1tYXRjaCAiRWRpdHxDb21ib0JveHxEb2N1bWVudCIpIHsgcmV0dXJuICR0cnVlIH0KICAgICAgICAgICAgICAgICRw"
    s = s & "ID0gJG51bGwKICAgICAgICAgICAgICAgIGlmICgkZWwuVHJ5R2V0Q3VycmVudFBhdHRlcm4oW1dpbmRvd3MuQXV0b21hdGlvbi5WYWx1ZVBhdHRlcm5dOjpQ"
    s = s & "YXR0ZXJuLFtyZWZdJHApIC1hbmQgLW5vdCAkcC5DdXJyZW50LklzUmVhZE9ubHkpIHsgcmV0dXJuICR0cnVlIH0KICAgICAgICAgICAgICAgIGlmICgkZWwu"
    s = s & "VHJ5R2V0Q3VycmVudFBhdHRlcm4oW1dpbmRvd3MuQXV0b21hdGlvbi5UZXh0UGF0dGVybl06OlBhdHRlcm4sW3JlZl0kcCkpIHsgcmV0dXJuICR0cnVlIH0K"
    s = s & "ICAgICAgICAgICAgfQogICAgICAgIH0gY2F0Y2gge30KICAgICAgICByZXR1cm4gJHNjcmlwdDpDb25maWcuQnJvd3NlckZhbGxiYWNrIC1hbmQgJFByb2Nl"
    s = s & "c3MgLW1hdGNoICJeKGNocm9tZXxtc2VkZ2V8ZmlyZWZveHxicmF2ZXxvcGVyYXx2aXZhbGRpfGFyY3xjaHJvbWl1bXxjaGF0Z3B0fGFwcGxpY2F0aW9uZnJh"
    s = s & "bWVob3N0fHRleHRpbnB1dGhvc3R8c2VhcmNoaG9zdCkkIgogICAgfQoKICAgIHRyeSB7CiAgICAgICAgJHNjcmlwdDpWb2ljZSA9IE5ldy1PYmplY3QgLUNv"
    s = s & "bU9iamVjdCBTQVBJLlNwVm9pY2UKICAgICAgICAkc2NyaXB0OlZvaWNlLlZvbHVtZSA9IFtNYXRoXTo6TWF4KDAsW01hdGhdOjpNaW4oMTAwLFtpbnRdJHNj"
    s = s & "cmlwdDpDb25maWcuVm9pY2VWb2x1bWUpKQogICAgfSBjYXRjaCB7ICRzY3JpcHQ6Vm9pY2UgPSAkbnVsbDsgV3JpdGUtTG9nICJWb2ljZSB1bmF2YWlsYWJs"
    s = s & "ZTogJCgkXy5FeGNlcHRpb24uTWVzc2FnZSkiIH0KCiAgICBmdW5jdGlvbiBHZXQtQ29sb3IoW3N0cmluZ10kS2V5KSB7CiAgICAgICAgdHJ5IHsKICAgICAg"
    s = s & "ICAgICAgJGhleCA9IFtzdHJpbmddJHNjcmlwdDpDb25maWcuTGFuZ3VhZ2VTdHlsZXMuJEtleS5Db2xvcgogICAgICAgICAgICByZXR1cm4gW0RyYXdpbmcu"
    s = s & "Q29sb3JUcmFuc2xhdG9yXTo6RnJvbUh0bWwoJGhleCkKICAgICAgICB9IGNhdGNoIHsgcmV0dXJuIFtEcmF3aW5nLkNvbG9yXTo6RnJvbUFyZ2IoMCw4NCwx"
    s = s & "NDApIH0KICAgIH0KCiAgICBmdW5jdGlvbiBHZXQtTGFuZ3VhZ2VJY29uKCRJbmZvKSB7CiAgICAgICAgaWYgKCRzY3JpcHQ6SWNvbkNhY2hlLkNvbnRhaW5z"
    s = s & "S2V5KCRJbmZvLktleSkpIHsgcmV0dXJuICRzY3JpcHQ6SWNvbkNhY2hlWyRJbmZvLktleV0gfQogICAgICAgICRibXAgPSBbRHJhd2luZy5CaXRtYXBdOjpu"
    s = s & "ZXcoNjQsNjQpCiAgICAgICAgJGcgPSBbRHJhd2luZy5HcmFwaGljc106OkZyb21JbWFnZSgkYm1wKQogICAgICAgICRnLlNtb290aGluZ01vZGUgPSAiQW50"
    s = s & "aUFsaWFzIgogICAgICAgICRnLkNsZWFyKFtEcmF3aW5nLkNvbG9yXTo6VHJhbnNwYXJlbnQpCiAgICAgICAgJGJydXNoID0gW0RyYXdpbmcuU29saWRCcnVz"
    s = s & "aF06Om5ldygoR2V0LUNvbG9yICRJbmZvLktleSkpCiAgICAgICAgJGcuRmlsbEVsbGlwc2UoJGJydXNoLDIsMiw2MCw2MCkKICAgICAgICAkZm9udCA9IFtE"
    s = s & "cmF3aW5nLkZvbnRdOjpuZXcoIlNlZ29lIFVJIiwyMCxbRHJhd2luZy5Gb250U3R5bGVdOjpCb2xkLFtEcmF3aW5nLkdyYXBoaWNzVW5pdF06OlBpeGVsKQog"
    s = s & "ICAgICAgICRzaXplID0gJGcuTWVhc3VyZVN0cmluZygkSW5mby5Db2RlLCRmb250KQogICAgICAgICRnLkRyYXdTdHJpbmcoJEluZm8uQ29kZSwkZm9udCxb"
    s = s & "RHJhd2luZy5CcnVzaGVzXTo6V2hpdGUsKDY0LSRzaXplLldpZHRoKS8yLCg2NC0kc2l6ZS5IZWlnaHQpLzIpCiAgICAgICAgJGhhbmRsZSA9ICRibXAuR2V0"
    s = s & "SGljb24oKQogICAgICAgICRpY29uID0gW0RyYXdpbmcuSWNvbl06OkZyb21IYW5kbGUoJGhhbmRsZSkuQ2xvbmUoKQogICAgICAgIFtTb3JlbmFOYXRpdmVd"
    s = s & "OjpSZWxlYXNlSWNvbigkaGFuZGxlKQogICAgICAgICRmb250LkRpc3Bvc2UoKTsgJGJydXNoLkRpc3Bvc2UoKTsgJGcuRGlzcG9zZSgpOyAkYm1wLkRpc3Bv"
    s = s & "c2UoKQogICAgICAgICRzY3JpcHQ6SWNvbkNhY2hlWyRJbmZvLktleV0gPSAkaWNvbgogICAgICAgIHJldHVybiAkaWNvbgogICAgfQoKICAgICRzY3JpcHQ6"
    s = s & "T3ZlcmxheSA9IE5ldy1PYmplY3QgV2luZG93cy5Gb3Jtcy5Gb3JtCiAgICAkc2NyaXB0Ok92ZXJsYXkuRm9ybUJvcmRlclN0eWxlID0gIk5vbmUiCiAgICAk"
    s = s & "c2NyaXB0Ok92ZXJsYXkuU2hvd0luVGFza2JhciA9ICRmYWxzZQogICAgJHNjcmlwdDpPdmVybGF5LlRvcE1vc3QgPSAkdHJ1ZQogICAgJHNjcmlwdDpPdmVy"
    s = s & "bGF5LlN0YXJ0UG9zaXRpb24gPSAiTWFudWFsIgogICAgJHNjcmlwdDpPdmVybGF5TGFiZWwgPSBOZXctT2JqZWN0IFdpbmRvd3MuRm9ybXMuTGFiZWwKICAg"
    s = s & "ICRzY3JpcHQ6T3ZlcmxheUxhYmVsLkRvY2sgPSAiRmlsbCIKICAgICRzY3JpcHQ6T3ZlcmxheUxhYmVsLlRleHRBbGlnbiA9ICJNaWRkbGVDZW50ZXIiCiAg"
    s = s & "ICAkc2NyaXB0Ok92ZXJsYXlMYWJlbC5Gb3JlQ29sb3IgPSBbRHJhd2luZy5Db2xvcl06OldoaXRlCiAgICAkc2NyaXB0Ok92ZXJsYXkuQ29udHJvbHMuQWRk"
    s = s & "KCRzY3JpcHQ6T3ZlcmxheUxhYmVsKQogICAgJHNjcmlwdDpPdmVybGF5VGltZXIgPSBOZXctT2JqZWN0IFdpbmRvd3MuRm9ybXMuVGltZXIKICAgICRzY3Jp"
    s = s & "cHQ6T3ZlcmxheVRpbWVyLkludGVydmFsID0gNDAKICAgICRzY3JpcHQ6T3ZlcmxheVRpbWVyLkFkZF9UaWNrKHsKICAgICAgICAkZWxhcHNlZCA9ICgoR2V0"
    s = s & "LURhdGUpLSRzY3JpcHQ6T3ZlcmxheVNob3duKS5Ub3RhbE1pbGxpc2Vjb25kcwogICAgICAgIGlmICgkZWxhcHNlZCAtZ2UgW2ludF0kc2NyaXB0OkNvbmZp"
    s = s & "Zy5PdmVybGF5RHVyYXRpb25NcykgewogICAgICAgICAgICAkc2NyaXB0Ok92ZXJsYXlUaW1lci5TdG9wKCk7ICRzY3JpcHQ6T3ZlcmxheS5IaWRlKCk7IHJl"
    s = s & "dHVybgogICAgICAgIH0KICAgICAgICBpZiAoJHNjcmlwdDpDb25maWcuT3ZlcmxheUFuaW1hdGlvbiAtZXEgIkZhZGUiKSB7CiAgICAgICAgICAgICRyZW1h"
    s = s & "aW5pbmcgPSAxIC0gKCRlbGFwc2VkL1tkb3VibGVdJHNjcmlwdDpDb25maWcuT3ZlcmxheUR1cmF0aW9uTXMpCiAgICAgICAgICAgICRzY3JpcHQ6T3Zlcmxh"
    s = s & "eS5PcGFjaXR5ID0gW01hdGhdOjpNYXgoLjA4LCgkc2NyaXB0OkNvbmZpZy5PdmVybGF5T3BhY2l0eS8xMDAuMCkqJHJlbWFpbmluZykKICAgICAgICB9CiAg"
    s = s & "ICB9KQoKICAgIGZ1bmN0aW9uIFNob3ctT3ZlcmxheSgkSW5mbykgewogICAgICAgIGlmICgtbm90ICRzY3JpcHQ6Q29uZmlnLk92ZXJsYXlFbmFibGVkKSB7"
    s = s & "IHJldHVybiB9CiAgICAgICAgJHByb2ZpbGUgPSBHZXQtQXBwUHJvZmlsZSAoW1NvcmVuYU5hdGl2ZV06OlByb2Nlc3NOYW1lKCkpCiAgICAgICAgaWYgKCRw"
    s = s & "cm9maWxlIC1hbmQgJG51bGwgLW5lICRwcm9maWxlLk92ZXJsYXlFbmFibGVkIC1hbmQgLW5vdCAkcHJvZmlsZS5PdmVybGF5RW5hYmxlZCkgeyByZXR1cm4g"
    s = s & "fQogICAgICAgICRzaXplID0gW01hdGhdOjpNYXgoNjAsW01hdGhdOjpNaW4oNDAwLFtpbnRdJHNjcmlwdDpDb25maWcuT3ZlcmxheVNpemUpKQogICAgICAg"
    s = s & "ICRzY3JpcHQ6T3ZlcmxheS5TaXplID0gW0RyYXdpbmcuU2l6ZV06Om5ldygkc2l6ZSwkc2l6ZSkKICAgICAgICAkc2NyaXB0Ok92ZXJsYXkuQmFja0NvbG9y"
    s = s & "ID0gR2V0LUNvbG9yICRJbmZvLktleQogICAgICAgICRvbGRGb250ID0gJHNjcmlwdDpPdmVybGF5TGFiZWwuRm9udAogICAgICAgICRzY3JpcHQ6T3Zlcmxh"
    s = s & "eUxhYmVsLkZvbnQgPSBbRHJhd2luZy5Gb250XTo6bmV3KCJTZWdvZSBVSSIsW2ludF0oJHNpemUqLjM2KSxbRHJhd2luZy5Gb250U3R5bGVdOjpCb2xkLFtE"
    s = s & "cmF3aW5nLkdyYXBoaWNzVW5pdF06OlBpeGVsKQogICAgICAgIGlmICgkb2xkRm9udCkgeyAkb2xkRm9udC5EaXNwb3NlKCkgfQogICAgICAgICRzY3JpcHQ6"
    s = s & "T3ZlcmxheUxhYmVsLlRleHQgPSAkSW5mby5Db2RlCiAgICAgICAgJHNjcmVlbiA9IFtXaW5kb3dzLkZvcm1zLlNjcmVlbl06OkZyb21IYW5kbGUoW1NvcmVu"
    s = s & "YU5hdGl2ZV06OkZvcmVncm91bmRXaW5kb3coKSkKICAgICAgICAkd2EgPSAkc2NyZWVuLldvcmtpbmdBcmVhCiAgICAgICAgc3dpdGNoICgkc2NyaXB0OkNv"
    s = s & "bmZpZy5PdmVybGF5UG9zaXRpb24pIHsKICAgICAgICAgICAgIlRvcExlZnQiICAgICB7ICR4PSR3YS5MZWZ0KzIwOyAkeT0kd2EuVG9wKzIwIH0KICAgICAg"
    s = s & "ICAgICAgIlRvcFJpZ2h0IiAgICB7ICR4PSR3YS5SaWdodC0kc2l6ZS0yMDsgJHk9JHdhLlRvcCsyMCB9CiAgICAgICAgICAgICJCb3R0b21MZWZ0IiAgeyAk"
    s = s & "eD0kd2EuTGVmdCsyMDsgJHk9JHdhLkJvdHRvbS0kc2l6ZS0yMCB9CiAgICAgICAgICAgICJDZW50ZXIiICAgICAgeyAkeD0kd2EuTGVmdCsoKCR3YS5XaWR0"
    s = s & "aC0kc2l6ZSkvMik7ICR5PSR3YS5Ub3ArKCgkd2EuSGVpZ2h0LSRzaXplKS8yKSB9CiAgICAgICAgICAgIGRlZmF1bHQgICAgICAgeyAkeD0kd2EuUmlnaHQt"
    s = s & "JHNpemUtMjA7ICR5PSR3YS5Cb3R0b20tJHNpemUtMjAgfQogICAgICAgIH0KICAgICAgICAkc2NyaXB0Ok92ZXJsYXkuTG9jYXRpb24gPSBbRHJhd2luZy5Q"
    s = s & "b2ludF06Om5ldyhbaW50XSR4LFtpbnRdJHkpCiAgICAgICAgJHNjcmlwdDpPdmVybGF5Lk9wYWNpdHkgPSAkc2NyaXB0OkNvbmZpZy5PdmVybGF5T3BhY2l0"
    s = s & "eS8xMDAuMAogICAgICAgICRzY3JpcHQ6T3ZlcmxheVNob3duID0gR2V0LURhdGUKICAgICAgICAkc2NyaXB0Ok92ZXJsYXkuU2hvdygpOyAkc2NyaXB0Ok92"
    s = s & "ZXJsYXkuQnJpbmdUb0Zyb250KCkKICAgICAgICAkc2NyaXB0Ok92ZXJsYXlUaW1lci5TdG9wKCk7ICRzY3JpcHQ6T3ZlcmxheVRpbWVyLlN0YXJ0KCkKICAg"
    s = s & "IH0KCiAgICBmdW5jdGlvbiBTcGVhay1MYW5ndWFnZSgkSW5mbykgewogICAgICAgIGlmICgtbm90ICRzY3JpcHQ6Q29uZmlnLlZvaWNlRW5hYmxlZCAtb3Ig"
    s = s & "LW5vdCAkc2NyaXB0OlZvaWNlKSB7IHJldHVybiB9CiAgICAgICAgJHByb2ZpbGUgPSBHZXQtQXBwUHJvZmlsZSAoW1NvcmVuYU5hdGl2ZV06OlByb2Nlc3NO"
    s = s & "YW1lKCkpCiAgICAgICAgaWYgKCRwcm9maWxlIC1hbmQgJG51bGwgLW5lICRwcm9maWxlLlZvaWNlRW5hYmxlZCAtYW5kIC1ub3QgJHByb2ZpbGUuVm9pY2VF"
    s = s & "bmFibGVkKSB7IHJldHVybiB9CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgJHNjcmlwdDpWb2ljZS5Wb2x1bWUgPSBbaW50XSRzY3JpcHQ6Q29uZmlnLlZv"
    s = s & "aWNlVm9sdW1lCiAgICAgICAgICAgIFt2b2lkXSRzY3JpcHQ6Vm9pY2UuU3BlYWsoJEluZm8uVm9pY2UsMykKICAgICAgICB9IGNhdGNoIHsgV3JpdGUtTG9n"
    s = s & "ICJTcGVhayBmYWlsZWQ6ICQoJF8uRXhjZXB0aW9uLk1lc3NhZ2UpIiB9CiAgICB9CgogICAgZnVuY3Rpb24gVXBkYXRlLVRyYXkoJEluZm8pIHsKICAgICAg"
    s = s & "ICB0cnkgewogICAgICAgICAgICAkc2NyaXB0Ok5vdGlmeS5JY29uID0gR2V0LUxhbmd1YWdlSWNvbiAkSW5mbwogICAgICAgICAgICAkc2NyaXB0Ok5vdGlm"
    s = s & "eS5UZXh0ID0gIiQoJHNjcmlwdDpBcHBOYW1lKSAtICQoJEluZm8uQ29kZSkiCiAgICAgICAgICAgICRzY3JpcHQ6Q3VycmVudEl0ZW0uVGV4dCA9ICJDdXJy"
    s = s & "ZW50OiAkKCRJbmZvLkNvZGUpIC0gJCgkSW5mby5OYW1lKSIKICAgICAgICB9IGNhdGNoIHsgV3JpdGUtTG9nICJUcmF5IHVwZGF0ZSBmYWlsZWQ6ICQoJF8u"
    s = s & "RXhjZXB0aW9uLk1lc3NhZ2UpIiB9CiAgICB9CgogICAgZnVuY3Rpb24gSW52b2tlLU5vdGljZSgkSW5mbykgewogICAgICAgIFNwZWFrLUxhbmd1YWdlICRJ"
    s = s & "bmZvCiAgICAgICAgU2hvdy1PdmVybGF5ICRJbmZvCiAgICAgICAgVXBkYXRlLVRyYXkgJEluZm8KICAgICAgICAkc2NyaXB0Okxhc3ROb3RpY2UgPSBHZXQt"
    s = s & "RGF0ZQogICAgfQoKICAgIGZ1bmN0aW9uIFByb2Nlc3MtUGVuZGluZ0tleSB7CiAgICAgICAgaWYgKCRzY3JpcHQ6UGVuZGluZ0tleSAtbHQgMCkgeyByZXR1"
    s = s & "cm4gfQogICAgICAgIGlmICgoKEdldC1EYXRlKS0kc2NyaXB0OlBlbmRpbmdBdCkuVG90YWxNaWxsaXNlY29uZHMgLWx0IDgwKSB7IHJldHVybiB9CiAgICAg"
    s = s & "ICAgJGtleSA9ICRzY3JpcHQ6UGVuZGluZ0tleQogICAgICAgICRzY3JpcHQ6UGVuZGluZ0tleSA9IC0xCiAgICAgICAgaWYgKC1ub3QgKFRlc3QtVHlwaW5n"
    s = s & "S2V5ICRrZXkpKSB7IHJldHVybiB9CiAgICAgICAgJHByb2Nlc3MgPSBbU29yZW5hTmF0aXZlXTo6UHJvY2Vzc05hbWUoKQogICAgICAgICRpbmZvID0gR2V0"
    s = s & "LUxhbmd1YWdlSW5mbwogICAgICAgIGlmICgkaW5mby5MQ0lEIC1uZSAkc2NyaXB0Okxhc3RMQ0lEKSB7ICRzY3JpcHQ6TGFzdExDSUQ9JGluZm8uTENJRDsg"
    s = s & "VXBkYXRlLVRyYXkgJGluZm8gfQogICAgICAgIGlmICgtbm90IChUZXN0LU5vdGlmaWNhdGlvbkFsbG93ZWQgJHByb2Nlc3MpKSB7IHJldHVybiB9CiAgICAg"
    s = s & "ICAgaWYgKC1ub3QgKFRlc3QtRWRpdGFibGVDb250ZXh0ICRwcm9jZXNzKSkgeyByZXR1cm4gfQogICAgICAgICRub3cgPSBHZXQtRGF0ZQogICAgICAgIGlm"
    s = s & "ICgoJG5vdy0kc2NyaXB0Okxhc3RUeXBpbmcpLlRvdGFsTWlsbGlzZWNvbmRzIC1ndCBbaW50XSRzY3JpcHQ6Q29uZmlnLklkbGVSZXNldE1zKSB7IEludm9r"
    s = s & "ZS1Ob3RpY2UgJGluZm8gfQogICAgICAgICRzY3JpcHQ6TGFzdFR5cGluZyA9ICRub3cKICAgIH0KCiAgICBmdW5jdGlvbiBTaG93LVNldHRpbmdzIHsKICAg"
    s = s & "ICAgICBpZiAoJHNjcmlwdDpTZXR0aW5nc09wZW4pIHsgcmV0dXJuIH0KICAgICAgICAkc2NyaXB0OlNldHRpbmdzT3BlbiA9ICR0cnVlCiAgICAgICAgdHJ5"
    s = s & "IHsKICAgICAgICAgICAgJGYgPSBOZXctT2JqZWN0IFdpbmRvd3MuRm9ybXMuRm9ybQogICAgICAgICAgICAkZi5UZXh0ID0gIiQoJHNjcmlwdDpBcHBOYW1l"
    s = s & "KSAkKCRzY3JpcHQ6VmVyc2lvbikgLSBTZXR0aW5ncyIKICAgICAgICAgICAgJGYuU3RhcnRQb3NpdGlvbiA9ICJDZW50ZXJTY3JlZW4iCiAgICAgICAgICAg"
    s = s & "ICRmLlNpemUgPSBbRHJhd2luZy5TaXplXTo6bmV3KDY1MCw1OTApCiAgICAgICAgICAgICRmLk1pbmltdW1TaXplID0gJGYuU2l6ZQogICAgICAgICAgICAk"
    s = s & "Zi5Gb250ID0gW0RyYXdpbmcuRm9udF06Om5ldygiU2Vnb2UgVUkiLDkpCiAgICAgICAgICAgICR0YWJzID0gTmV3LU9iamVjdCBXaW5kb3dzLkZvcm1zLlRh"
    s = s & "YkNvbnRyb2wKICAgICAgICAgICAgJHRhYnMuRG9jayA9ICJGaWxsIgogICAgICAgICAgICAkZ2VuZXJhbCA9IE5ldy1PYmplY3QgV2luZG93cy5Gb3Jtcy5U"
    s = s & "YWJQYWdlICJHZW5lcmFsIgogICAgICAgICAgICAkZGlzcGxheSA9IE5ldy1PYmplY3QgV2luZG93cy5Gb3Jtcy5UYWJQYWdlICJEaXNwbGF5IgogICAgICAg"
    s = s & "ICAgICAkcHJpdmFjeSA9IE5ldy1PYmplY3QgV2luZG93cy5Gb3Jtcy5UYWJQYWdlICJBcHBzICYgZm9jdXMiCiAgICAgICAgICAgIFt2b2lkXSR0YWJzLlRh"
    s = s & "YlBhZ2VzLkFkZFJhbmdlKEAoJGdlbmVyYWwsJGRpc3BsYXksJHByaXZhY3kpKQogICAgICAgICAgICAkZi5Db250cm9scy5BZGQoJHRhYnMpCgogICAgICAg"
    s = s & "ICAgICAkdm9pY2UgPSBOZXctT2JqZWN0IFdpbmRvd3MuRm9ybXMuQ2hlY2tCb3gKICAgICAgICAgICAgJHZvaWNlLlRleHQ9IlZvaWNlIGFubm91bmNlbWVu"
    s = s & "dCI7ICR2b2ljZS5DaGVja2VkPSRzY3JpcHQ6Q29uZmlnLlZvaWNlRW5hYmxlZDsgJHZvaWNlLlNldEJvdW5kcygyNSwzMCwyNTAsMjUpOyAkZ2VuZXJhbC5D"
    s = s & "b250cm9scy5BZGQoJHZvaWNlKQogICAgICAgICAgICAkdm9sTGFiZWw9TmV3LU9iamVjdCBXaW5kb3dzLkZvcm1zLkxhYmVsOyAkdm9sTGFiZWwuVGV4dD0i"
    s = s & "Vm9pY2Ugdm9sdW1lIjsgJHZvbExhYmVsLlNldEJvdW5kcygyNSw3NSwxNTAsMjApOyAkZ2VuZXJhbC5Db250cm9scy5BZGQoJHZvbExhYmVsKQogICAgICAg"
    s = s & "ICAgICAkdm9sPU5ldy1PYmplY3QgV2luZG93cy5Gb3Jtcy5UcmFja0JhcjsgJHZvbC5NaW5pbXVtPTA7ICR2b2wuTWF4aW11bT0xMDA7ICR2b2wuVmFsdWU9"
    s = s & "W2ludF0kc2NyaXB0OkNvbmZpZy5Wb2ljZVZvbHVtZTsgJHZvbC5TZXRCb3VuZHMoMTcwLDY1LDM2MCw0NSk7ICRnZW5lcmFsLkNvbnRyb2xzLkFkZCgkdm9s"
    s = s & "KQogICAgICAgICAgICAkZmlyc3Q9TmV3LU9iamVjdCBXaW5kb3dzLkZvcm1zLkNoZWNrQm94OyAkZmlyc3QuVGV4dD0iTm90aWZ5IG9ubHkgYWZ0ZXIgdHlw"
    s = s & "aW5nIHN0YXJ0cyI7ICRmaXJzdC5DaGVja2VkPSRzY3JpcHQ6Q29uZmlnLk5vdGlmeU9uRmlyc3RUeXBlOyAkZmlyc3QuU2V0Qm91bmRzKDI1LDEyNSwzMjAs"
    s = s & "MjUpOyAkZ2VuZXJhbC5Db250cm9scy5BZGQoJGZpcnN0KQogICAgICAgICAgICAkcXVpZXQ9TmV3LU9iamVjdCBXaW5kb3dzLkZvcm1zLkNoZWNrQm94OyAk"
    s = s & "cXVpZXQuVGV4dD0iUXVpZXQgaG91cnMiOyAkcXVpZXQuQ2hlY2tlZD0kc2NyaXB0OkNvbmZpZy5RdWlldEhvdXJzRW5hYmxlZDsgJHF1aWV0LlNldEJvdW5k"
    s = s & "cygyNSwxNzAsMTYwLDI1KTsgJGdlbmVyYWwuQ29udHJvbHMuQWRkKCRxdWlldCkKICAgICAgICAgICAgJHFzPU5ldy1PYmplY3QgV2luZG93cy5Gb3Jtcy5U"
    s = s & "ZXh0Qm94OyAkcXMuVGV4dD0kc2NyaXB0OkNvbmZpZy5RdWlldFN0YXJ0OyAkcXMuU2V0Qm91bmRzKDE5MCwxNjgsNzAsMjUpOyAkZ2VuZXJhbC5Db250cm9s"
    s = s & "cy5BZGQoJHFzKQogICAgICAgICAgICAkcWU9TmV3LU9iamVjdCBXaW5kb3dzLkZvcm1zLlRleHRCb3g7ICRxZS5UZXh0PSRzY3JpcHQ6Q29uZmlnLlF1aWV0"
    s = s & "RW5kOyAkcWUuU2V0Qm91bmRzKDI4MCwxNjgsNzAsMjUpOyAkZ2VuZXJhbC5Db250cm9scy5BZGQoJHFlKQoKICAgICAgICAgICAgJG92ZXJsYXk9TmV3LU9i"
    s = s & "amVjdCBXaW5kb3dzLkZvcm1zLkNoZWNrQm94OyAkb3ZlcmxheS5UZXh0PSJWaXN1YWwgb3ZlcmxheSI7ICRvdmVybGF5LkNoZWNrZWQ9JHNjcmlwdDpDb25m"
    s = s & "aWcuT3ZlcmxheUVuYWJsZWQ7ICRvdmVybGF5LlNldEJvdW5kcygyNSwzMCwyMjAsMjUpOyAkZGlzcGxheS5Db250cm9scy5BZGQoJG92ZXJsYXkpCiAgICAg"
    s = s & "ICAgICAgICRzaXplTGFiZWw9TmV3LU9iamVjdCBXaW5kb3dzLkZvcm1zLkxhYmVsOyAkc2l6ZUxhYmVsLlRleHQ9IlNpemUgKDYwLTQwMCkiOyAkc2l6ZUxh"
    s = s & "YmVsLlNldEJvdW5kcygyNSw3OCwxMzAsMjApOyAkZGlzcGxheS5Db250cm9scy5BZGQoJHNpemVMYWJlbCkKICAgICAgICAgICAgJHNpemU9TmV3LU9iamVj"
    s = s & "dCBXaW5kb3dzLkZvcm1zLk51bWVyaWNVcERvd247ICRzaXplLk1pbmltdW09NjA7ICRzaXplLk1heGltdW09NDAwOyAkc2l6ZS5WYWx1ZT1baW50XSRzY3Jp"
    s = s & "cHQ6Q29uZmlnLk92ZXJsYXlTaXplOyAkc2l6ZS5TZXRCb3VuZHMoMTcwLDc1LDEwMCwyNSk7ICRkaXNwbGF5LkNvbnRyb2xzLkFkZCgkc2l6ZSkKICAgICAg"
    s = s & "ICAgICAgJGR1cmF0aW9uTGFiZWw9TmV3LU9iamVjdCBXaW5kb3dzLkZvcm1zLkxhYmVsOyAkZHVyYXRpb25MYWJlbC5UZXh0PSJEdXJhdGlvbiAobXMpIjsg"
    s = s & "JGR1cmF0aW9uTGFiZWwuU2V0Qm91bmRzKDI1LDEyMCwxMzAsMjApOyAkZGlzcGxheS5Db250cm9scy5BZGQoJGR1cmF0aW9uTGFiZWwpCiAgICAgICAgICAg"
    s = s & "ICRkdXJhdGlvbj1OZXctT2JqZWN0IFdpbmRvd3MuRm9ybXMuTnVtZXJpY1VwRG93bjsgJGR1cmF0aW9uLk1pbmltdW09MzAwOyAkZHVyYXRpb24uTWF4aW11"
    s = s & "bT0xMDAwMDsgJGR1cmF0aW9uLkluY3JlbWVudD0xMDA7ICRkdXJhdGlvbi5WYWx1ZT1baW50XSRzY3JpcHQ6Q29uZmlnLk92ZXJsYXlEdXJhdGlvbk1zOyAk"
    s = s & "ZHVyYXRpb24uU2V0Qm91bmRzKDE3MCwxMTcsMTAwLDI1KTsgJGRpc3BsYXkuQ29udHJvbHMuQWRkKCRkdXJhdGlvbikKICAgICAgICAgICAgJHBvc2l0aW9u"
    s = s & "PU5ldy1PYmplY3QgV2luZG93cy5Gb3Jtcy5Db21ib0JveDsgJHBvc2l0aW9uLkRyb3BEb3duU3R5bGU9IkRyb3BEb3duTGlzdCI7IFt2b2lkXSRwb3NpdGlv"
    s = s & "bi5JdGVtcy5BZGRSYW5nZShAKCJCb3R0b21SaWdodCIsIkJvdHRvbUxlZnQiLCJUb3BSaWdodCIsIlRvcExlZnQiLCJDZW50ZXIiKSk7ICRwb3NpdGlvbi5T"
    s = s & "ZWxlY3RlZEl0ZW09W3N0cmluZ10kc2NyaXB0OkNvbmZpZy5PdmVybGF5UG9zaXRpb247ICRwb3NpdGlvbi5TZXRCb3VuZHMoMjUsMTY1LDE4MCwyOCk7ICRk"
    s = s & "aXNwbGF5LkNvbnRyb2xzLkFkZCgkcG9zaXRpb24pCiAgICAgICAgICAgICRhbmltYXRpb249TmV3LU9iamVjdCBXaW5kb3dzLkZvcm1zLkNvbWJvQm94OyAk"
    s = s & "YW5pbWF0aW9uLkRyb3BEb3duU3R5bGU9IkRyb3BEb3duTGlzdCI7IFt2b2lkXSRhbmltYXRpb24uSXRlbXMuQWRkUmFuZ2UoQCgiRmFkZSIsIk5vbmUiKSk7"
    s = s & "ICRhbmltYXRpb24uU2VsZWN0ZWRJdGVtPVtzdHJpbmddJHNjcmlwdDpDb25maWcuT3ZlcmxheUFuaW1hdGlvbjsgJGFuaW1hdGlvbi5TZXRCb3VuZHMoMjI1"
    s = s & "LDE2NSwxNTAsMjgpOyAkZGlzcGxheS5Db250cm9scy5BZGQoJGFuaW1hdGlvbikKICAgICAgICAgICAgJHByZXZpZXc9TmV3LU9iamVjdCBXaW5kb3dzLkZv"
    s = s & "cm1zLkJ1dHRvbjsgJHByZXZpZXcuVGV4dD0iUHJldmlldyI7ICRwcmV2aWV3LlNldEJvdW5kcygyNSwyMjAsMTAwLDMyKTsgJHByZXZpZXcuQWRkX0NsaWNr"
    s = s & "KHsgU2hvdy1PdmVybGF5IChHZXQtTGFuZ3VhZ2VJbmZvKSB9KTsgJGRpc3BsYXkuQ29udHJvbHMuQWRkKCRwcmV2aWV3KQoKICAgICAgICAgICAgJGZ1bGw9"
    s = s & "TmV3LU9iamVjdCBXaW5kb3dzLkZvcm1zLkNoZWNrQm94OyAkZnVsbC5UZXh0PSJTdXBwcmVzcyBpbiBmdWxsc2NyZWVuIGFwcHMiOyAkZnVsbC5DaGVja2Vk"
    s = s & "PSRzY3JpcHQ6Q29uZmlnLlN1cHByZXNzRnVsbHNjcmVlbjsgJGZ1bGwuU2V0Qm91bmRzKDI1LDMwLDMwMCwyNSk7ICRwcml2YWN5LkNvbnRyb2xzLkFkZCgk"
    s = s & "ZnVsbCkKICAgICAgICAgICAgJGJyb3dzZXI9TmV3LU9iamVjdCBXaW5kb3dzLkZvcm1zLkNoZWNrQm94OyAkYnJvd3Nlci5UZXh0PSJCcm93c2VyIGNvbXBh"
    s = s & "dGliaWxpdHkgZmFsbGJhY2siOyAkYnJvd3Nlci5DaGVja2VkPSRzY3JpcHQ6Q29uZmlnLkJyb3dzZXJGYWxsYmFjazsgJGJyb3dzZXIuU2V0Qm91bmRzKDI1"
    s = s & "LDcwLDMwMCwyNSk7ICRwcml2YWN5LkNvbnRyb2xzLkFkZCgkYnJvd3NlcikKICAgICAgICAgICAgJGJsPU5ldy1PYmplY3QgV2luZG93cy5Gb3Jtcy5MYWJl"
    s = s & "bDsgJGJsLlRleHQ9IkJsb2NrZWQgcHJvY2Vzc2VzIChvbmUgcGVyIGxpbmUpIjsgJGJsLlNldEJvdW5kcygyNSwxMTUsMzAwLDIyKTsgJHByaXZhY3kuQ29u"
    s = s & "dHJvbHMuQWRkKCRibCkKICAgICAgICAgICAgJGJsb2NrZWQ9TmV3LU9iamVjdCBXaW5kb3dzLkZvcm1zLlRleHRCb3g7ICRibG9ja2VkLk11bHRpbGluZT0k"
    s = s & "dHJ1ZTsgJGJsb2NrZWQuU2Nyb2xsQmFycz0iVmVydGljYWwiOyAkYmxvY2tlZC5UZXh0PSgkc2NyaXB0OkNvbmZpZy5CbG9ja2VkQXBwcyAtam9pbiAiYHJg"
    s = s & "biIpOyAkYmxvY2tlZC5TZXRCb3VuZHMoMjUsMTQ1LDU1MCwyMDApOyAkcHJpdmFjeS5Db250cm9scy5BZGQoJGJsb2NrZWQpCiAgICAgICAgICAgICRsb2dz"
    s = s & "PU5ldy1PYmplY3QgV2luZG93cy5Gb3Jtcy5CdXR0b247ICRsb2dzLlRleHQ9Ik9wZW4gbG9ncyI7ICRsb2dzLlNldEJvdW5kcygyNSwzNzAsMTAwLDMwKTsg"
    s = s & "JGxvZ3MuQWRkX0NsaWNrKHsgU3RhcnQtUHJvY2VzcyBleHBsb3Jlci5leGUgLUFyZ3VtZW50TGlzdCAiL3NlbGVjdCxgIiRzY3JpcHQ6TG9nUGF0aGAiIiB9"
    s = s & "KTsgJHByaXZhY3kuQ29udHJvbHMuQWRkKCRsb2dzKQoKICAgICAgICAgICAgJHNhdmU9TmV3LU9iamVjdCBXaW5kb3dzLkZvcm1zLkJ1dHRvbjsgJHNhdmUu"
    s = s & "VGV4dD0iU2F2ZSI7ICRzYXZlLkFuY2hvcj0iQm90dG9tLFJpZ2h0IjsgJHNhdmUuU2V0Qm91bmRzKDQ0NSw1MTAsODAsMzIpOyAkc2F2ZS5BZGRfQ2xpY2so"
    s = s & "ewogICAgICAgICAgICAgICAgJHNjcmlwdDpDb25maWcuVm9pY2VFbmFibGVkPSR2b2ljZS5DaGVja2VkOyAkc2NyaXB0OkNvbmZpZy5Wb2ljZVZvbHVtZT1b"
    s = s & "aW50XSR2b2wuVmFsdWUKICAgICAgICAgICAgICAgICRzY3JpcHQ6Q29uZmlnLk5vdGlmeU9uRmlyc3RUeXBlPSRmaXJzdC5DaGVja2VkOyAkc2NyaXB0OkNv"
    s = s & "bmZpZy5RdWlldEhvdXJzRW5hYmxlZD0kcXVpZXQuQ2hlY2tlZAogICAgICAgICAgICAgICAgJHNjcmlwdDpDb25maWcuUXVpZXRTdGFydD0kcXMuVGV4dDsg"
    s = s & "JHNjcmlwdDpDb25maWcuUXVpZXRFbmQ9JHFlLlRleHQKICAgICAgICAgICAgICAgICRzY3JpcHQ6Q29uZmlnLk92ZXJsYXlFbmFibGVkPSRvdmVybGF5LkNo"
    s = s & "ZWNrZWQ7ICRzY3JpcHQ6Q29uZmlnLk92ZXJsYXlTaXplPVtpbnRdJHNpemUuVmFsdWUKICAgICAgICAgICAgICAgICRzY3JpcHQ6Q29uZmlnLk92ZXJsYXlE"
    s = s & "dXJhdGlvbk1zPVtpbnRdJGR1cmF0aW9uLlZhbHVlOyAkc2NyaXB0OkNvbmZpZy5PdmVybGF5UG9zaXRpb249W3N0cmluZ10kcG9zaXRpb24uU2VsZWN0ZWRJ"
    s = s & "dGVtCiAgICAgICAgICAgICAgICAkc2NyaXB0OkNvbmZpZy5PdmVybGF5QW5pbWF0aW9uPVtzdHJpbmddJGFuaW1hdGlvbi5TZWxlY3RlZEl0ZW0KICAgICAg"
    s = s & "ICAgICAgICAgICRzY3JpcHQ6Q29uZmlnLlN1cHByZXNzRnVsbHNjcmVlbj0kZnVsbC5DaGVja2VkOyAkc2NyaXB0OkNvbmZpZy5Ccm93c2VyRmFsbGJhY2s9"
    s = s & "JGJyb3dzZXIuQ2hlY2tlZAogICAgICAgICAgICAgICAgJHNjcmlwdDpDb25maWcuQmxvY2tlZEFwcHM9QCgkYmxvY2tlZC5MaW5lcyB8IEZvckVhY2gtT2Jq"
    s = s & "ZWN0IHskXy5UcmltKCkuVG9Mb3dlckludmFyaWFudCgpfSB8IFdoZXJlLU9iamVjdCB7JF99KQogICAgICAgICAgICAgICAgU2F2ZS1Db25maWc7ICRmLkRp"
    s = s & "YWxvZ1Jlc3VsdD0iT0siOyAkZi5DbG9zZSgpCiAgICAgICAgICAgIH0pOyAkZi5Db250cm9scy5BZGQoJHNhdmUpCiAgICAgICAgICAgICRjYW5jZWw9TmV3"
    s = s & "LU9iamVjdCBXaW5kb3dzLkZvcm1zLkJ1dHRvbjsgJGNhbmNlbC5UZXh0PSJDYW5jZWwiOyAkY2FuY2VsLkFuY2hvcj0iQm90dG9tLFJpZ2h0IjsgJGNhbmNl"
    s = s & "bC5TZXRCb3VuZHMoNTM1LDUxMCw4MCwzMik7ICRjYW5jZWwuQWRkX0NsaWNrKHskZi5DbG9zZSgpfSk7ICRmLkNvbnRyb2xzLkFkZCgkY2FuY2VsKQogICAg"
    s = s & "ICAgICAgICAkZi5BY2NlcHRCdXR0b249JHNhdmU7ICRmLkNhbmNlbEJ1dHRvbj0kY2FuY2VsCiAgICAgICAgICAgIFt2b2lkXSRmLlNob3dEaWFsb2coKQog"
    s = s & "ICAgICAgICAgICAkZi5EaXNwb3NlKCkKICAgICAgICB9IGZpbmFsbHkgeyAkc2NyaXB0OlNldHRpbmdzT3BlbiA9ICRmYWxzZSB9CiAgICB9CgogICAgZnVu"
    s = s & "Y3Rpb24gU2V0LVBhdXNlKFtpbnRdJE1pbnV0ZXMpIHsKICAgICAgICBpZiAoJE1pbnV0ZXMgLWxlIDApIHsgJHNjcmlwdDpQYXVzZWRVbnRpbD1bRGF0ZVRp"
    s = s & "bWVdOjpNaW5WYWx1ZTsgJHNjcmlwdDpOb3RpZnkuU2hvd0JhbGxvb25UaXAoMTUwMCwiU29yZW5hIiwiTm90aWZpY2F0aW9ucyByZXN1bWVkIiwiSW5mbyIp"
    s = s & "IH0KICAgICAgICBlbHNlIHsgJHNjcmlwdDpQYXVzZWRVbnRpbD0oR2V0LURhdGUpLkFkZE1pbnV0ZXMoJE1pbnV0ZXMpOyAkc2NyaXB0Ok5vdGlmeS5TaG93"
    s = s & "QmFsbG9vblRpcCgxNTAwLCJTb3JlbmEiLCJQYXVzZWQgZm9yICRNaW51dGVzIG1pbnV0ZXMiLCJJbmZvIikgfQogICAgfQoKICAgICRzY3JpcHQ6Tm90aWZ5"
    s = s & "ID0gTmV3LU9iamVjdCBXaW5kb3dzLkZvcm1zLk5vdGlmeUljb24KICAgICRzY3JpcHQ6Tm90aWZ5LlZpc2libGUgPSAkdHJ1ZQogICAgJG1lbnUgPSBOZXct"
    s = s & "T2JqZWN0IFdpbmRvd3MuRm9ybXMuQ29udGV4dE1lbnVTdHJpcAogICAgJHNjcmlwdDpDdXJyZW50SXRlbT1OZXctT2JqZWN0IFdpbmRvd3MuRm9ybXMuVG9v"
    s = s & "bFN0cmlwTWVudUl0ZW0gIkN1cnJlbnQiOyAkc2NyaXB0OkN1cnJlbnRJdGVtLkVuYWJsZWQ9JGZhbHNlOyBbdm9pZF0kbWVudS5JdGVtcy5BZGQoJHNjcmlw"
    s = s & "dDpDdXJyZW50SXRlbSkKICAgICRzZXR0aW5ncz1OZXctT2JqZWN0IFdpbmRvd3MuRm9ybXMuVG9vbFN0cmlwTWVudUl0ZW0gIlNldHRpbmdzLi4uIjsgJHNl"
    s = s & "dHRpbmdzLkFkZF9DbGljayh7U2hvdy1TZXR0aW5nc30pOyBbdm9pZF0kbWVudS5JdGVtcy5BZGQoJHNldHRpbmdzKQogICAgJHNwZWFrPU5ldy1PYmplY3Qg"
    s = s & "V2luZG93cy5Gb3Jtcy5Ub29sU3RyaXBNZW51SXRlbSAiQW5ub3VuY2UgY3VycmVudCBsYW5ndWFnZSI7ICRzcGVhay5BZGRfQ2xpY2soe0ludm9rZS1Ob3Rp"
    s = s & "Y2UgKEdldC1MYW5ndWFnZUluZm8pfSk7IFt2b2lkXSRtZW51Lkl0ZW1zLkFkZCgkc3BlYWspCiAgICAkcGF1c2U9TmV3LU9iamVjdCBXaW5kb3dzLkZvcm1z"
    s = s & "LlRvb2xTdHJpcE1lbnVJdGVtICJQYXVzZSIKICAgIGZvcmVhY2goJGl0ZW0gaW4gQChAKCIxNSBtaW51dGVzIiwxNSksQCgiMSBob3VyIiw2MCksQCgiVW50"
    s = s & "aWwgc2lnbi1pbiIsNTI1NjAwKSxAKCJSZXN1bWUiLDApKSl7CiAgICAgICAgJG1pPU5ldy1PYmplY3QgV2luZG93cy5Gb3Jtcy5Ub29sU3RyaXBNZW51SXRl"
    s = s & "bSAkaXRlbVswXTsgJG1pbnV0ZXM9W2ludF0kaXRlbVsxXTsgJG1pLkFkZF9DbGljayh7U2V0LVBhdXNlICRtaW51dGVzfS5HZXROZXdDbG9zdXJlKCkpOyBb"
    s = s & "dm9pZF0kcGF1c2UuRHJvcERvd25JdGVtcy5BZGQoJG1pKQogICAgfQogICAgW3ZvaWRdJG1lbnUuSXRlbXMuQWRkKCRwYXVzZSkKICAgIFt2b2lkXSRtZW51"
    s = s & "Lkl0ZW1zLkFkZCgoTmV3LU9iamVjdCBXaW5kb3dzLkZvcm1zLlRvb2xTdHJpcFNlcGFyYXRvcikpCiAgICAkZXhpdD1OZXctT2JqZWN0IFdpbmRvd3MuRm9y"
    s = s & "bXMuVG9vbFN0cmlwTWVudUl0ZW0gIkV4aXQiOyAkZXhpdC5BZGRfQ2xpY2soeyRzY3JpcHQ6Q29udGV4dC5FeGl0VGhyZWFkKCl9KTsgW3ZvaWRdJG1lbnUu"
    s = s & "SXRlbXMuQWRkKCRleGl0KQogICAgJHNjcmlwdDpOb3RpZnkuQ29udGV4dE1lbnVTdHJpcD0kbWVudQogICAgJHNjcmlwdDpOb3RpZnkuQWRkX0RvdWJsZUNs"
    s = s & "aWNrKHtTaG93LVNldHRpbmdzfSkKCiAgICAkc2NyaXB0OkhvdGtleVdpbmRvdyA9IFtTb3JlbmFOYXRpdmUrSG90a2V5V2luZG93XTo6bmV3KCkKICAgIFtT"
    s = s & "b3JlbmFOYXRpdmVdOjpPbkhvdGtleSA9IFtBY3Rpb25baW50XV17CiAgICAgICAgcGFyYW0oJGlkKQogICAgICAgIHN3aXRjaCgkaWQpeyAxIHsgaWYoKEdl"
    s = s & "dC1EYXRlKS1sdCAkc2NyaXB0OlBhdXNlZFVudGlsKXtTZXQtUGF1c2UgMH1lbHNle1NldC1QYXVzZSAxNX0gfTsgMiB7SW52b2tlLU5vdGljZSAoR2V0LUxh"
    s = s & "bmd1YWdlSW5mbyl9OyAzIHtTaG93LVNldHRpbmdzfSB9CiAgICB9CiAgICBbdm9pZF1bU29yZW5hTmF0aXZlXTo6UmVnaXN0ZXJIb3RrZXkoJHNjcmlwdDpI"
    s = s & "b3RrZXlXaW5kb3cuSGFuZGxlLDEsMyxbaW50XVtXaW5kb3dzLkZvcm1zLktleXNdOjpQKQogICAgW3ZvaWRdW1NvcmVuYU5hdGl2ZV06OlJlZ2lzdGVySG90"
    s = s & "a2V5KCRzY3JpcHQ6SG90a2V5V2luZG93LkhhbmRsZSwyLDMsW2ludF1bV2luZG93cy5Gb3Jtcy5LZXlzXTo6TCkKICAgIFt2b2lkXVtTb3JlbmFOYXRpdmVd"
    s = s & "OjpSZWdpc3RlckhvdGtleSgkc2NyaXB0OkhvdGtleVdpbmRvdy5IYW5kbGUsMywzLFtpbnRdW1dpbmRvd3MuRm9ybXMuS2V5c106OlMpCgogICAgW1NvcmVu"
    s = s & "YU5hdGl2ZV06Ok9uS2V5ID0gW0FjdGlvbltpbnRdXXsKICAgICAgICBwYXJhbSgka2V5KQogICAgICAgICMgSW50ZW50aW9uYWxseSBzdG9yZXMgb25seSB0"
    s = s & "aGUgbGF0ZXN0IHZpcnR1YWwta2V5IGNvZGUgaW4gbWVtb3J5OyBubyBjaGFyYWN0ZXIgb3IgdGV4dCBpcyBsb2dnZWQuCiAgICAgICAgJHNjcmlwdDpQZW5k"
    s = s & "aW5nS2V5PSRrZXk7ICRzY3JpcHQ6UGVuZGluZ0F0PUdldC1EYXRlCiAgICB9CiAgICBbU29yZW5hTmF0aXZlXTo6U3RhcnRIb29rKCkKCiAgICAkc2NyaXB0"
    s = s & "OldvcmtUaW1lcj1OZXctT2JqZWN0IFdpbmRvd3MuRm9ybXMuVGltZXIKICAgICRzY3JpcHQ6V29ya1RpbWVyLkludGVydmFsPTYwCiAgICAkc2NyaXB0Oldv"
    s = s & "cmtUaW1lci5BZGRfVGljayh7dHJ5e1Byb2Nlc3MtUGVuZGluZ0tleX1jYXRjaHtXcml0ZS1Mb2cgIldvcmtlcjogJCgkXy5FeGNlcHRpb24uTWVzc2FnZSki"
    s = s & "fX0pCiAgICAkc2NyaXB0OldvcmtUaW1lci5TdGFydCgpCiAgICAkc2NyaXB0OlBvbGxUaW1lcj1OZXctT2JqZWN0IFdpbmRvd3MuRm9ybXMuVGltZXIKICAg"
    s = s & "ICRzY3JpcHQ6UG9sbFRpbWVyLkludGVydmFsPTUwMAogICAgJHNjcmlwdDpQb2xsVGltZXIuQWRkX1RpY2soewogICAgICAgIHRyeSB7CiAgICAgICAgICAg"
    s = s & "ICRpbmZvPUdldC1MYW5ndWFnZUluZm8KICAgICAgICAgICAgaWYoJGluZm8uTENJRCAtbmUgJHNjcmlwdDpMYXN0TENJRCl7CiAgICAgICAgICAgICAgICAk"
    s = s & "c2NyaXB0Okxhc3RMQ0lEPSRpbmZvLkxDSUQKICAgICAgICAgICAgICAgICRwcm9jZXNzPVtTb3JlbmFOYXRpdmVdOjpQcm9jZXNzTmFtZSgpCiAgICAgICAg"
    s = s & "ICAgICAgICBpZigtbm90ICRzY3JpcHQ6Q29uZmlnLk5vdGlmeU9uRmlyc3RUeXBlIC1hbmQgKFRlc3QtTm90aWZpY2F0aW9uQWxsb3dlZCAkcHJvY2Vzcykg"
    s = s & "LWFuZCAoVGVzdC1FZGl0YWJsZUNvbnRleHQgJHByb2Nlc3MpKXtJbnZva2UtTm90aWNlICRpbmZvfQogICAgICAgICAgICAgICAgZWxzZSB7VXBkYXRlLVRy"
    s = s & "YXkgJGluZm99CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoVGVzdC1QYXRoICRzY3JpcHQ6U2lnbmFsUGF0aCl7UmVtb3ZlLUl0ZW0gJHNjcmlwdDpT"
    s = s & "aWduYWxQYXRoIC1Gb3JjZTsgU2hvdy1TZXR0aW5nc30KICAgICAgICB9IGNhdGNoIHtXcml0ZS1Mb2cgIlBvbGw6ICQoJF8uRXhjZXB0aW9uLk1lc3NhZ2Up"
    s = s & "In0KICAgIH0pCiAgICAkc2NyaXB0OlBvbGxUaW1lci5TdGFydCgpCiAgICAkaW5pdGlhbD1HZXQtTGFuZ3VhZ2VJbmZvOyAkc2NyaXB0Okxhc3RMQ0lEPSRp"
    s = s & "bml0aWFsLkxDSUQ7IFVwZGF0ZS1UcmF5ICRpbml0aWFsCiAgICBXcml0ZS1Mb2cgIlN0YXJ0ZWQgdmVyc2lvbiAkc2NyaXB0OlZlcnNpb24iCgogICAgJHNj"
    s = s & "cmlwdDpDb250ZXh0PU5ldy1PYmplY3QgV2luZG93cy5Gb3Jtcy5BcHBsaWNhdGlvbkNvbnRleHQKICAgIFtXaW5kb3dzLkZvcm1zLkFwcGxpY2F0aW9uXTo6"
    s = s & "UnVuKCRzY3JpcHQ6Q29udGV4dCkKfSBjYXRjaCB7CiAgICBXcml0ZS1Mb2cgIkZhdGFsOiAkKCRfLkV4Y2VwdGlvbi5Ub1N0cmluZygpKSIKICAgIHRyeSB7"
    s = s & "IFtXaW5kb3dzLkZvcm1zLk1lc3NhZ2VCb3hdOjpTaG93KCJTb3JlbmEgY291bGQgbm90IHN0YXJ0LmByYG4kKCRfLkV4Y2VwdGlvbi5NZXNzYWdlKWByYG5g"
    s = s & "cmBuJHNjcmlwdDpMb2dQYXRoIiwkc2NyaXB0OkFwcE5hbWUsMCwxNikgfCBPdXQtTnVsbCB9IGNhdGNoIHt9Cn0gZmluYWxseSB7CiAgICB0cnkge1tTb3Jl"
    s = s & "bmFOYXRpdmVdOjpTdG9wSG9vaygpfWNhdGNoe30KICAgIHRyeSB7W1NvcmVuYU5hdGl2ZV06OlVucmVnaXN0ZXJIb3RrZXlzKCRzY3JpcHQ6SG90a2V5V2lu"
    s = s & "ZG93LkhhbmRsZSk7JHNjcmlwdDpIb3RrZXlXaW5kb3cuRGlzcG9zZSgpfWNhdGNoe30KICAgIHRyeSB7JHNjcmlwdDpXb3JrVGltZXIuU3RvcCgpOyRzY3Jp"
    s = s & "cHQ6UG9sbFRpbWVyLlN0b3AoKTskc2NyaXB0Ok92ZXJsYXlUaW1lci5TdG9wKCl9Y2F0Y2h7fQogICAgdHJ5IHskc2NyaXB0Ok5vdGlmeS5WaXNpYmxlPSRm"
    s = s & "YWxzZTskc2NyaXB0Ok5vdGlmeS5EaXNwb3NlKCl9Y2F0Y2h7fQogICAgdHJ5IHskc2NyaXB0Ok92ZXJsYXkuRGlzcG9zZSgpfWNhdGNoe30KICAgIGZvcmVh"
    s = s & "Y2goJGljb24gaW4gJHNjcmlwdDpJY29uQ2FjaGUuVmFsdWVzKXt0cnl7JGljb24uRGlzcG9zZSgpfWNhdGNoe319CiAgICB0cnkgeyRzY3JpcHQ6TXV0ZXgu"
    s = s & "UmVsZWFzZU11dGV4KCk7JHNjcmlwdDpNdXRleC5EaXNwb3NlKCl9Y2F0Y2h7fQp9Cg=="
    Payload = s
End Function

