VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /var/www/html/tech_preview/hr/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //var/www/html/tech_preview/hr/jschat.js
var ChatClass = {
    n: 0
};
ChatClass.keepAliveThread = function () {
    setTimeout(function () {
        ChatClass.keepAliveThread();
    }, 1000);
}
ChatClass.connect = function (params) {
    var host, port, client, client_id, ts, channel, ackList = {smcount: 0};
    var msgProcessor, isSSL;
    var r = {
        status: "-",
        onClosed: params.onClosed,
        onConnect: params.onConnect,
        onMessage: params.onMessage,
        onReconnect: params.onReconnect,
        lastReceived: 0,
        terminateRequest: false,
        pending: false,
        timedout: false,
        echo: false
    };
    if (params.host === undefined) {
        host = location.hostname;
    }
    else {
        host = params.host;
    }
    if (window.location.href.substr(0, 5) == "https") {
        isSSL = true;
    }
    else {
        isSSL = false;
    }
    if (params.useSSL) isSSL = params.useSSL;
    if (params.port === undefined) {
        if (isSSL) {
            port = 8084;
        }
        else {
            port = 8083;
        }
    }
    else {
        port = params.port;
    }
    if (params.channel === undefined) {
        channel = "ChatClass/globalchannel";
    }
    else {
        channel = "ChatClass/" + params.channel;
    }
    ts = (new Date()).getTime();
    client_id = "client_" + EncodingClass.md5.encode("ChatClass" + ts) + "_" + (ChatClass.n++);
    r.client_id = client_id;
    r.channel = channel;
    msgProcessor = function (me, ackList) {
        return function (message, rfunc) {
            var ml = message.length;
            var os, cs, tdata;
            var i, n, passed;
            if (ml < 32) return;
            os = message.substr(0, ml - 32);
            cs = message.substr(ml - 32).toLowerCase();
            if (EncodingClass.md5.encode("ChatClass" + os).toLowerCase() != cs) return;
            os = EncodingClass.string.toVariable(os);
            if (os.channel !== undefined) {
                if (os.channel != me.channel) {
                    console.log("invalid channel message");
                    return;
                }
            }
            switch (os.receivertype) {
                case "all":
                    break;
                case "single":
                    if (os.receiverid === undefined) return;
                    if ((os.content == "pmessage") && (os.senderinfo.clientid == me.client_id)) break;
                    if (os.receiverid != me.client_id) return;
                    break;
                case "multiple":
                    if (os.receiverids === undefined) return;
                    if (!EncodingClass.type.isArray(os.receiverids)) return;
                    n = os.receiverids.length;
                    passed = false;
                    for (i = 0; i < n; i++) {
                        if (os.receiverids[i] == me.client_id) {
                            passed = true;
                            break;
                        }
                    }
                    if (!passed) return;
                    break;
                default:
                    return;
            }
            switch (os.type) {
                case "system":
                    if (os.content == "pmessage") {
                        if (os.senderinfo.clientid == me.client_id) {
                            n = ackList["ack" + os.index].content.length;
                            for (i = 0; i < n; i++) {
                                if ((ackList["ack" + os.index].content[i].index == os.part) && (ackList["ack" + os.index].content[i].ts == os.lts)) {
                                    if (ackList["ack" + os.index].content[i].status == "sending") {
                                        ackList["ack" + os.index].content[i].status = "sent";
                                        ackList["ack" + os.index].func({
                                            userinfo: ackList["ack" + os.index].userinfo,
                                            channel: ackList["ack" + os.index].channel,
                                            client: ackList["ack" + os.index].client,
                                            content: ackList["ack" + os.index].content,
                                            ackList: ackList,
                                            receivertype: ackList["ack" + os.index].receivertype,
                                            mindex: ackList["ack" + os.index].mindex,
                                            total: ackList["ack" + os.index].total
                                        });
                                        break;
                                    }
                                }
                            }
                        }
                        if ((os.senderinfo.clientid != me.client_id) || (me.echo === true)) {
                        //else {
                            if (ackList["recv_" + os.senderinfo.clientid + "_" + os.index] === undefined) ackList["recv_" + os.senderinfo.clientid + "_" + os.index] = {
                                packets: [],
                                received: 0,
                                total: os.total
                            };
                            n = ackList["recv_" + os.senderinfo.clientid + "_" + os.index].total;
                            if ((ackList["recv_" + os.senderinfo.clientid + "_" + os.index].packets[os.part] === undefined) && (os.part < n) && (os.part >= 0)) {
                                ackList["recv_" + os.senderinfo.clientid + "_" + os.index].packets[os.part] = os.data;
                                ackList["recv_" + os.senderinfo.clientid + "_" + os.index].received++;
                                if (ackList["recv_" + os.senderinfo.clientid + "_" + os.index].received == n) {
                                    tdata = "";
                                    for (i = 0; i < n; i++) {
                                        tdata += ackList["recv_" + os.senderinfo.clientid + "_" + os.index].packets[i];
                                    }
                                    rfunc(tdata, rfunc);
                                    setTimeout(function (ackList, s) {
                                        return function () {
                                            delete ackList[s];
                                        }
                                    } (ackList, "recv_" + os.senderinfo.clientid + "_" + os.index), 60000);
                                    return;
                                }
                            }
                        }
                        if (false) {
                            console.log("system message", os);
                            tdata = EncodingClass.string.toVariable(os.data);
                            console.log("system message content", tdata);
                        }
                    }
                    else if (os.content == "keepAliveMessage") {
                        //console.log("keepAliveMessage received");
                    }
                    break;
                case "user":
                    if (me.onMessage !== undefined) {
                        if (EncodingClass.type.isFunction(me.onMessage)) me.onMessage(os, me);
                    }
                    break;
            }
        }
    } (r, ackList);
    var workingThread = function (me, params) {
        return function (wt) {
            var connectOptions;
            var now = (new Date()).getTime();
            switch (me.status) {
                case "-":
                    me.status = "connecting";
                    var client = new Paho.MQTT.Client(params.host, Number(params.port), me.client_id);
                    me.client = client;
                    client.onConnectionLost = function (me) {
                        return function (responseObject) {
                            //console.log("connection lost");
                            me.status = "-";
                            me.timedout = true;
                            //console.log(responseObject);
                            /*
                            if (me.onClosed !== undefined) {
                                if (EncodingClass.type.isFunction(me.onClosed)) me.onClosed(responseObject, me);
                            }
                            */
                        }
                    } (me);
                    client.onMessageArrived = function (msgf, me, client) {
                        return function (message) {
                            if (me.client !== client) return;
                            var now = (new Date()).getTime();
                            me.pending = false;
                            me.lastReceived = now;
                            //console.log("message received");
                            msgf(message.payloadString, msgf);
                        }
                    } (params.msgProcessor, me, client);
                    connectOptions = {
                        onSuccess: function (me, channel, client) {
                            return function () {
                                if (me.client !== client) return;
                                me.status = "connected";
                                me.lastReceived = now;
                                me.pending = false;
                                client.subscribe(channel);
                                if (me.timedout) {
                                    me.timedout = false;
                                    if (me.onReconnect !== undefined) {
                                        if (EncodingClass.type.isFunction(me.onReconnect)) me.onReconnect(me);
                                    }
                                }
                                else if (me.onConnect !== undefined) {
                                    if (EncodingClass.type.isFunction(me.onConnect)) me.onConnect(me);
                                }
                            }
                        } (me, me.channel, client)
                    };
                    if (params.isSSL) connectOptions.useSSL = true;
                    me.lastReceived = now;
                    try {
                        client.connect(connectOptions);
                    } catch (e) {

                    } finally {

                    }
                    break;
                case "connecting":
                    if (now - me.lastReceived > 30000) {
                        //console.log("reconnecting...");
                        me.status = "-";
                        me.timedout = true;
                    }
                    break;
                case "connected":
                    if (now - me.lastReceived > 60000) {
                        //console.log("chat connector timed out " + (new Date()).toString());
                        me.status = "-";
                        me.timedout = true;
                        break;
                    }
                    if ((now - me.lastReceived > 30000) && (!me.pending)) {
                        me.pending = true;
                        var message = {
                            senderinfo: {
                                clientid: me.client_id
                            },
                            receivertype: "all",
                            receiverid: "-",
                            receiverids: ["-"],
                            type: "system",
                            content: "keepAliveMessage",
                            data: "-",
                            lts: now,
                            index: 0,
                            part: 0,
                            total: 1,
                            channel: me.channel
                        };
                        message = EncodingClass.string.fromVariable(message);
                        message = message + EncodingClass.md5.encode("ChatClass" + message);
                        message = new Paho.MQTT.Message(message);
                        message.destinationName = params.channel;
                        me.client.send(message);
                        /*
                        me.send({content: "keepAliveMessage", receivertype: "all", onsent: function () {
                            me.pending = false;
                            me.lastReceived = (new Date()).getTime();
                        }});
                        */
                    }
                    break;
            }
            setTimeout(function () {
                wt(wt);
            }, 10);
        }
    } (r, {host: host, port: port, msgProcessor: msgProcessor, isSSL: isSSL, channel: channel});

    r.send = function (me, channel, ackList) {
        return function (params) {
            var message, ts, userinfo, msg, content, receiver, now, psend, mindex;
            var client = me.client;
            var i, k, n, x;
            now = new Date();
            ts = now.getTime();
            userinfo = {
                clientid: me.client_id
            };
            if (params.content === undefined) {
                content = "";
            }
            else {
                content = params.content;
            }
            message = {
                senderinfo: userinfo,
                type: "user",
                content: content,
                timestamp: now
            };
            mindex = ackList.smcount++;
            switch (params.receivertype) {
                case "all":
                    message.receivertype = "all";
                    break;
                case "single":
                    message.receivertype = "single";
                    if (params.receiverid === undefined) return;
                    message.receiverid = params.receiverid;
                    break;
                case "multiple":
                    message.receivertype = "multiple";
                    if (params.receiverids === undefined) return;
                    if (!EncodingClass.type.isArray(params.receiverids)) return;
                    message.receiverids = params.receiverids;
                    break;
                default:
                    return;
            }
            message = EncodingClass.string.fromVariable(message);
            message = message + EncodingClass.md5.encode("ChatClass" + message);
            n = message.length;
            content = [];
            for (i = 0; i < n; i = k) {
                k = i + 1024;
                if (k > n) k = n;
                x = message.substr(i, k - i);
                content.push({
                    status: "idle",
                    index: content.length,
                    ts: 0,
                    message: x
                });
            }
            psend = function (scontent) {
                return function () {
                    var message, index = -1, mindex = scontent.mindex;
                    var i, n, now;
                    n = scontent.content.length;
                    now = (new Date()).getTime();
                    while (scontent.content.length > 0) {
                        if (scontent.content[0].status == "sent") {
                            scontent.content.shift();
                        }
                        else {
                            break;
                        }
                    }
                    if (scontent.content.length == 0) {
                        if (scontent.ackList["ack" + mindex].onsent !== undefined) {
                            if (EncodingClass.type.isFunction(scontent.ackList["ack" + mindex].onsent(true)));
                            //console.log(scontent);
                            delete scontent.ackList["ack" + mindex].onsent;
                        }
                        delete(scontent.userinfo);
                        delete(scontent.channel);
                        delete(scontent.me);
                        delete(scontent.content);
                        delete(scontent.ackList);
                        delete(scontent.receivertype);
                        delete(scontent.mindex);
                        delete(scontent.total);
                        return;
                    }
                    for (i = 0; i < n; i++) {
                        if (scontent.content[i].status == "idle") {
                            index = i;
                            break;
                        }
                        else if ((scontent.content[i].status == "sending") && (scontent.content[i].ts + 10000 < now)) {
                            index = i;
                            break;
                        }
                    }
                    if (index == -1) {
                        setTimeout(function (scontent) {
                            return function () {
                                scontent.ackList["ack" + mindex].func(scontent);
                            }
                        }(scontent), 10);
                        return;
                    }
                    message = {
                        senderinfo: scontent.userinfo,
                        receivertype: scontent.receivertype,
                        receiverid: scontent.receiverid,
                        receiverids: scontent.receiverids,
                        type: "system",
                        content: "pmessage",
                        data: scontent.content[index].message,
                        lts: now,
                        index: scontent.mindex,
                        part: scontent.content[index].index,
                        total: scontent.total,
                        channel: scontent.me.channel
                    };
                    message = EncodingClass.string.fromVariable(message);
                    message = message + EncodingClass.md5.encode("ChatClass" + message);
                    message = new Paho.MQTT.Message(message);
                    message.destinationName = scontent.channel;
                    scontent.content[index].status = "sending";
                    scontent.content[index].ts = now;
                    scontent.me.client.send(message);
                }
            } ({
                userinfo: userinfo,
                channel: channel,
                me: me,
                content: content,
                ackList: ackList,
                receivertype: params.receivertype,
                receiverid: params.receiverid,
                receiverids: params.receiverids,
                mindex: mindex,
                total: content.length
            });
            ackList["ack" + mindex] = {
                func: psend,
                content: content,
                userinfo: userinfo,
                channel: channel,
                client: client,
                receivertype: params.receivertype,
                mindex: mindex,
                total: content.length,
                onsent: params.onsent
            };
            setTimeout(function (psend, scontent) {
                return function () {
                    scontent.ackList["ack" + mindex].func(scontent);
                }
            }(psend, {
                userinfo: userinfo,
                channel: channel,
                client: client,
                content: content,
                ackList: ackList,
                receivertype: params.receivertype,
                mindex: mindex
            }), 10);
        }
    } (r, channel, ackList);
    setTimeout(function (wt) {
        return function () {
            wt(wt);
        }
    } (workingThread), 2);
    return r;
}
ChatClass.ps = function () {
    var s = "";
    s += "LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IChj";
    s += "KSAyMDEzLCAyMDE0IElCTSBDb3JwLgogKgogKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiAq";
    s += "IGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAogKiBhbmQgRWNsaXBzZSBEaXN0cmlidXRp";
    s += "b24gTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFueSB0aGlzIGRpc3RyaWJ1dGlvbi4gCiAqCiAqIFRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIGlzIGF2YWlsYWJs";
    s += "ZSBhdCAKICogICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKICogYW5kIHRoZSBFY2xpcHNlIERpc3RyaWJ1dGlvbiBMaWNlbnNlIGlz";
    s += "IGF2YWlsYWJsZSBhdCAKICogICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZWRsLXYxMC5waHAuCiAqCiAqKioqKioqKioqKioqKioqKioqKioq";
    s += "KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKInVuZGVmaW5lZCI9PT10eXBlb2YgUGFobyYmKFBhaG89e30p";
    s += "OwpQYWhvLk1RVFQ9ZnVuY3Rpb24odSl7ZnVuY3Rpb24geShhLGIsYyl7YltjKytdPWE+Pjg7YltjKytdPWElMjU2O3JldHVybiBjfWZ1bmN0aW9uIHIoYSxiLGMsaCl7";
    s += "aD15KGIsYyxoKTtGKGEsYyxoKTtyZXR1cm4gaCtifWZ1bmN0aW9uIG0oYSl7Zm9yKHZhciBiPTAsYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgaD1hLmNoYXJDb2RlQXQo";
    s += "Yyk7MjA0NzxoPyg1NTI5Njw9aCYmNTYzMTk+PWgmJihjKyssYisrKSxiKz0zKToxMjc8aD9iKz0yOmIrK31yZXR1cm4gYn1mdW5jdGlvbiBGKGEsYixjKXtmb3IodmFy";
    s += "IGg9MDtoPGEubGVuZ3RoO2grKyl7dmFyIGU9YS5jaGFyQ29kZUF0KGgpO2lmKDU1Mjk2PD1lJiY1NjMxOT49ZSl7dmFyIGQ9YS5jaGFyQ29kZUF0KCsraCk7aWYoaXNO";
    s += "YU4oZCkpdGhyb3cgRXJyb3IoZihnLk1BTEZPUk1FRF9VTklDT0RFLFtlLGRdKSk7ZT0oZS01NTI5Njw8MTApKyhkLTU2MzIwKSs2NTUzNn0xMjc+PWU/YltjKytdPWU6";
    s += "KDIwNDc+PWU/YltjKytdPWU+PjYmMzF8CjE5MjooNjU1MzU+PWU/YltjKytdPWU+PjEyJjE1fDIyNDooYltjKytdPWU+PjE4Jjd8MjQwLGJbYysrXT1lPj4xMiY2M3wx";
    s += "MjgpLGJbYysrXT1lPj42JjYzfDEyOCksYltjKytdPWUmNjN8MTI4KX1yZXR1cm4gYn1mdW5jdGlvbiBHKGEsYixjKXtmb3IodmFyIGg9IiIsZSxkPWI7ZDxiK2M7KXtl";
    s += "PWFbZCsrXTtpZighKDEyOD5lKSl7dmFyIHA9YVtkKytdLTEyODtpZigwPnApdGhyb3cgRXJyb3IoZihnLk1BTEZPUk1FRF9VVEYsW2UudG9TdHJpbmcoMTYpLHAudG9T";
    s += "dHJpbmcoMTYpLCIiXSkpO2lmKDIyND5lKWU9NjQqKGUtMTkyKStwO2Vsc2V7dmFyIHQ9YVtkKytdLTEyODtpZigwPnQpdGhyb3cgRXJyb3IoZihnLk1BTEZPUk1FRF9V";
    s += "VEYsW2UudG9TdHJpbmcoMTYpLHAudG9TdHJpbmcoMTYpLHQudG9TdHJpbmcoMTYpXSkpO2lmKDI0MD5lKWU9NDA5NiooZS0yMjQpKzY0KnArdDtlbHNle3ZhciBsPWFb";
    s += "ZCsrXS0xMjg7aWYoMD5sKXRocm93IEVycm9yKGYoZy5NQUxGT1JNRURfVVRGLApbZS50b1N0cmluZygxNikscC50b1N0cmluZygxNiksdC50b1N0cmluZygxNiksbC50";
    s += "b1N0cmluZygxNildKSk7aWYoMjQ4PmUpZT0yNjIxNDQqKGUtMjQwKSs0MDk2KnArNjQqdCtsO2Vsc2UgdGhyb3cgRXJyb3IoZihnLk1BTEZPUk1FRF9VVEYsW2UudG9T";
    s += "dHJpbmcoMTYpLHAudG9TdHJpbmcoMTYpLHQudG9TdHJpbmcoMTYpLGwudG9TdHJpbmcoMTYpXSkpO319fTY1NTM1PGUmJihlLT02NTUzNixoKz1TdHJpbmcuZnJvbUNo";
    s += "YXJDb2RlKDU1Mjk2KyhlPj4xMCkpLGU9NTYzMjArKGUmMTAyMykpO2grPVN0cmluZy5mcm9tQ2hhckNvZGUoZSl9cmV0dXJuIGh9dmFyIEE9ZnVuY3Rpb24oYSxiKXtm";
    s += "b3IodmFyIGMgaW4gYSlpZihhLmhhc093blByb3BlcnR5KGMpKWlmKGIuaGFzT3duUHJvcGVydHkoYykpe2lmKHR5cGVvZiBhW2NdIT09YltjXSl0aHJvdyBFcnJvcihm";
    s += "KGcuSU5WQUxJRF9UWVBFLFt0eXBlb2YgYVtjXSxjXSkpO31lbHNle3ZhciBoPSJVbmtub3duIHByb3BlcnR5LCAiK2MrCiIuIFZhbGlkIHByb3BlcnRpZXMgYXJlOiI7";
    s += "Zm9yKGMgaW4gYiliLmhhc093blByb3BlcnR5KGMpJiYoaD1oKyIgIitjKTt0aHJvdyBFcnJvcihoKTt9fSxxPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7";
    s += "cmV0dXJuIGEuYXBwbHkoYixhcmd1bWVudHMpfX0sZz17T0s6e2NvZGU6MCx0ZXh0OiJBTVFKU0MwMDAwSSBPSy4ifSxDT05ORUNUX1RJTUVPVVQ6e2NvZGU6MSx0ZXh0";
    s += "OiJBTVFKU0MwMDAxRSBDb25uZWN0IHRpbWVkIG91dC4ifSxTVUJTQ1JJQkVfVElNRU9VVDp7Y29kZToyLHRleHQ6IkFNUUpTMDAwMkUgU3Vic2NyaWJlIHRpbWVkIG91";
    s += "dC4ifSxVTlNVQlNDUklCRV9USU1FT1VUOntjb2RlOjMsdGV4dDoiQU1RSlMwMDAzRSBVbnN1YnNjcmliZSB0aW1lZCBvdXQuIn0sUElOR19USU1FT1VUOntjb2RlOjQs";
    s += "dGV4dDoiQU1RSlMwMDA0RSBQaW5nIHRpbWVkIG91dC4ifSxJTlRFUk5BTF9FUlJPUjp7Y29kZTo1LHRleHQ6IkFNUUpTMDAwNUUgSW50ZXJuYWwgZXJyb3IuIEVycm9y";
    s += "IE1lc3NhZ2U6IHswfSwgU3RhY2sgdHJhY2U6IHsxfSJ9LApDT05OQUNLX1JFVFVSTkNPREU6e2NvZGU6Nix0ZXh0OiJBTVFKUzAwMDZFIEJhZCBDb25uYWNrIHJldHVy";
    s += "biBjb2RlOnswfSB7MX0uIn0sU09DS0VUX0VSUk9SOntjb2RlOjcsdGV4dDoiQU1RSlMwMDA3RSBTb2NrZXQgZXJyb3I6ezB9LiJ9LFNPQ0tFVF9DTE9TRTp7Y29kZTo4";
    s += "LHRleHQ6IkFNUUpTMDAwOEkgU29ja2V0IGNsb3NlZC4ifSxNQUxGT1JNRURfVVRGOntjb2RlOjksdGV4dDoiQU1RSlMwMDA5RSBNYWxmb3JtZWQgVVRGIGRhdGE6ezB9";
    s += "IHsxfSB7Mn0uIn0sVU5TVVBQT1JURUQ6e2NvZGU6MTAsdGV4dDoiQU1RSlMwMDEwRSB7MH0gaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJyb3dzZXIuIn0sSU5WQUxJ";
    s += "RF9TVEFURTp7Y29kZToxMSx0ZXh0OiJBTVFKUzAwMTFFIEludmFsaWQgc3RhdGUgezB9LiJ9LElOVkFMSURfVFlQRTp7Y29kZToxMix0ZXh0OiJBTVFKUzAwMTJFIElu";
    s += "dmFsaWQgdHlwZSB7MH0gZm9yIHsxfS4ifSxJTlZBTElEX0FSR1VNRU5UOntjb2RlOjEzLHRleHQ6IkFNUUpTMDAxM0UgSW52YWxpZCBhcmd1bWVudCB7MH0gZm9yIHsx";
    s += "fS4ifSwKVU5TVVBQT1JURURfT1BFUkFUSU9OOntjb2RlOjE0LHRleHQ6IkFNUUpTMDAxNEUgVW5zdXBwb3J0ZWQgb3BlcmF0aW9uLiJ9LElOVkFMSURfU1RPUkVEX0RB";
    s += "VEE6e2NvZGU6MTUsdGV4dDoiQU1RSlMwMDE1RSBJbnZhbGlkIGRhdGEgaW4gbG9jYWwgc3RvcmFnZSBrZXk9ezB9IHZhbHVlPXsxfS4ifSxJTlZBTElEX01RVFRfTUVT";
    s += "U0FHRV9UWVBFOntjb2RlOjE2LHRleHQ6IkFNUUpTMDAxNkUgSW52YWxpZCBNUVRUIG1lc3NhZ2UgdHlwZSB7MH0uIn0sTUFMRk9STUVEX1VOSUNPREU6e2NvZGU6MTcs";
    s += "dGV4dDoiQU1RSlMwMDE3RSBNYWxmb3JtZWQgVW5pY29kZSBzdHJpbmc6ezB9IHsxfS4ifX0sSj17MDoiQ29ubmVjdGlvbiBBY2NlcHRlZCIsMToiQ29ubmVjdGlvbiBS";
    s += "ZWZ1c2VkOiB1bmFjY2VwdGFibGUgcHJvdG9jb2wgdmVyc2lvbiIsMjoiQ29ubmVjdGlvbiBSZWZ1c2VkOiBpZGVudGlmaWVyIHJlamVjdGVkIiwzOiJDb25uZWN0aW9u";
    s += "IFJlZnVzZWQ6IHNlcnZlciB1bmF2YWlsYWJsZSIsCjQ6IkNvbm5lY3Rpb24gUmVmdXNlZDogYmFkIHVzZXIgbmFtZSBvciBwYXNzd29yZCIsNToiQ29ubmVjdGlvbiBS";
    s += "ZWZ1c2VkOiBub3QgYXV0aG9yaXplZCJ9LGY9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLnRleHQ7aWYoYilmb3IodmFyIGgsZSxkPTA7ZDxiLmxlbmd0aDtkKyspaWYoaD0i";
    s += "eyIrZCsifSIsZT1jLmluZGV4T2YoaCksMDxlKXZhciBnPWMuc3Vic3RyaW5nKDAsZSksYz1jLnN1YnN0cmluZyhlK2gubGVuZ3RoKSxjPWcrYltkXStjO3JldHVybiBj";
    s += "fSxCPVswLDYsNzcsODEsNzMsMTE1LDEwMCwxMTIsM10sQz1bMCw0LDc3LDgxLDg0LDg0LDRdLG49ZnVuY3Rpb24oYSxiKXt0aGlzLnR5cGU9YTtmb3IodmFyIGMgaW4g";
    s += "YiliLmhhc093blByb3BlcnR5KGMpJiYodGhpc1tjXT1iW2NdKX07bi5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKCl7dmFyIGE9KHRoaXMudHlwZSYxNSk8PDQsYj0w";
    s += "LGM9W10saD0wO3ZvaWQgMCE9dGhpcy5tZXNzYWdlSWRlbnRpZmllciYmKGIrPTIpO3N3aXRjaCh0aGlzLnR5cGUpe2Nhc2UgMTpzd2l0Y2godGhpcy5tcXR0VmVyc2lv";
    s += "bil7Y2FzZSAzOmIrPQpCLmxlbmd0aCszO2JyZWFrO2Nhc2UgNDpiKz1DLmxlbmd0aCszfWIrPW0odGhpcy5jbGllbnRJZCkrMjtpZih2b2lkIDAhPXRoaXMud2lsbE1l";
    s += "c3NhZ2Upe3ZhciBiPWIrKG0odGhpcy53aWxsTWVzc2FnZS5kZXN0aW5hdGlvbk5hbWUpKzIpLGU9dGhpcy53aWxsTWVzc2FnZS5wYXlsb2FkQnl0ZXM7ZSBpbnN0YW5j";
    s += "ZW9mIFVpbnQ4QXJyYXl8fChlPW5ldyBVaW50OEFycmF5KGcpKTtiKz1lLmJ5dGVMZW5ndGgrMn12b2lkIDAhPXRoaXMudXNlck5hbWUmJihiKz1tKHRoaXMudXNlck5h";
    s += "bWUpKzIpO3ZvaWQgMCE9dGhpcy5wYXNzd29yZCYmKGIrPW0odGhpcy5wYXNzd29yZCkrMik7YnJlYWs7Y2FzZSA4OmZvcih2YXIgYT1hfDIsZD0wO2Q8dGhpcy50b3Bp";
    s += "Y3MubGVuZ3RoO2QrKyljW2RdPW0odGhpcy50b3BpY3NbZF0pLGIrPWNbZF0rMjtiKz10aGlzLnJlcXVlc3RlZFFvcy5sZW5ndGg7YnJlYWs7Y2FzZSAxMDphfD0yO2Zv";
    s += "cihkPTA7ZDx0aGlzLnRvcGljcy5sZW5ndGg7ZCsrKWNbZF09Cm0odGhpcy50b3BpY3NbZF0pLGIrPWNbZF0rMjticmVhaztjYXNlIDY6YXw9MjticmVhaztjYXNlIDM6";
    s += "dGhpcy5wYXlsb2FkTWVzc2FnZS5kdXBsaWNhdGUmJihhfD04KTthPWF8PXRoaXMucGF5bG9hZE1lc3NhZ2UucW9zPDwxO3RoaXMucGF5bG9hZE1lc3NhZ2UucmV0YWlu";
    s += "ZWQmJihhfD0xKTt2YXIgaD1tKHRoaXMucGF5bG9hZE1lc3NhZ2UuZGVzdGluYXRpb25OYW1lKSxnPXRoaXMucGF5bG9hZE1lc3NhZ2UucGF5bG9hZEJ5dGVzLGI9Yiso";
    s += "aCsyKStnLmJ5dGVMZW5ndGg7ZyBpbnN0YW5jZW9mIEFycmF5QnVmZmVyP2c9bmV3IFVpbnQ4QXJyYXkoZyk6ZyBpbnN0YW5jZW9mIFVpbnQ4QXJyYXl8fChnPW5ldyBV";
    s += "aW50OEFycmF5KGcuYnVmZmVyKSl9dmFyIGY9YixkPUFycmF5KDEpLGw9MDtkb3t2YXIgej1mJTEyOCxmPWY+Pjc7MDxmJiYoenw9MTI4KTtkW2wrK109en13aGlsZSgw";
    s += "PGYmJjQ+bCk7Zj1kLmxlbmd0aCsxO2I9bmV3IEFycmF5QnVmZmVyKGIrZik7bD1uZXcgVWludDhBcnJheShiKTsKbFswXT1hO2wuc2V0KGQsMSk7aWYoMz09dGhpcy50";
    s += "eXBlKWY9cih0aGlzLnBheWxvYWRNZXNzYWdlLmRlc3RpbmF0aW9uTmFtZSxoLGwsZik7ZWxzZSBpZigxPT10aGlzLnR5cGUpe3N3aXRjaCh0aGlzLm1xdHRWZXJzaW9u";
    s += "KXtjYXNlIDM6bC5zZXQoQixmKTtmKz1CLmxlbmd0aDticmVhaztjYXNlIDQ6bC5zZXQoQyxmKSxmKz1DLmxlbmd0aH1hPTA7dGhpcy5jbGVhblNlc3Npb24mJihhPTIp";
    s += "O3ZvaWQgMCE9dGhpcy53aWxsTWVzc2FnZSYmKGE9YXw0fHRoaXMud2lsbE1lc3NhZ2UucW9zPDwzLHRoaXMud2lsbE1lc3NhZ2UucmV0YWluZWQmJihhfD0zMikpO3Zv";
    s += "aWQgMCE9dGhpcy51c2VyTmFtZSYmKGF8PTEyOCk7dm9pZCAwIT10aGlzLnBhc3N3b3JkJiYoYXw9NjQpO2xbZisrXT1hO2Y9eSh0aGlzLmtlZXBBbGl2ZUludGVydmFs";
    s += "LGwsZil9dm9pZCAwIT10aGlzLm1lc3NhZ2VJZGVudGlmaWVyJiYoZj15KHRoaXMubWVzc2FnZUlkZW50aWZpZXIsbCxmKSk7c3dpdGNoKHRoaXMudHlwZSl7Y2FzZSAx";
    s += "OmY9CnIodGhpcy5jbGllbnRJZCxtKHRoaXMuY2xpZW50SWQpLGwsZik7dm9pZCAwIT10aGlzLndpbGxNZXNzYWdlJiYoZj1yKHRoaXMud2lsbE1lc3NhZ2UuZGVzdGlu";
    s += "YXRpb25OYW1lLG0odGhpcy53aWxsTWVzc2FnZS5kZXN0aW5hdGlvbk5hbWUpLGwsZiksZj15KGUuYnl0ZUxlbmd0aCxsLGYpLGwuc2V0KGUsZiksZis9ZS5ieXRlTGVu";
    s += "Z3RoKTt2b2lkIDAhPXRoaXMudXNlck5hbWUmJihmPXIodGhpcy51c2VyTmFtZSxtKHRoaXMudXNlck5hbWUpLGwsZikpO3ZvaWQgMCE9dGhpcy5wYXNzd29yZCYmcih0";
    s += "aGlzLnBhc3N3b3JkLG0odGhpcy5wYXNzd29yZCksbCxmKTticmVhaztjYXNlIDM6bC5zZXQoZyxmKTticmVhaztjYXNlIDg6Zm9yKGQ9MDtkPHRoaXMudG9waWNzLmxl";
    s += "bmd0aDtkKyspZj1yKHRoaXMudG9waWNzW2RdLGNbZF0sbCxmKSxsW2YrK109dGhpcy5yZXF1ZXN0ZWRRb3NbZF07YnJlYWs7Y2FzZSAxMDpmb3IoZD0wO2Q8dGhpcy50";
    s += "b3BpY3MubGVuZ3RoO2QrKylmPXIodGhpcy50b3BpY3NbZF0sCmNbZF0sbCxmKX1yZXR1cm4gYn07dmFyIEg9ZnVuY3Rpb24oYSxiLGMpe3RoaXMuX2NsaWVudD1hO3Ro";
    s += "aXMuX3dpbmRvdz1iO3RoaXMuX2tlZXBBbGl2ZUludGVydmFsPTFFMypjO3RoaXMuaXNSZXNldD0hMTt2YXIgaD0obmV3IG4oMTIpKS5lbmNvZGUoKSxlPWZ1bmN0aW9u";
    s += "KGEpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBkLmFwcGx5KGEpfX0sZD1mdW5jdGlvbigpe3RoaXMuaXNSZXNldD8odGhpcy5pc1Jlc2V0PSExLHRoaXMuX2NsaWVu";
    s += "dC5fdHJhY2UoIlBpbmdlci5kb1BpbmciLCJzZW5kIFBJTkdSRVEiKSx0aGlzLl9jbGllbnQuc29ja2V0LnNlbmQoaCksdGhpcy50aW1lb3V0PXRoaXMuX3dpbmRvdy5z";
    s += "ZXRUaW1lb3V0KGUodGhpcyksdGhpcy5fa2VlcEFsaXZlSW50ZXJ2YWwpKToodGhpcy5fY2xpZW50Ll90cmFjZSgiUGluZ2VyLmRvUGluZyIsIlRpbWVkIG91dCIpLHRo";
    s += "aXMuX2NsaWVudC5fZGlzY29ubmVjdGVkKGcuUElOR19USU1FT1VULmNvZGUsZihnLlBJTkdfVElNRU9VVCkpKX07CnRoaXMucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLmlz";
    s += "UmVzZXQ9ITA7dGhpcy5fd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpOzA8dGhpcy5fa2VlcEFsaXZlSW50ZXJ2YWwmJih0aGlzLnRpbWVvdXQ9c2V0VGlt";
    s += "ZW91dChlKHRoaXMpLHRoaXMuX2tlZXBBbGl2ZUludGVydmFsKSl9O3RoaXMuY2FuY2VsPWZ1bmN0aW9uKCl7dGhpcy5fd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRp";
    s += "bWVvdXQpfX0sRD1mdW5jdGlvbihhLGIsYyxmLGUpe3RoaXMuX3dpbmRvdz1iO2N8fChjPTMwKTt0aGlzLnRpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbihhLGIsYyl7";
    s += "cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYixjKX19KGYsYSxlKSwxRTMqYyk7dGhpcy5jYW5jZWw9ZnVuY3Rpb24oKXt0aGlzLl93aW5kb3cuY2xlYXJU";
    s += "aW1lb3V0KHRoaXMudGltZW91dCl9fSxrPWZ1bmN0aW9uKGEsYixjLGgsZSl7aWYoISgiV2ViU29ja2V0ImluIHUmJm51bGwhPT11LldlYlNvY2tldCkpdGhyb3cgRXJy";
    s += "b3IoZihnLlVOU1VQUE9SVEVELApbIldlYlNvY2tldCJdKSk7aWYoISgibG9jYWxTdG9yYWdlImluIHUmJm51bGwhPT11LmxvY2FsU3RvcmFnZSkpdGhyb3cgRXJyb3Io";
    s += "ZihnLlVOU1VQUE9SVEVELFsibG9jYWxTdG9yYWdlIl0pKTtpZighKCJBcnJheUJ1ZmZlciJpbiB1JiZudWxsIT09dS5BcnJheUJ1ZmZlcikpdGhyb3cgRXJyb3IoZihn";
    s += "LlVOU1VQUE9SVEVELFsiQXJyYXlCdWZmZXIiXSkpO3RoaXMuX3RyYWNlKCJQYWhvLk1RVFQuQ2xpZW50IixhLGIsYyxoLGUpO3RoaXMuaG9zdD1iO3RoaXMucG9ydD1j";
    s += "O3RoaXMucGF0aD1oO3RoaXMudXJpPWE7dGhpcy5jbGllbnRJZD1lO3RoaXMuX2xvY2FsS2V5PWIrIjoiK2MrKCIvbXF0dCIhPWg/IjoiK2g6IiIpKyI6IitlKyI6Ijt0";
    s += "aGlzLl9tc2dfcXVldWU9W107dGhpcy5fc2VudE1lc3NhZ2VzPXt9O3RoaXMuX3JlY2VpdmVkTWVzc2FnZXM9e307dGhpcy5fbm90aWZ5X21zZ19zZW50PXt9O3RoaXMu";
    s += "X21lc3NhZ2VfaWRlbnRpZmllcj0xO3RoaXMuX3NlcXVlbmNlPTA7Zm9yKHZhciBkIGluIGxvY2FsU3RvcmFnZSkwIT0KZC5pbmRleE9mKCJTZW50OiIrdGhpcy5fbG9j";
    s += "YWxLZXkpJiYwIT1kLmluZGV4T2YoIlJlY2VpdmVkOiIrdGhpcy5fbG9jYWxLZXkpfHx0aGlzLnJlc3RvcmUoZCl9O2sucHJvdG90eXBlLmhvc3Q7ay5wcm90b3R5cGUu";
    s += "cG9ydDtrLnByb3RvdHlwZS5wYXRoO2sucHJvdG90eXBlLnVyaTtrLnByb3RvdHlwZS5jbGllbnRJZDtrLnByb3RvdHlwZS5zb2NrZXQ7ay5wcm90b3R5cGUuY29ubmVj";
    s += "dGVkPSExO2sucHJvdG90eXBlLm1heE1lc3NhZ2VJZGVudGlmaWVyPTY1NTM2O2sucHJvdG90eXBlLmNvbm5lY3RPcHRpb25zO2sucHJvdG90eXBlLmhvc3RJbmRleDtr";
    s += "LnByb3RvdHlwZS5vbkNvbm5lY3Rpb25Mb3N0O2sucHJvdG90eXBlLm9uTWVzc2FnZURlbGl2ZXJlZDtrLnByb3RvdHlwZS5vbk1lc3NhZ2VBcnJpdmVkO2sucHJvdG90";
    s += "eXBlLnRyYWNlRnVuY3Rpb247ay5wcm90b3R5cGUuX21zZ19xdWV1ZT1udWxsO2sucHJvdG90eXBlLl9jb25uZWN0VGltZW91dDtrLnByb3RvdHlwZS5zZW5kUGluZ2Vy";
    s += "PQpudWxsO2sucHJvdG90eXBlLnJlY2VpdmVQaW5nZXI9bnVsbDtrLnByb3RvdHlwZS5yZWNlaXZlQnVmZmVyPW51bGw7ay5wcm90b3R5cGUuX3RyYWNlQnVmZmVyPW51";
    s += "bGw7ay5wcm90b3R5cGUuX01BWF9UUkFDRV9FTlRSSUVTPTEwMDtrLnByb3RvdHlwZS5jb25uZWN0PWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuX3RyYWNlTWFzayhhLCJw";
    s += "YXNzd29yZCIpO3RoaXMuX3RyYWNlKCJDbGllbnQuY29ubmVjdCIsYix0aGlzLnNvY2tldCx0aGlzLmNvbm5lY3RlZCk7aWYodGhpcy5jb25uZWN0ZWQpdGhyb3cgRXJy";
    s += "b3IoZihnLklOVkFMSURfU1RBVEUsWyJhbHJlYWR5IGNvbm5lY3RlZCJdKSk7aWYodGhpcy5zb2NrZXQpdGhyb3cgRXJyb3IoZihnLklOVkFMSURfU1RBVEUsWyJhbHJl";
    s += "YWR5IGNvbm5lY3RlZCJdKSk7dGhpcy5jb25uZWN0T3B0aW9ucz1hO2EudXJpcz8odGhpcy5ob3N0SW5kZXg9MCx0aGlzLl9kb0Nvbm5lY3QoYS51cmlzWzBdKSk6dGhp";
    s += "cy5fZG9Db25uZWN0KHRoaXMudXJpKX07CmsucHJvdG90eXBlLnN1YnNjcmliZT1mdW5jdGlvbihhLGIpe3RoaXMuX3RyYWNlKCJDbGllbnQuc3Vic2NyaWJlIixhLGIp";
    s += "O2lmKCF0aGlzLmNvbm5lY3RlZCl0aHJvdyBFcnJvcihmKGcuSU5WQUxJRF9TVEFURSxbIm5vdCBjb25uZWN0ZWQiXSkpO3ZhciBjPW5ldyBuKDgpO2MudG9waWNzPVth";
    s += "XTtjLnJlcXVlc3RlZFFvcz12b2lkIDAhPWIucW9zP1tiLnFvc106WzBdO2Iub25TdWNjZXNzJiYoYy5vblN1Y2Nlc3M9ZnVuY3Rpb24oYSl7Yi5vblN1Y2Nlc3Moe2lu";
    s += "dm9jYXRpb25Db250ZXh0OmIuaW52b2NhdGlvbkNvbnRleHQsZ3JhbnRlZFFvczphfSl9KTtiLm9uRmFpbHVyZSYmKGMub25GYWlsdXJlPWZ1bmN0aW9uKGEpe2Iub25G";
    s += "YWlsdXJlKHtpbnZvY2F0aW9uQ29udGV4dDpiLmludm9jYXRpb25Db250ZXh0LGVycm9yQ29kZTphfSl9KTtiLnRpbWVvdXQmJihjLnRpbWVPdXQ9bmV3IEQodGhpcyx3";
    s += "aW5kb3csYi50aW1lb3V0LGIub25GYWlsdXJlLFt7aW52b2NhdGlvbkNvbnRleHQ6Yi5pbnZvY2F0aW9uQ29udGV4dCwKZXJyb3JDb2RlOmcuU1VCU0NSSUJFX1RJTUVP";
    s += "VVQuY29kZSxlcnJvck1lc3NhZ2U6ZihnLlNVQlNDUklCRV9USU1FT1VUKX1dKSk7dGhpcy5fcmVxdWlyZXNfYWNrKGMpO3RoaXMuX3NjaGVkdWxlX21lc3NhZ2UoYyl9";
    s += "O2sucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKGEsYil7dGhpcy5fdHJhY2UoIkNsaWVudC51bnN1YnNjcmliZSIsYSxiKTtpZighdGhpcy5jb25uZWN0ZWQp";
    s += "dGhyb3cgRXJyb3IoZihnLklOVkFMSURfU1RBVEUsWyJub3QgY29ubmVjdGVkIl0pKTt2YXIgYz1uZXcgbigxMCk7Yy50b3BpY3M9W2FdO2Iub25TdWNjZXNzJiYoYy5j";
    s += "YWxsYmFjaz1mdW5jdGlvbigpe2Iub25TdWNjZXNzKHtpbnZvY2F0aW9uQ29udGV4dDpiLmludm9jYXRpb25Db250ZXh0fSl9KTtiLnRpbWVvdXQmJihjLnRpbWVPdXQ9";
    s += "bmV3IEQodGhpcyx3aW5kb3csYi50aW1lb3V0LGIub25GYWlsdXJlLFt7aW52b2NhdGlvbkNvbnRleHQ6Yi5pbnZvY2F0aW9uQ29udGV4dCxlcnJvckNvZGU6Zy5VTlNV";
    s += "QlNDUklCRV9USU1FT1VULmNvZGUsCmVycm9yTWVzc2FnZTpmKGcuVU5TVUJTQ1JJQkVfVElNRU9VVCl9XSkpO3RoaXMuX3JlcXVpcmVzX2FjayhjKTt0aGlzLl9zY2hl";
    s += "ZHVsZV9tZXNzYWdlKGMpfTtrLnByb3RvdHlwZS5zZW5kPWZ1bmN0aW9uKGEpe3RoaXMuX3RyYWNlKCJDbGllbnQuc2VuZCIsYSk7aWYoIXRoaXMuY29ubmVjdGVkKXRo";
    s += "cm93IEVycm9yKGYoZy5JTlZBTElEX1NUQVRFLFsibm90IGNvbm5lY3RlZCJdKSk7d2lyZU1lc3NhZ2U9bmV3IG4oMyk7d2lyZU1lc3NhZ2UucGF5bG9hZE1lc3NhZ2U9";
    s += "YTswPGEucW9zP3RoaXMuX3JlcXVpcmVzX2Fjayh3aXJlTWVzc2FnZSk6dGhpcy5vbk1lc3NhZ2VEZWxpdmVyZWQmJih0aGlzLl9ub3RpZnlfbXNnX3NlbnRbd2lyZU1l";
    s += "c3NhZ2VdPXRoaXMub25NZXNzYWdlRGVsaXZlcmVkKHdpcmVNZXNzYWdlLnBheWxvYWRNZXNzYWdlKSk7dGhpcy5fc2NoZWR1bGVfbWVzc2FnZSh3aXJlTWVzc2FnZSl9";
    s += "O2sucHJvdG90eXBlLmRpc2Nvbm5lY3Q9ZnVuY3Rpb24oKXt0aGlzLl90cmFjZSgiQ2xpZW50LmRpc2Nvbm5lY3QiKTsKaWYoIXRoaXMuc29ja2V0KXRocm93IEVycm9y";
    s += "KGYoZy5JTlZBTElEX1NUQVRFLFsibm90IGNvbm5lY3Rpbmcgb3IgY29ubmVjdGVkIl0pKTt3aXJlTWVzc2FnZT1uZXcgbigxNCk7dGhpcy5fbm90aWZ5X21zZ19zZW50";
    s += "W3dpcmVNZXNzYWdlXT1xKHRoaXMuX2Rpc2Nvbm5lY3RlZCx0aGlzKTt0aGlzLl9zY2hlZHVsZV9tZXNzYWdlKHdpcmVNZXNzYWdlKX07ay5wcm90b3R5cGUuZ2V0VHJh";
    s += "Y2VMb2c9ZnVuY3Rpb24oKXtpZihudWxsIT09dGhpcy5fdHJhY2VCdWZmZXIpe3RoaXMuX3RyYWNlKCJDbGllbnQuZ2V0VHJhY2VMb2ciLG5ldyBEYXRlKTt0aGlzLl90";
    s += "cmFjZSgiQ2xpZW50LmdldFRyYWNlTG9nIGluIGZsaWdodCBtZXNzYWdlcyIsdGhpcy5fc2VudE1lc3NhZ2VzLmxlbmd0aCk7Zm9yKHZhciBhIGluIHRoaXMuX3NlbnRN";
    s += "ZXNzYWdlcyl0aGlzLl90cmFjZSgiX3NlbnRNZXNzYWdlcyAiLGEsdGhpcy5fc2VudE1lc3NhZ2VzW2FdKTtmb3IoYSBpbiB0aGlzLl9yZWNlaXZlZE1lc3NhZ2VzKXRo";
    s += "aXMuX3RyYWNlKCJfcmVjZWl2ZWRNZXNzYWdlcyAiLAphLHRoaXMuX3JlY2VpdmVkTWVzc2FnZXNbYV0pO3JldHVybiB0aGlzLl90cmFjZUJ1ZmZlcn19O2sucHJvdG90";
    s += "eXBlLnN0YXJ0VHJhY2U9ZnVuY3Rpb24oKXtudWxsPT09dGhpcy5fdHJhY2VCdWZmZXImJih0aGlzLl90cmFjZUJ1ZmZlcj1bXSk7dGhpcy5fdHJhY2UoIkNsaWVudC5z";
    s += "dGFydFRyYWNlIixuZXcgRGF0ZSwiQFZFUlNJT05AIil9O2sucHJvdG90eXBlLnN0b3BUcmFjZT1mdW5jdGlvbigpe2RlbGV0ZSB0aGlzLl90cmFjZUJ1ZmZlcn07ay5w";
    s += "cm90b3R5cGUuX2RvQ29ubmVjdD1mdW5jdGlvbihhKXt0aGlzLmNvbm5lY3RPcHRpb25zLnVzZVNTTCYmKGE9YS5zcGxpdCgiOiIpLGFbMF09IndzcyIsYT1hLmpvaW4o";
    s += "IjoiKSk7dGhpcy5jb25uZWN0ZWQ9ITE7dGhpcy5zb2NrZXQ9ND50aGlzLmNvbm5lY3RPcHRpb25zLm1xdHRWZXJzaW9uP25ldyBXZWJTb2NrZXQoYSxbIm1xdHR2My4x";
    s += "Il0pOm5ldyBXZWJTb2NrZXQoYSxbIm1xdHQiXSk7dGhpcy5zb2NrZXQuYmluYXJ5VHlwZT0KImFycmF5YnVmZmVyIjt0aGlzLnNvY2tldC5vbm9wZW49cSh0aGlzLl9v";
    s += "bl9zb2NrZXRfb3Blbix0aGlzKTt0aGlzLnNvY2tldC5vbm1lc3NhZ2U9cSh0aGlzLl9vbl9zb2NrZXRfbWVzc2FnZSx0aGlzKTt0aGlzLnNvY2tldC5vbmVycm9yPXEo";
    s += "dGhpcy5fb25fc29ja2V0X2Vycm9yLHRoaXMpO3RoaXMuc29ja2V0Lm9uY2xvc2U9cSh0aGlzLl9vbl9zb2NrZXRfY2xvc2UsdGhpcyk7dGhpcy5zZW5kUGluZ2VyPW5l";
    s += "dyBIKHRoaXMsd2luZG93LHRoaXMuY29ubmVjdE9wdGlvbnMua2VlcEFsaXZlSW50ZXJ2YWwpO3RoaXMucmVjZWl2ZVBpbmdlcj1uZXcgSCh0aGlzLHdpbmRvdyx0aGlz";
    s += "LmNvbm5lY3RPcHRpb25zLmtlZXBBbGl2ZUludGVydmFsKTt0aGlzLl9jb25uZWN0VGltZW91dD1uZXcgRCh0aGlzLHdpbmRvdyx0aGlzLmNvbm5lY3RPcHRpb25zLnRp";
    s += "bWVvdXQsdGhpcy5fZGlzY29ubmVjdGVkLFtnLkNPTk5FQ1RfVElNRU9VVC5jb2RlLGYoZy5DT05ORUNUX1RJTUVPVVQpXSl9O2sucHJvdG90eXBlLl9zY2hlZHVsZV9t";
    s += "ZXNzYWdlPQpmdW5jdGlvbihhKXt0aGlzLl9tc2dfcXVldWUucHVzaChhKTt0aGlzLmNvbm5lY3RlZCYmdGhpcy5fcHJvY2Vzc19xdWV1ZSgpfTtrLnByb3RvdHlwZS5z";
    s += "dG9yZT1mdW5jdGlvbihhLGIpe3ZhciBjPXt0eXBlOmIudHlwZSxtZXNzYWdlSWRlbnRpZmllcjpiLm1lc3NhZ2VJZGVudGlmaWVyLHZlcnNpb246MX07c3dpdGNoKGIu";
    s += "dHlwZSl7Y2FzZSAzOmIucHViUmVjUmVjZWl2ZWQmJihjLnB1YlJlY1JlY2VpdmVkPSEwKTtjLnBheWxvYWRNZXNzYWdlPXt9O2Zvcih2YXIgaD0iIixlPWIucGF5bG9h";
    s += "ZE1lc3NhZ2UucGF5bG9hZEJ5dGVzLGQ9MDtkPGUubGVuZ3RoO2QrKyloPTE1Pj1lW2RdP2grIjAiK2VbZF0udG9TdHJpbmcoMTYpOmgrZVtkXS50b1N0cmluZygxNik7";
    s += "Yy5wYXlsb2FkTWVzc2FnZS5wYXlsb2FkSGV4PWg7Yy5wYXlsb2FkTWVzc2FnZS5xb3M9Yi5wYXlsb2FkTWVzc2FnZS5xb3M7Yy5wYXlsb2FkTWVzc2FnZS5kZXN0aW5h";
    s += "dGlvbk5hbWU9Yi5wYXlsb2FkTWVzc2FnZS5kZXN0aW5hdGlvbk5hbWU7CmIucGF5bG9hZE1lc3NhZ2UuZHVwbGljYXRlJiYoYy5wYXlsb2FkTWVzc2FnZS5kdXBsaWNh";
    s += "dGU9ITApO2IucGF5bG9hZE1lc3NhZ2UucmV0YWluZWQmJihjLnBheWxvYWRNZXNzYWdlLnJldGFpbmVkPSEwKTswPT1hLmluZGV4T2YoIlNlbnQ6IikmJih2b2lkIDA9";
    s += "PT1iLnNlcXVlbmNlJiYoYi5zZXF1ZW5jZT0rK3RoaXMuX3NlcXVlbmNlKSxjLnNlcXVlbmNlPWIuc2VxdWVuY2UpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoZihn";
    s += "LklOVkFMSURfU1RPUkVEX0RBVEEsW2tleSxjXSkpO31sb2NhbFN0b3JhZ2Uuc2V0SXRlbShhK3RoaXMuX2xvY2FsS2V5K2IubWVzc2FnZUlkZW50aWZpZXIsSlNPTi5z";
    s += "dHJpbmdpZnkoYykpfTtrLnByb3RvdHlwZS5yZXN0b3JlPWZ1bmN0aW9uKGEpe3ZhciBiPWxvY2FsU3RvcmFnZS5nZXRJdGVtKGEpLGM9SlNPTi5wYXJzZShiKSxoPW5l";
    s += "dyBuKGMudHlwZSxjKTtzd2l0Y2goYy50eXBlKXtjYXNlIDM6Zm9yKHZhciBiPWMucGF5bG9hZE1lc3NhZ2UucGF5bG9hZEhleCwKZT1uZXcgQXJyYXlCdWZmZXIoYi5s";
    s += "ZW5ndGgvMiksZT1uZXcgVWludDhBcnJheShlKSxkPTA7Mjw9Yi5sZW5ndGg7KXt2YXIgaz1wYXJzZUludChiLnN1YnN0cmluZygwLDIpLDE2KSxiPWIuc3Vic3RyaW5n";
    s += "KDIsYi5sZW5ndGgpO2VbZCsrXT1rfWI9bmV3IFBhaG8uTVFUVC5NZXNzYWdlKGUpO2IucW9zPWMucGF5bG9hZE1lc3NhZ2UucW9zO2IuZGVzdGluYXRpb25OYW1lPWMu";
    s += "cGF5bG9hZE1lc3NhZ2UuZGVzdGluYXRpb25OYW1lO2MucGF5bG9hZE1lc3NhZ2UuZHVwbGljYXRlJiYoYi5kdXBsaWNhdGU9ITApO2MucGF5bG9hZE1lc3NhZ2UucmV0";
    s += "YWluZWQmJihiLnJldGFpbmVkPSEwKTtoLnBheWxvYWRNZXNzYWdlPWI7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcihmKGcuSU5WQUxJRF9TVE9SRURfREFUQSxbYSxi";
    s += "XSkpO30wPT1hLmluZGV4T2YoIlNlbnQ6Iit0aGlzLl9sb2NhbEtleSk/KGgucGF5bG9hZE1lc3NhZ2UuZHVwbGljYXRlPSEwLHRoaXMuX3NlbnRNZXNzYWdlc1toLm1l";
    s += "c3NhZ2VJZGVudGlmaWVyXT0KaCk6MD09YS5pbmRleE9mKCJSZWNlaXZlZDoiK3RoaXMuX2xvY2FsS2V5KSYmKHRoaXMuX3JlY2VpdmVkTWVzc2FnZXNbaC5tZXNzYWdl";
    s += "SWRlbnRpZmllcl09aCl9O2sucHJvdG90eXBlLl9wcm9jZXNzX3F1ZXVlPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPW51bGwsYj10aGlzLl9tc2dfcXVldWUucmV2ZXJzZSgp";
    s += "O2E9Yi5wb3AoKTspdGhpcy5fc29ja2V0X3NlbmQoYSksdGhpcy5fbm90aWZ5X21zZ19zZW50W2FdJiYodGhpcy5fbm90aWZ5X21zZ19zZW50W2FdKCksZGVsZXRlIHRo";
    s += "aXMuX25vdGlmeV9tc2dfc2VudFthXSl9O2sucHJvdG90eXBlLl9yZXF1aXJlc19hY2s9ZnVuY3Rpb24oYSl7dmFyIGI9T2JqZWN0LmtleXModGhpcy5fc2VudE1lc3Nh";
    s += "Z2VzKS5sZW5ndGg7aWYoYj50aGlzLm1heE1lc3NhZ2VJZGVudGlmaWVyKXRocm93IEVycm9yKCJUb28gbWFueSBtZXNzYWdlczoiK2IpO2Zvcig7dm9pZCAwIT09dGhp";
    s += "cy5fc2VudE1lc3NhZ2VzW3RoaXMuX21lc3NhZ2VfaWRlbnRpZmllcl07KXRoaXMuX21lc3NhZ2VfaWRlbnRpZmllcisrOwphLm1lc3NhZ2VJZGVudGlmaWVyPXRoaXMu";
    s += "X21lc3NhZ2VfaWRlbnRpZmllcjt0aGlzLl9zZW50TWVzc2FnZXNbYS5tZXNzYWdlSWRlbnRpZmllcl09YTszPT09YS50eXBlJiZ0aGlzLnN0b3JlKCJTZW50OiIsYSk7";
    s += "dGhpcy5fbWVzc2FnZV9pZGVudGlmaWVyPT09dGhpcy5tYXhNZXNzYWdlSWRlbnRpZmllciYmKHRoaXMuX21lc3NhZ2VfaWRlbnRpZmllcj0xKX07ay5wcm90b3R5cGUu";
    s += "X29uX3NvY2tldF9vcGVuPWZ1bmN0aW9uKCl7dmFyIGE9bmV3IG4oMSx0aGlzLmNvbm5lY3RPcHRpb25zKTthLmNsaWVudElkPXRoaXMuY2xpZW50SWQ7dGhpcy5fc29j";
    s += "a2V0X3NlbmQoYSl9O2sucHJvdG90eXBlLl9vbl9zb2NrZXRfbWVzc2FnZT1mdW5jdGlvbihhKXt0aGlzLl90cmFjZSgiQ2xpZW50Ll9vbl9zb2NrZXRfbWVzc2FnZSIs";
    s += "YS5kYXRhKTt0aGlzLnJlY2VpdmVQaW5nZXIucmVzZXQoKTthPXRoaXMuX2RlZnJhbWVNZXNzYWdlcyhhLmRhdGEpO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7Yis9CjEp";
    s += "dGhpcy5faGFuZGxlTWVzc2FnZShhW2JdKX07ay5wcm90b3R5cGUuX2RlZnJhbWVNZXNzYWdlcz1mdW5jdGlvbihhKXthPW5ldyBVaW50OEFycmF5KGEpO2lmKHRoaXMu";
    s += "cmVjZWl2ZUJ1ZmZlcil7dmFyIGI9bmV3IFVpbnQ4QXJyYXkodGhpcy5yZWNlaXZlQnVmZmVyLmxlbmd0aCthLmxlbmd0aCk7Yi5zZXQodGhpcy5yZWNlaXZlQnVmZmVy";
    s += "KTtiLnNldChhLHRoaXMucmVjZWl2ZUJ1ZmZlci5sZW5ndGgpO2E9YjtkZWxldGUgdGhpcy5yZWNlaXZlQnVmZmVyfXRyeXtmb3IodmFyIGI9MCxjPVtdO2I8YS5sZW5n";
    s += "dGg7KXt2YXIgaDthOnt2YXIgZT1hLGQ9YixrPWQsdD1lW2RdLGw9dD4+NCx6PXQmMTUsZD1kKzEsdj12b2lkIDAsRT0wLG09MTtkb3tpZihkPT1lLmxlbmd0aCl7aD1b";
    s += "bnVsbCxrXTticmVhayBhfXY9ZVtkKytdO0UrPSh2JjEyNykqbTttKj0xMjh9d2hpbGUoMCE9KHYmMTI4KSk7dj1kK0U7aWYodj5lLmxlbmd0aCloPVtudWxsLGtdO2Vs";
    s += "c2V7dmFyIHc9bmV3IG4obCk7c3dpdGNoKGwpe2Nhc2UgMjplW2QrK10mCjEmJih3LnNlc3Npb25QcmVzZW50PSEwKTt3LnJldHVybkNvZGU9ZVtkKytdO2JyZWFrO2Nh";
    s += "c2UgMzp2YXIgaz16Pj4xJjMscj0yNTYqZVtkXStlW2QrMV0sZD1kKzIsdT1HKGUsZCxyKSxkPWQrcjswPGsmJih3Lm1lc3NhZ2VJZGVudGlmaWVyPTI1NiplW2RdK2Vb";
    s += "ZCsxXSxkKz0yKTt2YXIgcT1uZXcgUGFoby5NUVRULk1lc3NhZ2UoZS5zdWJhcnJheShkLHYpKTsxPT0oeiYxKSYmKHEucmV0YWluZWQ9ITApOzg9PSh6JjgpJiYocS5k";
    s += "dXBsaWNhdGU9ITApO3EucW9zPWs7cS5kZXN0aW5hdGlvbk5hbWU9dTt3LnBheWxvYWRNZXNzYWdlPXE7YnJlYWs7Y2FzZSA0OmNhc2UgNTpjYXNlIDY6Y2FzZSA3OmNh";
    s += "c2UgMTE6dy5tZXNzYWdlSWRlbnRpZmllcj0yNTYqZVtkXStlW2QrMV07YnJlYWs7Y2FzZSA5OncubWVzc2FnZUlkZW50aWZpZXI9MjU2KmVbZF0rZVtkKzFdLGQrPTIs";
    s += "dy5yZXR1cm5Db2RlPWUuc3ViYXJyYXkoZCx2KX1oPVt3LHZdfX12YXIgeD1oWzBdLGI9aFsxXTtpZihudWxsIT09CngpYy5wdXNoKHgpO2Vsc2UgYnJlYWt9YjxhLmxl";
    s += "bmd0aCYmKHRoaXMucmVjZWl2ZUJ1ZmZlcj1hLnN1YmFycmF5KGIpKX1jYXRjaCh5KXt0aGlzLl9kaXNjb25uZWN0ZWQoZy5JTlRFUk5BTF9FUlJPUi5jb2RlLGYoZy5J";
    s += "TlRFUk5BTF9FUlJPUixbeS5tZXNzYWdlLHkuc3RhY2sudG9TdHJpbmcoKV0pKTtyZXR1cm59cmV0dXJuIGN9O2sucHJvdG90eXBlLl9oYW5kbGVNZXNzYWdlPWZ1bmN0";
    s += "aW9uKGEpe3RoaXMuX3RyYWNlKCJDbGllbnQuX2hhbmRsZU1lc3NhZ2UiLGEpO3RyeXtzd2l0Y2goYS50eXBlKXtjYXNlIDI6dGhpcy5fY29ubmVjdFRpbWVvdXQuY2Fu";
    s += "Y2VsKCk7aWYodGhpcy5jb25uZWN0T3B0aW9ucy5jbGVhblNlc3Npb24pe2Zvcih2YXIgYiBpbiB0aGlzLl9zZW50TWVzc2FnZXMpe3ZhciBjPXRoaXMuX3NlbnRNZXNz";
    s += "YWdlc1tiXTtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiU2VudDoiK3RoaXMuX2xvY2FsS2V5K2MubWVzc2FnZUlkZW50aWZpZXIpfXRoaXMuX3NlbnRNZXNzYWdlcz0K";
    s += "e307Zm9yKGIgaW4gdGhpcy5fcmVjZWl2ZWRNZXNzYWdlcyl7dmFyIGg9dGhpcy5fcmVjZWl2ZWRNZXNzYWdlc1tiXTtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiUmVj";
    s += "ZWl2ZWQ6Iit0aGlzLl9sb2NhbEtleStoLm1lc3NhZ2VJZGVudGlmaWVyKX10aGlzLl9yZWNlaXZlZE1lc3NhZ2VzPXt9fWlmKDA9PT1hLnJldHVybkNvZGUpdGhpcy5j";
    s += "b25uZWN0ZWQ9ITAsdGhpcy5jb25uZWN0T3B0aW9ucy51cmlzJiYodGhpcy5ob3N0SW5kZXg9dGhpcy5jb25uZWN0T3B0aW9ucy51cmlzLmxlbmd0aCk7ZWxzZXt0aGlz";
    s += "Ll9kaXNjb25uZWN0ZWQoZy5DT05OQUNLX1JFVFVSTkNPREUuY29kZSxmKGcuQ09OTkFDS19SRVRVUk5DT0RFLFthLnJldHVybkNvZGUsSlthLnJldHVybkNvZGVdXSkp";
    s += "O2JyZWFrfWE9W107Zm9yKHZhciBlIGluIHRoaXMuX3NlbnRNZXNzYWdlcyl0aGlzLl9zZW50TWVzc2FnZXMuaGFzT3duUHJvcGVydHkoZSkmJmEucHVzaCh0aGlzLl9z";
    s += "ZW50TWVzc2FnZXNbZV0pO2E9YS5zb3J0KGZ1bmN0aW9uKGEsCmIpe3JldHVybiBhLnNlcXVlbmNlLWIuc2VxdWVuY2V9KTtlPTA7Zm9yKHZhciBkPWEubGVuZ3RoO2U8";
    s += "ZDtlKyspaWYoYz1hW2VdLDM9PWMudHlwZSYmYy5wdWJSZWNSZWNlaXZlZCl7dmFyIGs9bmV3IG4oNix7bWVzc2FnZUlkZW50aWZpZXI6Yy5tZXNzYWdlSWRlbnRpZmll";
    s += "cn0pO3RoaXMuX3NjaGVkdWxlX21lc3NhZ2Uoayl9ZWxzZSB0aGlzLl9zY2hlZHVsZV9tZXNzYWdlKGMpO2lmKHRoaXMuY29ubmVjdE9wdGlvbnMub25TdWNjZXNzKXRo";
    s += "aXMuY29ubmVjdE9wdGlvbnMub25TdWNjZXNzKHtpbnZvY2F0aW9uQ29udGV4dDp0aGlzLmNvbm5lY3RPcHRpb25zLmludm9jYXRpb25Db250ZXh0fSk7dGhpcy5fcHJv";
    s += "Y2Vzc19xdWV1ZSgpO2JyZWFrO2Nhc2UgMzp0aGlzLl9yZWNlaXZlUHVibGlzaChhKTticmVhaztjYXNlIDQ6aWYoYz10aGlzLl9zZW50TWVzc2FnZXNbYS5tZXNzYWdl";
    s += "SWRlbnRpZmllcl0paWYoZGVsZXRlIHRoaXMuX3NlbnRNZXNzYWdlc1thLm1lc3NhZ2VJZGVudGlmaWVyXSwKbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIlNlbnQ6Iit0";
    s += "aGlzLl9sb2NhbEtleSthLm1lc3NhZ2VJZGVudGlmaWVyKSx0aGlzLm9uTWVzc2FnZURlbGl2ZXJlZCl0aGlzLm9uTWVzc2FnZURlbGl2ZXJlZChjLnBheWxvYWRNZXNz";
    s += "YWdlKTticmVhaztjYXNlIDU6aWYoYz10aGlzLl9zZW50TWVzc2FnZXNbYS5tZXNzYWdlSWRlbnRpZmllcl0pYy5wdWJSZWNSZWNlaXZlZD0hMCxrPW5ldyBuKDYse21l";
    s += "c3NhZ2VJZGVudGlmaWVyOmEubWVzc2FnZUlkZW50aWZpZXJ9KSx0aGlzLnN0b3JlKCJTZW50OiIsYyksdGhpcy5fc2NoZWR1bGVfbWVzc2FnZShrKTticmVhaztjYXNl";
    s += "IDY6aD10aGlzLl9yZWNlaXZlZE1lc3NhZ2VzW2EubWVzc2FnZUlkZW50aWZpZXJdO2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJSZWNlaXZlZDoiK3RoaXMuX2xvY2Fs";
    s += "S2V5K2EubWVzc2FnZUlkZW50aWZpZXIpO2gmJih0aGlzLl9yZWNlaXZlTWVzc2FnZShoKSxkZWxldGUgdGhpcy5fcmVjZWl2ZWRNZXNzYWdlc1thLm1lc3NhZ2VJZGVu";
    s += "dGlmaWVyXSk7CnZhciBtPW5ldyBuKDcse21lc3NhZ2VJZGVudGlmaWVyOmEubWVzc2FnZUlkZW50aWZpZXJ9KTt0aGlzLl9zY2hlZHVsZV9tZXNzYWdlKG0pO2JyZWFr";
    s += "O2Nhc2UgNzpjPXRoaXMuX3NlbnRNZXNzYWdlc1thLm1lc3NhZ2VJZGVudGlmaWVyXTtkZWxldGUgdGhpcy5fc2VudE1lc3NhZ2VzW2EubWVzc2FnZUlkZW50aWZpZXJd";
    s += "O2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJTZW50OiIrdGhpcy5fbG9jYWxLZXkrYS5tZXNzYWdlSWRlbnRpZmllcik7aWYodGhpcy5vbk1lc3NhZ2VEZWxpdmVyZWQp";
    s += "dGhpcy5vbk1lc3NhZ2VEZWxpdmVyZWQoYy5wYXlsb2FkTWVzc2FnZSk7YnJlYWs7Y2FzZSA5OmlmKGM9dGhpcy5fc2VudE1lc3NhZ2VzW2EubWVzc2FnZUlkZW50aWZp";
    s += "ZXJdKXtjLnRpbWVPdXQmJmMudGltZU91dC5jYW5jZWwoKTthLnJldHVybkNvZGUuaW5kZXhPZj1BcnJheS5wcm90b3R5cGUuaW5kZXhPZjtpZigtMSE9PWEucmV0dXJu";
    s += "Q29kZS5pbmRleE9mKDEyOCkpe2lmKGMub25GYWlsdXJlKWMub25GYWlsdXJlKGEucmV0dXJuQ29kZSl9ZWxzZSBpZihjLm9uU3VjY2VzcyljLm9uU3VjY2VzcyhhLnJl";
    s += "dHVybkNvZGUpOwpkZWxldGUgdGhpcy5fc2VudE1lc3NhZ2VzW2EubWVzc2FnZUlkZW50aWZpZXJdfWJyZWFrO2Nhc2UgMTE6aWYoYz10aGlzLl9zZW50TWVzc2FnZXNb";
    s += "YS5tZXNzYWdlSWRlbnRpZmllcl0pYy50aW1lT3V0JiZjLnRpbWVPdXQuY2FuY2VsKCksYy5jYWxsYmFjayYmYy5jYWxsYmFjaygpLGRlbGV0ZSB0aGlzLl9zZW50TWVz";
    s += "c2FnZXNbYS5tZXNzYWdlSWRlbnRpZmllcl07YnJlYWs7Y2FzZSAxMzp0aGlzLnNlbmRQaW5nZXIucmVzZXQoKTticmVhaztjYXNlIDE0OnRoaXMuX2Rpc2Nvbm5lY3Rl";
    s += "ZChnLklOVkFMSURfTVFUVF9NRVNTQUdFX1RZUEUuY29kZSxmKGcuSU5WQUxJRF9NUVRUX01FU1NBR0VfVFlQRSxbYS50eXBlXSkpO2JyZWFrO2RlZmF1bHQ6dGhpcy5f";
    s += "ZGlzY29ubmVjdGVkKGcuSU5WQUxJRF9NUVRUX01FU1NBR0VfVFlQRS5jb2RlLGYoZy5JTlZBTElEX01RVFRfTUVTU0FHRV9UWVBFLFthLnR5cGVdKSl9fWNhdGNoKGwp";
    s += "e3RoaXMuX2Rpc2Nvbm5lY3RlZChnLklOVEVSTkFMX0VSUk9SLmNvZGUsCmYoZy5JTlRFUk5BTF9FUlJPUixbbC5tZXNzYWdlLGwuc3RhY2sudG9TdHJpbmcoKV0pKX19";
    s += "O2sucHJvdG90eXBlLl9vbl9zb2NrZXRfZXJyb3I9ZnVuY3Rpb24oYSl7dGhpcy5fZGlzY29ubmVjdGVkKGcuU09DS0VUX0VSUk9SLmNvZGUsZihnLlNPQ0tFVF9FUlJP";
    s += "UixbYS5kYXRhXSkpfTtrLnByb3RvdHlwZS5fb25fc29ja2V0X2Nsb3NlPWZ1bmN0aW9uKCl7dGhpcy5fZGlzY29ubmVjdGVkKGcuU09DS0VUX0NMT1NFLmNvZGUsZihn";
    s += "LlNPQ0tFVF9DTE9TRSkpfTtrLnByb3RvdHlwZS5fc29ja2V0X3NlbmQ9ZnVuY3Rpb24oYSl7aWYoMT09YS50eXBlKXt2YXIgYj10aGlzLl90cmFjZU1hc2soYSwicGFz";
    s += "c3dvcmQiKTt0aGlzLl90cmFjZSgiQ2xpZW50Ll9zb2NrZXRfc2VuZCIsYil9ZWxzZSB0aGlzLl90cmFjZSgiQ2xpZW50Ll9zb2NrZXRfc2VuZCIsYSk7dGhpcy5zb2Nr";
    s += "ZXQuc2VuZChhLmVuY29kZSgpKTt0aGlzLnNlbmRQaW5nZXIucmVzZXQoKX07ay5wcm90b3R5cGUuX3JlY2VpdmVQdWJsaXNoPQpmdW5jdGlvbihhKXtzd2l0Y2goYS5w";
    s += "YXlsb2FkTWVzc2FnZS5xb3Mpe2Nhc2UgInVuZGVmaW5lZCI6Y2FzZSAwOnRoaXMuX3JlY2VpdmVNZXNzYWdlKGEpO2JyZWFrO2Nhc2UgMTp2YXIgYj1uZXcgbig0LHtt";
    s += "ZXNzYWdlSWRlbnRpZmllcjphLm1lc3NhZ2VJZGVudGlmaWVyfSk7dGhpcy5fc2NoZWR1bGVfbWVzc2FnZShiKTt0aGlzLl9yZWNlaXZlTWVzc2FnZShhKTticmVhaztj";
    s += "YXNlIDI6dGhpcy5fcmVjZWl2ZWRNZXNzYWdlc1thLm1lc3NhZ2VJZGVudGlmaWVyXT1hO3RoaXMuc3RvcmUoIlJlY2VpdmVkOiIsYSk7YT1uZXcgbig1LHttZXNzYWdl";
    s += "SWRlbnRpZmllcjphLm1lc3NhZ2VJZGVudGlmaWVyfSk7dGhpcy5fc2NoZWR1bGVfbWVzc2FnZShhKTticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJJbnZhaWxkIHFv";
    s += "cz0iK3dpcmVNbWVzc2FnZS5wYXlsb2FkTWVzc2FnZS5xb3MpO319O2sucHJvdG90eXBlLl9yZWNlaXZlTWVzc2FnZT1mdW5jdGlvbihhKXtpZih0aGlzLm9uTWVzc2Fn";
    s += "ZUFycml2ZWQpdGhpcy5vbk1lc3NhZ2VBcnJpdmVkKGEucGF5bG9hZE1lc3NhZ2UpfTsKay5wcm90b3R5cGUuX2Rpc2Nvbm5lY3RlZD1mdW5jdGlvbihhLGIpe3RoaXMu";
    s += "X3RyYWNlKCJDbGllbnQuX2Rpc2Nvbm5lY3RlZCIsYSxiKTt0aGlzLnNlbmRQaW5nZXIuY2FuY2VsKCk7dGhpcy5yZWNlaXZlUGluZ2VyLmNhbmNlbCgpO3RoaXMuX2Nv";
    s += "bm5lY3RUaW1lb3V0JiZ0aGlzLl9jb25uZWN0VGltZW91dC5jYW5jZWwoKTt0aGlzLl9tc2dfcXVldWU9W107dGhpcy5fbm90aWZ5X21zZ19zZW50PXt9O3RoaXMuc29j";
    s += "a2V0JiYodGhpcy5zb2NrZXQub25vcGVuPW51bGwsdGhpcy5zb2NrZXQub25tZXNzYWdlPW51bGwsdGhpcy5zb2NrZXQub25lcnJvcj1udWxsLHRoaXMuc29ja2V0Lm9u";
    s += "Y2xvc2U9bnVsbCwxPT09dGhpcy5zb2NrZXQucmVhZHlTdGF0ZSYmdGhpcy5zb2NrZXQuY2xvc2UoKSxkZWxldGUgdGhpcy5zb2NrZXQpO2lmKHRoaXMuY29ubmVjdE9w";
    s += "dGlvbnMudXJpcyYmdGhpcy5ob3N0SW5kZXg8dGhpcy5jb25uZWN0T3B0aW9ucy51cmlzLmxlbmd0aC0xKXRoaXMuaG9zdEluZGV4KyssCnRoaXMuX2RvQ29ubmVjdCh0";
    s += "aGlzLmNvbm5lY3RPcHRpb25zLnVyaXNbdGhpcy5ob3N0SW5kZXhdKTtlbHNlIGlmKHZvaWQgMD09PWEmJihhPWcuT0suY29kZSxiPWYoZy5PSykpLHRoaXMuY29ubmVj";
    s += "dGVkKXtpZih0aGlzLmNvbm5lY3RlZD0hMSx0aGlzLm9uQ29ubmVjdGlvbkxvc3QpdGhpcy5vbkNvbm5lY3Rpb25Mb3N0KHtlcnJvckNvZGU6YSxlcnJvck1lc3NhZ2U6";
    s += "Yn0pfWVsc2UgaWYoND09PXRoaXMuY29ubmVjdE9wdGlvbnMubXF0dFZlcnNpb24mJiExPT09dGhpcy5jb25uZWN0T3B0aW9ucy5tcXR0VmVyc2lvbkV4cGxpY2l0KXRo";
    s += "aXMuX3RyYWNlKCJGYWlsZWQgdG8gY29ubmVjdCBWNCwgZHJvcHBpbmcgYmFjayB0byBWMyIpLHRoaXMuY29ubmVjdE9wdGlvbnMubXF0dFZlcnNpb249Myx0aGlzLmNv";
    s += "bm5lY3RPcHRpb25zLnVyaXM/KHRoaXMuaG9zdEluZGV4PTAsdGhpcy5fZG9Db25uZWN0KHRoaXMuY29ubmVjdE9wdGlvbnMudXJpc1swXSkpOnRoaXMuX2RvQ29ubmVj";
    s += "dCh0aGlzLnVyaSk7CmVsc2UgaWYodGhpcy5jb25uZWN0T3B0aW9ucy5vbkZhaWx1cmUpdGhpcy5jb25uZWN0T3B0aW9ucy5vbkZhaWx1cmUoe2ludm9jYXRpb25Db250";
    s += "ZXh0OnRoaXMuY29ubmVjdE9wdGlvbnMuaW52b2NhdGlvbkNvbnRleHQsZXJyb3JDb2RlOmEsZXJyb3JNZXNzYWdlOmJ9KX07ay5wcm90b3R5cGUuX3RyYWNlPWZ1bmN0";
    s += "aW9uKCl7aWYodGhpcy50cmFjZUZ1bmN0aW9uKXtmb3IodmFyIGEgaW4gYXJndW1lbnRzKSJ1bmRlZmluZWQiIT09dHlwZW9mIGFyZ3VtZW50c1thXSYmKGFyZ3VtZW50";
    s += "c1thXT1KU09OLnN0cmluZ2lmeShhcmd1bWVudHNbYV0pKTthPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykuam9pbigiIik7dGhpcy50cmFjZUZ1";
    s += "bmN0aW9uKHtzZXZlcml0eToiRGVidWciLG1lc3NhZ2U6YX0pfWlmKG51bGwhPT10aGlzLl90cmFjZUJ1ZmZlcil7YT0wO2Zvcih2YXIgYj1hcmd1bWVudHMubGVuZ3Ro";
    s += "O2E8YjthKyspdGhpcy5fdHJhY2VCdWZmZXIubGVuZ3RoPT0KdGhpcy5fTUFYX1RSQUNFX0VOVFJJRVMmJnRoaXMuX3RyYWNlQnVmZmVyLnNoaWZ0KCksMD09PWE/dGhp";
    s += "cy5fdHJhY2VCdWZmZXIucHVzaChhcmd1bWVudHNbYV0pOiJ1bmRlZmluZWQiPT09dHlwZW9mIGFyZ3VtZW50c1thXT90aGlzLl90cmFjZUJ1ZmZlci5wdXNoKGFyZ3Vt";
    s += "ZW50c1thXSk6dGhpcy5fdHJhY2VCdWZmZXIucHVzaCgiICAiK0pTT04uc3RyaW5naWZ5KGFyZ3VtZW50c1thXSkpfX07ay5wcm90b3R5cGUuX3RyYWNlTWFzaz1mdW5j";
    s += "dGlvbihhLGIpe3ZhciBjPXt9LGY7Zm9yKGYgaW4gYSlhLmhhc093blByb3BlcnR5KGYpJiYoY1tmXT1mPT1iPyIqKioqKioiOmFbZl0pO3JldHVybiBjfTt2YXIgST1m";
    s += "dW5jdGlvbihhLGIsYyxoKXt2YXIgZTtpZigic3RyaW5nIiE9PXR5cGVvZiBhKXRocm93IEVycm9yKGYoZy5JTlZBTElEX1RZUEUsW3R5cGVvZiBhLCJob3N0Il0pKTtp";
    s += "ZigyPT1hcmd1bWVudHMubGVuZ3RoKXtoPWI7ZT1hO3ZhciBkPWUubWF0Y2goL14od3NzPyk6XC9cLygoXFsoLispXF0pfChbXlwvXSs/KSkoOihcZCspKT8oXC8uKikk";
    s += "Lyk7CmlmKGQpYT1kWzRdfHxkWzJdLGI9cGFyc2VJbnQoZFs3XSksYz1kWzhdO2Vsc2UgdGhyb3cgRXJyb3IoZihnLklOVkFMSURfQVJHVU1FTlQsW2EsImhvc3QiXSkp";
    s += "O31lbHNlezM9PWFyZ3VtZW50cy5sZW5ndGgmJihoPWMsYz0iL21xdHQiKTtpZigibnVtYmVyIiE9PXR5cGVvZiBifHwwPmIpdGhyb3cgRXJyb3IoZihnLklOVkFMSURf";
    s += "VFlQRSxbdHlwZW9mIGIsInBvcnQiXSkpO2lmKCJzdHJpbmciIT09dHlwZW9mIGMpdGhyb3cgRXJyb3IoZihnLklOVkFMSURfVFlQRSxbdHlwZW9mIGMsInBhdGgiXSkp";
    s += "O2U9IndzOi8vIisoLTEhPWEuaW5kZXhPZigiOiIpJiYiWyIhPWEuc2xpY2UoMCwxKSYmIl0iIT1hLnNsaWNlKC0xKT8iWyIrYSsiXSI6YSkrIjoiK2IrY31mb3IodmFy";
    s += "IHA9ZD0wO3A8aC5sZW5ndGg7cCsrKXt2YXIgbT1oLmNoYXJDb2RlQXQocCk7NTUyOTY8PW0mJjU2MzE5Pj1tJiZwKys7ZCsrfWlmKCJzdHJpbmciIT09dHlwZW9mIGh8";
    s += "fDY1NTM1PGQpdGhyb3cgRXJyb3IoZihnLklOVkFMSURfQVJHVU1FTlQsCltoLCJjbGllbnRJZCJdKSk7dmFyIGw9bmV3IGsoZSxhLGIsYyxoKTt0aGlzLl9nZXRIb3N0";
    s += "PWZ1bmN0aW9uKCl7cmV0dXJuIGF9O3RoaXMuX3NldEhvc3Q9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcihmKGcuVU5TVVBQT1JURURfT1BFUkFUSU9OKSk7fTt0aGlzLl9n";
    s += "ZXRQb3J0PWZ1bmN0aW9uKCl7cmV0dXJuIGJ9O3RoaXMuX3NldFBvcnQ9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcihmKGcuVU5TVVBQT1JURURfT1BFUkFUSU9OKSk7fTt0";
    s += "aGlzLl9nZXRQYXRoPWZ1bmN0aW9uKCl7cmV0dXJuIGN9O3RoaXMuX3NldFBhdGg9ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcihmKGcuVU5TVVBQT1JURURfT1BFUkFUSU9O";
    s += "KSk7fTt0aGlzLl9nZXRVUkk9ZnVuY3Rpb24oKXtyZXR1cm4gZX07dGhpcy5fc2V0VVJJPWZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoZihnLlVOU1VQUE9SVEVEX09QRVJB";
    s += "VElPTikpO307dGhpcy5fZ2V0Q2xpZW50SWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbC5jbGllbnRJZH07dGhpcy5fc2V0Q2xpZW50SWQ9CmZ1bmN0aW9uKCl7dGhyb3cgRXJy";
    s += "b3IoZihnLlVOU1VQUE9SVEVEX09QRVJBVElPTikpO307dGhpcy5fZ2V0T25Db25uZWN0aW9uTG9zdD1mdW5jdGlvbigpe3JldHVybiBsLm9uQ29ubmVjdGlvbkxvc3R9";
    s += "O3RoaXMuX3NldE9uQ29ubmVjdGlvbkxvc3Q9ZnVuY3Rpb24oYSl7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBhKWwub25Db25uZWN0aW9uTG9zdD1hO2Vsc2UgdGhyb3cg";
    s += "RXJyb3IoZihnLklOVkFMSURfVFlQRSxbdHlwZW9mIGEsIm9uQ29ubmVjdGlvbkxvc3QiXSkpO307dGhpcy5fZ2V0T25NZXNzYWdlRGVsaXZlcmVkPWZ1bmN0aW9uKCl7";
    s += "cmV0dXJuIGwub25NZXNzYWdlRGVsaXZlcmVkfTt0aGlzLl9zZXRPbk1lc3NhZ2VEZWxpdmVyZWQ9ZnVuY3Rpb24oYSl7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBhKWwu";
    s += "b25NZXNzYWdlRGVsaXZlcmVkPWE7ZWxzZSB0aHJvdyBFcnJvcihmKGcuSU5WQUxJRF9UWVBFLFt0eXBlb2YgYSwib25NZXNzYWdlRGVsaXZlcmVkIl0pKTt9O3RoaXMu";
    s += "X2dldE9uTWVzc2FnZUFycml2ZWQ9CmZ1bmN0aW9uKCl7cmV0dXJuIGwub25NZXNzYWdlQXJyaXZlZH07dGhpcy5fc2V0T25NZXNzYWdlQXJyaXZlZD1mdW5jdGlvbihh";
    s += "KXtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEpbC5vbk1lc3NhZ2VBcnJpdmVkPWE7ZWxzZSB0aHJvdyBFcnJvcihmKGcuSU5WQUxJRF9UWVBFLFt0eXBlb2YgYSwib25N";
    s += "ZXNzYWdlQXJyaXZlZCJdKSk7fTt0aGlzLl9nZXRUcmFjZT1mdW5jdGlvbigpe3JldHVybiBsLnRyYWNlRnVuY3Rpb259O3RoaXMuX3NldFRyYWNlPWZ1bmN0aW9uKGEp";
    s += "e2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYSlsLnRyYWNlRnVuY3Rpb249YTtlbHNlIHRocm93IEVycm9yKGYoZy5JTlZBTElEX1RZUEUsW3R5cGVvZiBhLCJvblRyYWNl";
    s += "Il0pKTt9O3RoaXMuY29ubmVjdD1mdW5jdGlvbihhKXthPWF8fHt9O0EoYSx7dGltZW91dDoibnVtYmVyIix1c2VyTmFtZToic3RyaW5nIixwYXNzd29yZDoic3RyaW5n";
    s += "Iix3aWxsTWVzc2FnZToib2JqZWN0IixrZWVwQWxpdmVJbnRlcnZhbDoibnVtYmVyIiwKY2xlYW5TZXNzaW9uOiJib29sZWFuIix1c2VTU0w6ImJvb2xlYW4iLGludm9j";
    s += "YXRpb25Db250ZXh0OiJvYmplY3QiLG9uU3VjY2VzczoiZnVuY3Rpb24iLG9uRmFpbHVyZToiZnVuY3Rpb24iLGhvc3RzOiJvYmplY3QiLHBvcnRzOiJvYmplY3QiLG1x";
    s += "dHRWZXJzaW9uOiJudW1iZXIifSk7dm9pZCAwPT09YS5rZWVwQWxpdmVJbnRlcnZhbCYmKGEua2VlcEFsaXZlSW50ZXJ2YWw9NjApO2lmKDQ8YS5tcXR0VmVyc2lvbnx8";
    s += "Mz5hLm1xdHRWZXJzaW9uKXRocm93IEVycm9yKGYoZy5JTlZBTElEX0FSR1VNRU5ULFthLm1xdHRWZXJzaW9uLCJjb25uZWN0T3B0aW9ucy5tcXR0VmVyc2lvbiJdKSk7";
    s += "dm9pZCAwPT09YS5tcXR0VmVyc2lvbj8oYS5tcXR0VmVyc2lvbkV4cGxpY2l0PSExLGEubXF0dFZlcnNpb249NCk6YS5tcXR0VmVyc2lvbkV4cGxpY2l0PSEwO2lmKHZv";
    s += "aWQgMD09PWEucGFzc3dvcmQmJnZvaWQgMCE9PWEudXNlck5hbWUpdGhyb3cgRXJyb3IoZihnLklOVkFMSURfQVJHVU1FTlQsClthLnBhc3N3b3JkLCJjb25uZWN0T3B0";
    s += "aW9ucy5wYXNzd29yZCJdKSk7aWYoYS53aWxsTWVzc2FnZSl7aWYoIShhLndpbGxNZXNzYWdlIGluc3RhbmNlb2YgeCkpdGhyb3cgRXJyb3IoZihnLklOVkFMSURfVFlQ";
    s += "RSxbYS53aWxsTWVzc2FnZSwiY29ubmVjdE9wdGlvbnMud2lsbE1lc3NhZ2UiXSkpO2Eud2lsbE1lc3NhZ2Uuc3RyaW5nUGF5bG9hZDtpZigidW5kZWZpbmVkIj09PXR5";
    s += "cGVvZiBhLndpbGxNZXNzYWdlLmRlc3RpbmF0aW9uTmFtZSl0aHJvdyBFcnJvcihmKGcuSU5WQUxJRF9UWVBFLFt0eXBlb2YgYS53aWxsTWVzc2FnZS5kZXN0aW5hdGlv";
    s += "bk5hbWUsImNvbm5lY3RPcHRpb25zLndpbGxNZXNzYWdlLmRlc3RpbmF0aW9uTmFtZSJdKSk7fSJ1bmRlZmluZWQiPT09dHlwZW9mIGEuY2xlYW5TZXNzaW9uJiYoYS5j";
    s += "bGVhblNlc3Npb249ITApO2lmKGEuaG9zdHMpe2lmKCEoYS5ob3N0cyBpbnN0YW5jZW9mIEFycmF5KSl0aHJvdyBFcnJvcihmKGcuSU5WQUxJRF9BUkdVTUVOVCxbYS5o";
    s += "b3N0cywKImNvbm5lY3RPcHRpb25zLmhvc3RzIl0pKTtpZigxPmEuaG9zdHMubGVuZ3RoKXRocm93IEVycm9yKGYoZy5JTlZBTElEX0FSR1VNRU5ULFthLmhvc3RzLCJj";
    s += "b25uZWN0T3B0aW9ucy5ob3N0cyJdKSk7Zm9yKHZhciBiPSExLGQ9MDtkPGEuaG9zdHMubGVuZ3RoO2QrKyl7aWYoInN0cmluZyIhPT10eXBlb2YgYS5ob3N0c1tkXSl0";
    s += "aHJvdyBFcnJvcihmKGcuSU5WQUxJRF9UWVBFLFt0eXBlb2YgYS5ob3N0c1tkXSwiY29ubmVjdE9wdGlvbnMuaG9zdHNbIitkKyJdIl0pKTtpZigvXih3c3M/KTpcL1wv";
    s += "KChcWyguKylcXSl8KFteXC9dKz8pKSg6KFxkKykpPyhcLy4qKSQvLnRlc3QoYS5ob3N0c1tkXSkpaWYoMD09ZCliPSEwO2Vsc2V7aWYoIWIpdGhyb3cgRXJyb3IoZihn";
    s += "LklOVkFMSURfQVJHVU1FTlQsW2EuaG9zdHNbZF0sImNvbm5lY3RPcHRpb25zLmhvc3RzWyIrZCsiXSJdKSk7fWVsc2UgaWYoYil0aHJvdyBFcnJvcihmKGcuSU5WQUxJ";
    s += "RF9BUkdVTUVOVCxbYS5ob3N0c1tkXSwiY29ubmVjdE9wdGlvbnMuaG9zdHNbIisKZCsiXSJdKSk7fWlmKGIpYS51cmlzPWEuaG9zdHM7ZWxzZXtpZighYS5wb3J0cyl0";
    s += "aHJvdyBFcnJvcihmKGcuSU5WQUxJRF9BUkdVTUVOVCxbYS5wb3J0cywiY29ubmVjdE9wdGlvbnMucG9ydHMiXSkpO2lmKCEoYS5wb3J0cyBpbnN0YW5jZW9mIEFycmF5";
    s += "KSl0aHJvdyBFcnJvcihmKGcuSU5WQUxJRF9BUkdVTUVOVCxbYS5wb3J0cywiY29ubmVjdE9wdGlvbnMucG9ydHMiXSkpO2lmKGEuaG9zdHMubGVuZ3RoIT1hLnBvcnRz";
    s += "Lmxlbmd0aCl0aHJvdyBFcnJvcihmKGcuSU5WQUxJRF9BUkdVTUVOVCxbYS5wb3J0cywiY29ubmVjdE9wdGlvbnMucG9ydHMiXSkpO2EudXJpcz1bXTtmb3IoZD0wO2Q8";
    s += "YS5ob3N0cy5sZW5ndGg7ZCsrKXtpZigibnVtYmVyIiE9PXR5cGVvZiBhLnBvcnRzW2RdfHwwPmEucG9ydHNbZF0pdGhyb3cgRXJyb3IoZihnLklOVkFMSURfVFlQRSxb";
    s += "dHlwZW9mIGEucG9ydHNbZF0sImNvbm5lY3RPcHRpb25zLnBvcnRzWyIrZCsiXSJdKSk7dmFyIGI9YS5ob3N0c1tkXSxoPQphLnBvcnRzW2RdO2U9IndzOi8vIisoLTEh";
    s += "PWIuaW5kZXhPZigiOiIpPyJbIitiKyJdIjpiKSsiOiIraCtjO2EudXJpcy5wdXNoKGUpfX19bC5jb25uZWN0KGEpfTt0aGlzLnN1YnNjcmliZT1mdW5jdGlvbihhLGIp";
    s += "e2lmKCJzdHJpbmciIT09dHlwZW9mIGEpdGhyb3cgRXJyb3IoIkludmFsaWQgYXJndW1lbnQ6IithKTtiPWJ8fHt9O0EoYix7cW9zOiJudW1iZXIiLGludm9jYXRpb25D";
    s += "b250ZXh0OiJvYmplY3QiLG9uU3VjY2VzczoiZnVuY3Rpb24iLG9uRmFpbHVyZToiZnVuY3Rpb24iLHRpbWVvdXQ6Im51bWJlciJ9KTtpZihiLnRpbWVvdXQmJiFiLm9u";
    s += "RmFpbHVyZSl0aHJvdyBFcnJvcigic3Vic2NyaWJlT3B0aW9ucy50aW1lb3V0IHNwZWNpZmllZCB3aXRoIG5vIG9uRmFpbHVyZSBjYWxsYmFjay4iKTtpZigidW5kZWZp";
    s += "bmVkIiE9PXR5cGVvZiBiLnFvcyYmMCE9PWIucW9zJiYxIT09Yi5xb3MmJjIhPT1iLnFvcyl0aHJvdyBFcnJvcihmKGcuSU5WQUxJRF9BUkdVTUVOVCxbYi5xb3MsCiJz";
    s += "dWJzY3JpYmVPcHRpb25zLnFvcyJdKSk7bC5zdWJzY3JpYmUoYSxiKX07dGhpcy51bnN1YnNjcmliZT1mdW5jdGlvbihhLGIpe2lmKCJzdHJpbmciIT09dHlwZW9mIGEp";
    s += "dGhyb3cgRXJyb3IoIkludmFsaWQgYXJndW1lbnQ6IithKTtiPWJ8fHt9O0EoYix7aW52b2NhdGlvbkNvbnRleHQ6Im9iamVjdCIsb25TdWNjZXNzOiJmdW5jdGlvbiIs";
    s += "b25GYWlsdXJlOiJmdW5jdGlvbiIsdGltZW91dDoibnVtYmVyIn0pO2lmKGIudGltZW91dCYmIWIub25GYWlsdXJlKXRocm93IEVycm9yKCJ1bnN1YnNjcmliZU9wdGlv";
    s += "bnMudGltZW91dCBzcGVjaWZpZWQgd2l0aCBubyBvbkZhaWx1cmUgY2FsbGJhY2suIik7bC51bnN1YnNjcmliZShhLGIpfTt0aGlzLnNlbmQ9ZnVuY3Rpb24oYSxiLGMs";
    s += "ZCl7dmFyIGU7aWYoMD09YXJndW1lbnRzLmxlbmd0aCl0aHJvdyBFcnJvcigiSW52YWxpZCBhcmd1bWVudC5sZW5ndGgiKTtpZigxPT1hcmd1bWVudHMubGVuZ3RoKXtp";
    s += "ZighKGEgaW5zdGFuY2VvZiB4KSYmCiJzdHJpbmciIT09dHlwZW9mIGEpdGhyb3cgRXJyb3IoIkludmFsaWQgYXJndW1lbnQ6Iit0eXBlb2YgYSk7ZT1hO2lmKCJ1bmRl";
    s += "ZmluZWQiPT09dHlwZW9mIGUuZGVzdGluYXRpb25OYW1lKXRocm93IEVycm9yKGYoZy5JTlZBTElEX0FSR1VNRU5ULFtlLmRlc3RpbmF0aW9uTmFtZSwiTWVzc2FnZS5k";
    s += "ZXN0aW5hdGlvbk5hbWUiXSkpO31lbHNlIGU9bmV3IHgoYiksZS5kZXN0aW5hdGlvbk5hbWU9YSwzPD1hcmd1bWVudHMubGVuZ3RoJiYoZS5xb3M9YyksNDw9YXJndW1l";
    s += "bnRzLmxlbmd0aCYmKGUucmV0YWluZWQ9ZCk7bC5zZW5kKGUpfTt0aGlzLmRpc2Nvbm5lY3Q9ZnVuY3Rpb24oKXtsLmRpc2Nvbm5lY3QoKX07dGhpcy5nZXRUcmFjZUxv";
    s += "Zz1mdW5jdGlvbigpe3JldHVybiBsLmdldFRyYWNlTG9nKCl9O3RoaXMuc3RhcnRUcmFjZT1mdW5jdGlvbigpe2wuc3RhcnRUcmFjZSgpfTt0aGlzLnN0b3BUcmFjZT1m";
    s += "dW5jdGlvbigpe2wuc3RvcFRyYWNlKCl9O3RoaXMuaXNDb25uZWN0ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbC5jb25uZWN0ZWR9fTsKSS5wcm90b3R5cGU9e2dldCBob3N0";
    s += "KCl7cmV0dXJuIHRoaXMuX2dldEhvc3QoKX0sc2V0IGhvc3QoYSl7dGhpcy5fc2V0SG9zdChhKX0sZ2V0IHBvcnQoKXtyZXR1cm4gdGhpcy5fZ2V0UG9ydCgpfSxzZXQg";
    s += "cG9ydChhKXt0aGlzLl9zZXRQb3J0KGEpfSxnZXQgcGF0aCgpe3JldHVybiB0aGlzLl9nZXRQYXRoKCl9LHNldCBwYXRoKGEpe3RoaXMuX3NldFBhdGgoYSl9LGdldCBj";
    s += "bGllbnRJZCgpe3JldHVybiB0aGlzLl9nZXRDbGllbnRJZCgpfSxzZXQgY2xpZW50SWQoYSl7dGhpcy5fc2V0Q2xpZW50SWQoYSl9LGdldCBvbkNvbm5lY3Rpb25Mb3N0";
    s += "KCl7cmV0dXJuIHRoaXMuX2dldE9uQ29ubmVjdGlvbkxvc3QoKX0sc2V0IG9uQ29ubmVjdGlvbkxvc3QoYSl7dGhpcy5fc2V0T25Db25uZWN0aW9uTG9zdChhKX0sZ2V0";
    s += "IG9uTWVzc2FnZURlbGl2ZXJlZCgpe3JldHVybiB0aGlzLl9nZXRPbk1lc3NhZ2VEZWxpdmVyZWQoKX0sc2V0IG9uTWVzc2FnZURlbGl2ZXJlZChhKXt0aGlzLl9zZXRP";
    s += "bk1lc3NhZ2VEZWxpdmVyZWQoYSl9LApnZXQgb25NZXNzYWdlQXJyaXZlZCgpe3JldHVybiB0aGlzLl9nZXRPbk1lc3NhZ2VBcnJpdmVkKCl9LHNldCBvbk1lc3NhZ2VB";
    s += "cnJpdmVkKGEpe3RoaXMuX3NldE9uTWVzc2FnZUFycml2ZWQoYSl9LGdldCB0cmFjZSgpe3JldHVybiB0aGlzLl9nZXRUcmFjZSgpfSxzZXQgdHJhY2UoYSl7dGhpcy5f";
    s += "c2V0VHJhY2UoYSl9fTt2YXIgeD1mdW5jdGlvbihhKXt2YXIgYjtpZigic3RyaW5nIj09PXR5cGVvZiBhfHxhIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fGEgaW5zdGFu";
    s += "Y2VvZiBJbnQ4QXJyYXl8fGEgaW5zdGFuY2VvZiBVaW50OEFycmF5fHxhIGluc3RhbmNlb2YgSW50MTZBcnJheXx8YSBpbnN0YW5jZW9mIFVpbnQxNkFycmF5fHxhIGlu";
    s += "c3RhbmNlb2YgSW50MzJBcnJheXx8YSBpbnN0YW5jZW9mIFVpbnQzMkFycmF5fHxhIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5fHxhIGluc3RhbmNlb2YgRmxvYXQ2NEFy";
    s += "cmF5KWI9YTtlbHNlIHRocm93IGYoZy5JTlZBTElEX0FSR1VNRU5ULFthLCJuZXdQYXlsb2FkIl0pOwp0aGlzLl9nZXRQYXlsb2FkU3RyaW5nPWZ1bmN0aW9uKCl7cmV0";
    s += "dXJuInN0cmluZyI9PT10eXBlb2YgYj9iOkcoYiwwLGIubGVuZ3RoKX07dGhpcy5fZ2V0UGF5bG9hZEJ5dGVzPWZ1bmN0aW9uKCl7aWYoInN0cmluZyI9PT10eXBlb2Yg";
    s += "Yil7dmFyIGE9bmV3IEFycmF5QnVmZmVyKG0oYikpLGE9bmV3IFVpbnQ4QXJyYXkoYSk7RihiLGEsMCk7cmV0dXJuIGF9cmV0dXJuIGJ9O3ZhciBjPXZvaWQgMDt0aGlz";
    s += "Ll9nZXREZXN0aW5hdGlvbk5hbWU9ZnVuY3Rpb24oKXtyZXR1cm4gY307dGhpcy5fc2V0RGVzdGluYXRpb25OYW1lPWZ1bmN0aW9uKGEpe2lmKCJzdHJpbmciPT09dHlw";
    s += "ZW9mIGEpYz1hO2Vsc2UgdGhyb3cgRXJyb3IoZihnLklOVkFMSURfQVJHVU1FTlQsW2EsIm5ld0Rlc3RpbmF0aW9uTmFtZSJdKSk7fTt2YXIgaD0wO3RoaXMuX2dldFFv";
    s += "cz1mdW5jdGlvbigpe3JldHVybiBofTt0aGlzLl9zZXRRb3M9ZnVuY3Rpb24oYSl7aWYoMD09PWF8fDE9PT1hfHwyPT09YSloPWE7ZWxzZSB0aHJvdyBFcnJvcigiSW52";
    s += "YWxpZCBhcmd1bWVudDoiKwphKTt9O3ZhciBlPSExO3RoaXMuX2dldFJldGFpbmVkPWZ1bmN0aW9uKCl7cmV0dXJuIGV9O3RoaXMuX3NldFJldGFpbmVkPWZ1bmN0aW9u";
    s += "KGEpe2lmKCJib29sZWFuIj09PXR5cGVvZiBhKWU9YTtlbHNlIHRocm93IEVycm9yKGYoZy5JTlZBTElEX0FSR1VNRU5ULFthLCJuZXdSZXRhaW5lZCJdKSk7fTt2YXIg";
    s += "ZD0hMTt0aGlzLl9nZXREdXBsaWNhdGU9ZnVuY3Rpb24oKXtyZXR1cm4gZH07dGhpcy5fc2V0RHVwbGljYXRlPWZ1bmN0aW9uKGEpe2Q9YX19O3gucHJvdG90eXBlPXtn";
    s += "ZXQgcGF5bG9hZFN0cmluZygpe3JldHVybiB0aGlzLl9nZXRQYXlsb2FkU3RyaW5nKCl9LGdldCBwYXlsb2FkQnl0ZXMoKXtyZXR1cm4gdGhpcy5fZ2V0UGF5bG9hZEJ5";
    s += "dGVzKCl9LGdldCBkZXN0aW5hdGlvbk5hbWUoKXtyZXR1cm4gdGhpcy5fZ2V0RGVzdGluYXRpb25OYW1lKCl9LHNldCBkZXN0aW5hdGlvbk5hbWUoYSl7dGhpcy5fc2V0";
    s += "RGVzdGluYXRpb25OYW1lKGEpfSxnZXQgcW9zKCl7cmV0dXJuIHRoaXMuX2dldFFvcygpfSwKc2V0IHFvcyhhKXt0aGlzLl9zZXRRb3MoYSl9LGdldCByZXRhaW5lZCgp";
    s += "e3JldHVybiB0aGlzLl9nZXRSZXRhaW5lZCgpfSxzZXQgcmV0YWluZWQoYSl7dGhpcy5fc2V0UmV0YWluZWQoYSl9LGdldCBkdXBsaWNhdGUoKXtyZXR1cm4gdGhpcy5f";
    s += "Z2V0RHVwbGljYXRlKCl9LHNldCBkdXBsaWNhdGUoYSl7dGhpcy5fc2V0RHVwbGljYXRlKGEpfX07cmV0dXJue0NsaWVudDpJLE1lc3NhZ2U6eH19KHdpbmRvdyk7Cg==";
    s = EncodingClass.base64.decode(s);
    var xurl = window.URL || window.webkitURL;
    if (xurl == null) return false;
    var blob = new Blob([s], {type: 'text/javascript'});
    if (blob == null) return false;
    var link  = document.createElement('script');
    link.src  = xurl.createObjectURL(blob);
    var head = document.getElementsByTagName("HEAD")[0];
    head.appendChild(link);
    return true;
}();
delete ChatClass.ps;

VaKeR 2022